Transformer Attention 机制原理

Transformer Attention 机制原理

1. 核心思想

Attention 的本质是一个加权求和:给定一组信息,根据"相关性"动态决定每条信息应该被关注多少。

数学表达:

Attention(Q,K,V)=softmax(QKTdk)V

2. Q、K、V 分别是什么

同一个输入 X 通过三个不同的线性变换,投射到三个不同的语义子空间:

矩阵 含义 类比
Query (Q) "我在找什么" 搜索引擎里你输入的搜索词
Key (K) "我能提供什么" 每个网页的标题/索引
Value (V) "我实际的内容" 网页的正文内容

计算流程:

  1. Q 和 K 做点积 → 得到注意力分数(相关性打分)
  2. 除以 dk → 防止点积值过大导致 softmax 梯度消失
  3. softmax 归一化 → 得到注意力权重(概率分布)
  4. 用权重对 V 加权求和 → 得到输出

3. 为什么刚好需要三个,不是两个或一个?

如果只用一个矩阵(Q=K=V=X)

这就是最朴素的自注意力。问题在于:"匹配"和"取值"用的是同一个表示。一个 token 的表示既要负责"被别人找到",又要负责"提供内容",这两个目标经常是矛盾的。模型的表达能力被严重限制。

如果只用两个矩阵(比如 Q=K,单独一个 V)

Q 和 K 共享参数意味着注意力矩阵是对称的:A 对 B 的关注度 = B 对 A 的关注度。但语言中关系天然是不对称的——"猫追老鼠"中,"追"对"猫"和"老鼠"的关注模式完全不同。Q ≠ K 才能建模这种非对称关系

三个矩阵各司其职

三个恰好是最小充分的设计——再少会丢失表达能力,再多(比如加第四个矩阵)没有带来本质上新的功能维度

4. 设计哲学总结

Attention 的 QKV 设计体现了几个深刻的工程与数学直觉:

  1. 关注点分离 (Separation of Concerns):把"用什么去匹配"、"凭什么被匹配"、"匹配后给什么"拆成三个独立的可学习变换,每个子空间专注一个职责。

  2. 最小充分原则:三个矩阵是实现"非对称匹配 + 内容与索引解耦"所需的最少参数。不多不少,恰好覆盖了信息检索的三个基本角色。

  3. 从信息检索到可微计算:QKV 本质上是把数据库查询(query → key matching → value retrieval)这个离散过程,变成了一个端到端可微分的软检索。这是 Transformer 能用梯度下降训练的关键。

  4. 对称性的主动打破:自然语言中的关系是有方向的。通过让 Q 和 K 使用不同的投影,模型获得了建模有向关系的能力,这比对称模型(如简单的相似度计算)强大得多。

一句话概括:QKV 是"可微分的非对称信息检索"的最小完备参数化。