参考资料
https://www.3blue1brown.com/
注意力工作原理Q、K、V
在Transformer模型中,Q(Query)、K(Key)、V(Value)的计算过程是理解自注意力机制(Self-Attention Mechanism)的关键。下面我将通过一个具体的例子来详细说明这一计算过程。
注意力工作原理(Q、K、V)
d_model=128
。生成Q、K、V向量:
对于每个token的嵌入向量,我们分别通过三个不同的权重矩阵(Wq
、Wk
、Wv
)进行线性变换,以生成对应的Q、K、V向量。这些权重矩阵是在模型训练过程中学习得到的。
假设当前我们正在处理句子中的第四个token“creature”,其嵌入向量为E_creature
。则:
Q_creature = Wq * E_creature;
K_creature = Wk * E_creature;
V_creature = Wv * E_creature;
维度变换:
经过线性变换后,Q、K、V向量的维度通常与原始嵌入向量的维度相同,即128维。
计算Q与K的点积:
对于句子中的每个token,我们将其Q向量与句子中所有token的K向量进行点积运算,以计算它们之间的相似度。
例如,对于“creature”的Q向量Q_creature
,我们将其与句子中所有token的K向量(包括自身)进行点积,得到一个相似度分数列表。
creature相似度分数列表中注意力分数最高的是fluffy、blue。
为了防止点积结果过大导致的梯度消失问题,我们将点积结果除以K向量的维度开方,即128开方)。
应用Softmax函数:
加权求和V向量:
最后,我们使用得到的注意力权重对V向量进行加权求和,以得到当前token的自注意力输出。
需要注意的是,上述过程是在单个头的自注意力(Single-Head Self-Attention)下进行的。在实际应用中,Transformer模型通常会使用多头自注意力(Multi-Head Self-Attention)机制,即并行地执行多个自注意力过程,并将结果拼接起来,以进一步增强模型的表达能力。
参考资料
https://www.3blue1brown.com/
微信扫一扫
关注该公众号