注意力机制的核心是让序列中的每个位置在生成表示时,能够有选择地"关注"序列中其他相关位置的信息,而不受位置距离的限制。与传统循环神经网络按时间步依次传递隐状态不同,注意力机制允许任意两个位置之间直接建立连接,从而一步到位地关联相距较远的内容。
注意力机制将每个位置的输入表示投影为三个向量:查询(Query)、键(Key)和值(Value)。查询代表当前位置"正在寻找什么",键代表每个位置"能提供什么匹配信号",值则是每个位置实际携带的内容。通过计算查询与各个键的相似度,模型决定应当从哪些位置提取信息。
Transformer 采用缩放点积注意力(Scaled Dot-Product Attention)作为打分函数。其计算方式为:先用查询与所有键做点积得到注意力分数,再除以键维度平方根(√d_k)进行缩放,然后通过 softmax 归一化为权重,最后用这些权重对值进行加权求和。缩放因子的作用是防止点积数值随维度增大而过大,导致 softmax 落入梯度极小的饱和区。