第一次接触注意力机制时,很容易把它理解成“模型知道一句话里什么最重要”。这个说法方便入门,却隐藏了关键条件:重要性不是固定的,而是相对于当前要处理的位置和任务产生的。

更准确的提问是:对当前这个查询,已有信息中的哪些部分更相关,它们应该以多大比例参与新的表示?

一、查询、键和值分别承担什么角色

可以把一组 token 的表示分别映射成查询、键和值。查询描述当前正在寻找什么;键提供每条信息可供匹配的特征;值保存真正要被汇总的内容。

模型先比较查询和每个键的匹配程度,再把匹配分数转换为一组总和为一的权重,最后对对应的值做加权汇总。因此,相同 token 在不同位置、不同上下文里可能得到完全不同的组合结果。

二、为什么它能利用远距离上下文

循环结构需要让信息逐步经过中间位置,注意力则允许一个位置直接与同一序列中的其他位置计算关系。只要相关信息还在上下文窗口内,距离本身不会强迫它经过固定数量的递归步骤。

这并不等于距离不再重要。位置编码、训练数据、信息密度和干扰 token 都会改变实际效果。上下文更长只是增加了可见范围,不保证所有内容都被同样稳定地使用。

三、多头注意力为什么不是简单重复

每个注意力头拥有不同的映射参数,可以在不同表示子空间中寻找关系。一些头可能更容易捕捉局部搭配,一些头可能对指代、分隔符或格式关系更敏感。

但不能把每个头机械地命名为某种语言学功能。模型学到的模式通常是分布式的,同一个行为可能由多个头和后续层共同完成。分析单个头可以提供线索,却不能直接等同于完整推理过程。

四、注意力权重不等于完整解释

权重显示一次加权汇总中的相对比例,但模型输出还受到值向量、残差连接、前馈网络、层归一化和多层组合的影响。某个 token 权重高,不代表它一定是最终结论的唯一原因。

因此,用注意力图解释模型时应保持克制。它适合观察信息流线索,不适合单独承担因果解释。

五、检查自己是否理解

  1. 能否不用“模型在关注”解释查询、键和值?
  2. 能否说明同一 token 为什么会因查询不同得到不同权重?
  3. 能否解释长上下文为什么仍可能丢失中间信息?
  4. 能否说明注意力权重为什么不是完整的模型解释?

参考来源