一、注意力机制基础


传入向量组成的矩阵${Z}$
与矩阵${W_q}$相乘,得到矩阵${Q}$,
与矩阵${W_k}$相乘,得到矩阵${K}$,
与矩阵${W_v}$相乘,得到矩阵${V}$,


矩阵${W_q}$、${W_k}$、${W_v}$
可在模型训练中,经过梯度下降的方式确定。


简单来说:
先矩阵赋初始值,后续在模型训练中,
慢慢找到正确值。


二、缩放点积注意力


将矩阵${Q}$与矩阵${K}$相乘。

而后除以$\sqrt{d_k}$做缩放。

而后将得分用[#260810]提到过的SoftMax转为概率分布,

再用注意力权重与矩阵${V}$相乘,得到最终输出。


图解:


三、多头注意力


对 Q、K、V 分别乘以 $W^Q_i$, $W^K_i$, $W^V_i$

生成多个“头”,从更多的维度看Token。

$$\displaystyle \text{Attention}(Q_i,K_i,V_i)=\text{softmax}!\left(\frac{Q_iK_i^{!T}}{\sqrt{d_k}}\right)V_i$$

在子空间内计算相似度,得到加权值。


重复以上步骤多次,让模型关注“局部语法”“全局语义”等多种关系。

$\text{Concat}(head_1,\dots,head_h)$
把所有“头”的输出合并在一起。

再将最终值乘以 $W^O$,将拼接后的向量映射回模型的原始维度,供后续层使用。


图解: