前言
最近在学习Transformer这一深度学习模型架构,随手记录一下知识点,以防忘记,在阅读本篇文章前,读者需事先了解Transformer的基本结构和概念。
本章将简要介绍在Transformer模型的多头注意力机制中,查询(Query,Q)、键(Key,K)和值(Value,V)这三个核心向量作用和关系,如下所示:
1. Q、K、V 的基本含义
- 查询(Query):代表当前需要关注其他位置信息的“提问者”。它用于与所有位置的键(K)计算相似度,从而确定哪些位置的信息需要被关注。
- 键(Key):类似于“索引”,用于与查询(q)匹配,计算注意力权重。键和查询的相似性决定了其他位置对当前位置的重要性。
- 值(Value):包含实际的信息内容。注意力权重确定后,值会被加权求和,生成最终的上下文表示。
2. 生成方式
输入序列中的每个词向量(如词嵌入)会通过三个独立的线性变换(权重矩阵 映射到 Q、K、V 的向量空间。例如,输入X 时经过变换得到:
3. 多头注意力机制概念
- 多头的设计:将 Q、K、V 分割为多个“头”(如8个头),每个头对应不同的子空间。这种分割通过降低维度实现(例如,原始维度为512,分割为8个头,每个头维度为64)。
- 独立计算:每个头在各自的子空间中计算注意力(Scaled Dot-Product Attention),允许模型捕捉不同方面的信息(如语法、语义、长距离依赖等)。
- 合并结果:所有头的输出被拼接后,再通过线性变换 ( W o ) (W^o) (Wo)融合,形成最终输出。
4. 多头注意力机制公式表达
- 单头注意力计算:
其中 d k \sqrt{d_k} dk是每个头的维度。 - 多头注意力计算:
每个头:
5. 主要作用
- 增强模型表达能力:多个头允许模型在不同子空间中关注多样化的特征。
- 动态信息聚合:通过 Q 和 K 的交互,模型能够灵活地为每个位置分配不同的注意力权重,再通过 V 汇总关键信息。
6.举个例子
假设输入序列是“哆啦A梦爱吃铜锣烧”,自注意力机制会让每个词生成 Q、K、V:
当处理“爱吃”这个词时,其 Q 会分别与“哆啦A梦”和“铜锣烧”的 K 计算相似度,确定这两个词的重要性,再通过对应的 V 加权,得到包含上下文信息的表示。
7.结论
Q、K、V是注意力机制中用于信息匹配与聚合的核心向量,而多头设计通过并行学习多组投影,可以显著提升模型对复杂关系的建模能力。