如果多头注意力只是把输入切成几份各自做注意力再拼回来,那它和"一个宽一点的单头"有什么差别?答案藏在每个头内部的那个低秩结构里。多头是在参数预算内买表示多样性的设计,这篇拆开看。
结构:切分、并行、重组
多头注意力的计算(忽略 bias 与缩放细节):
$$ Q^{(i)} = XW_i^Q,\quad K^{(i)} = XW_i^K,\quad V^{(i)} = XW_i^V,\quad O^{(i)} = \mathrm{softmax}\Big(\frac{Q^{(i)}K^{(i)\top}}{\sqrt{d_h}}\Big)V^{(i)}, $$
$$ \mathrm{MHA}(X) = \mathrm{Concat}(O^{(1)},\dots,O^{(h)})\,W^O. $$
头维度 $d_h = d/h$(GPT-2 small:$d=768$, $h=12$, $d_h=64$)。每个头看到的表示空间是原空间的一个 $d_h$ 维切片,头与头之间参数完全独立。
先把两笔账算清,免得动机被误读。参数量:$h$ 组投影参数 $3h\,d_h d = 3d^2$,加上 $W^O$ 的 $d^2$,与单头 $4d^2$ 一模一样——多头没有省参数。FLOPs 同理,$h$ 个 $d_h$ 维的小注意力加起来的乘加次数与单头 $d$ 维注意力相同。所以多头的设计目标从来不是效率,那它买什么?
动机一:匹配空间的直和分解
单头注意力的匹配函数是 $s_{ij} = (x_iW^Q)(x_jW^K)^\top/\sqrt d$,一对投影矩阵 $W^Q, W^K$ 决定的匹配准则只有一套。多头给出 $h$ 对独立的 $(W_i^Q, W_i^K)$,相当于在表示空间里同时维护 $h$ 个匹配准则。直觉上的需求是真实的:语言里的"相关性"本来就是多义的—— syntactic 上的依存关系、指代关系、局部搭配、长程主题关联,是四种不同几何的相似度,一对投影学不出四种。
用线性代数的话说:头 $i$ 的分数矩阵 $S^{(i)} = XW_i^Q W_i^{K\top}X^\top$ 的秩至多为 $d_h$(两个 $d_h$ 秩矩阵的乘积),单个头的匹配能力是低秩受限的;$h$ 个头拼接后等效于分数矩阵 $\big[S^{(1)}\ \cdots\ S^{(h)}\big]$ 占满 $d$ 维。低秩的"表示瓶颈"和表达能力的关系,后面注意力秩的专篇会细算,这里记住结论:单头买宽度,多头买准则数。
动机二:组合头的输出有额外的自由度
另一个常被忽略的点是 $W^O$。拼接后的输出先过 $W^O$ 再进残差流,这个矩阵让模型能跨头加权:某个层的最终输出可以是"头 3 的结论 ×0.6 + 头 7 的结论 ×0.3 + 其余 ×0.1"这种任意线性组合。单头没有这层重组——它的输出直接就是答案。多头的信息处理链条是"分头匹配 → 分头取内容 → 学习混合",比单头多一级可学习的组合结构。
实证:头确实分化,但分化得参差
"多头学到不同模式"不只是设计动机,有被广泛复现的观测证据(Voita et al. 2019、Clark et al. 2019 等,基于 BERT/GPT-2 系):
- 位置头:大量头的注意力集中在固定相对位置上(如前一个词、前一个标点),与内容弱相关,承担序列骨架的功能。
- 句法头:某些头稳定追踪主谓一致、依存关系,attention 权重与句法距离高度相关。
- 罕见 token 头:专门把大量权重投给低频 token(和 attention sink 现象伴生),帮模型处理分布外输入。
- 冗余头:相当比例的头可以被剪掉(pruning)而对下游指标几乎无损——这也是 Voita 等人做 head pruning 的出发点。
值得记下的反面事实:头的分化是涌现的而非被强制的。损失函数里没有任何一项要求头 $i$ 负责句法、头 $j$ 负责指代,分工完全由梯度在共享目标下自发形成。这既是多头设计的魅力(多样性免费涌现),也是它的风险(不保证涌现,不保证均匀——冗余头的存在说明一部分参数预算被浪费了,头剪枝论文的动机正在于此)。
配置选择的附带观察
$d_h=64$ 这个近乎行业标准的小维度值得注意:它小于缩放点积篇的分析给出的"匹配方差最优"维度,也远小于 $d$。一种读法是 $d_h$ 压缩了单头的匹配宽度、强迫每个头只抓一类模式;另一种读法是工程妥协——$d_h$ 对齐 tensor core 的 16 倍数,且让单头注意力的 GEMM 形状规整。LLaMA-3 用 $h=32, d_h=128$ 表明这个数并非不可动,但"头数多、每头窄"的配方在开源模型里异常稳定。
小结
多头注意力的账本是:参数不变、FLOPs 不变,换来 $h$ 套独立的 (匹配子空间, 内容子空间) 对和一个跨头重组矩阵。单头内部是秩不超过 $d_h$ 的低秩匹配,多头拼接补满 $d$ 维。实证上头确实分化出位置、句法、罕见 token 等分工,但分化是涌现的、不保证均匀,冗余头的存在是多头设计的固有成本。下一篇顺着低秩这个线索往下钻:注意力矩阵本身的秩与表达能力。