可学习绝对嵌入的死穴(上一篇)在 2018 年就被指出来了。Shaw et al. 的《Self-Attention with Relative Position Representations》开宗明义:平移不变性应该由结构保证,不该靠模型从数据里硬学。此后三年出现一串改进,这条"加性"路线在 T5 手里走到极致,然后被 ALiBi 和 RoPE 接棒。这条谱系的每一步都值得拆,因为它们失败的共同原因正是后来乘性方案的成功之处。
Shaw 2018:给 key 加偏移向量
原始注意力打分 $\langle q_i, k_j\rangle$ 里没有位置。Shaw 的做法是把 key 换成位置敏感的版本:
$$ \tilde k_j = W_k x_j + v_{\mathrm{clip}(j-i)},\qquad a_{ij} = \frac{q_i^{\top} \tilde k_j}{\sqrt{d}}, $$
其中 $v_r\in\mathbb{R}^d$ 是可学习的偏移向量,$r = \mathrm{clip}(j-i, -k, k)$(原论文 $k=2$)防止相对距离词汇表无限膨胀。打分展开后是三项:
$$ a_{ij} = \underbrace{\frac{q_i^{\top} k_j}{\sqrt{d}}}_{\text{内容}} + \underbrace{\frac{q_i^{\top} v_{j-i}}{\sqrt{d}}}_{\text{内容-位置}} + (\text{若 query 也注入则再加一项纯位置项}). $$
关键观察:$v_{j-i}$ 让"query 内容去检索相对距离"成为可能——注意方向性是内容找位置,不是位置找位置。这在 WMT 上拿了当时最好的结果,证明相对信息进打分函数是有效的注入点。
Transformer-XL 2019:拆成四项的标准形式
Transformer-XL(Dai et al.)把相对化做彻底,注意力写成了教科书式的四项分解:
$$ a_{ij} = \underbrace{q_i^{\top} k_j}_{(a)\ \text{内容寻内容}} + \underbrace{q_i^{\top} v_{j-i}}_{(b)\ \text{内容寻位置}} + \underbrace{u^{\top} k_j}_{(c)\ \text{位置无关偏置}} + \underbrace{v^{\top} v_{j-i}}_{(d)\ \text{位置寻位置}}, $$
其中 $u, v$ 是不随 query 位置变的可学习向量,替换掉原始正弦 PE 里 query/key 各自的绝对位置向量。这个分解把"谁在找谁"列成了一张 $2\times2$ 的表,后来所有相对方案的讨论都引用它:(a) 项不含位置,(b) 项继承 Shaw,(c)(d) 项补偿丢失的绝对信息。代价是实现繁琐——每头要维护两组偏移向量。
T5 2020:压缩到极致的标量偏置
T5(Raffel et al.)嫌上面这些都不够省事,直接砍掉向量,改成在 logits 上加一个标量:
$$ a_{ij} \leftarrow a_{ij} + b_{\mathrm{bucket}(j-i)}^{(h)}, $$
$b^{(h)}$ 是第 $h$ 个头自己的偏置表,"bucket" 把距离分到 32 个桶:近距离一对一,远距离按 $\log$ 步长合并(桶宽近似翻倍),即越远的相对位置共享同一个偏置,和人类距离感知的分辨率分布一致。32 个数替换 Transformer-XL 每头两向量组,省内存、实现五行程式改完。效果上 T5 报告与相对向量方案基本打平——说明位置项里真正有用的信息量本来就很小。
三条共同局限
这三代方案共享同一个结构性弱点,值得单独说:
- 加性偏置与内容无关。$v_{j-i}$ 或 $b_{j-i}$ 不依赖 $q_i$ 的内容(T5 的偏置更是标量),位置信息以"固定偏移"方式平铺到所有 query 上。RoPE 反过来:位置调制内积的相位,同样的距离在不同内容上可以贡献不同的打分变化,表达力高一个量级。
- 参数化随头数和距离表增长。每头一张表,长距离要扩充桶,参数量和实现复杂度都在爬升;RoPE 的位置参数为零——角度由公式生成。
- 不兼容长度外推的干净证明。偏置表本身也是"查表",超出桶范围的桶要靠 clip 兜底;而 ALiBi 的线性偏置、RoPE 的旋转相位,其函数形式对任意距离天然有定义,外推性质可以直接分析。
小结
从 Shaw 到 T5,加性相对位置编码完成了一个去芜存菁的过程:位置信息只需要进打分函数(结论一),而且量可以很小甚至标量(结论二)。但"加在哪"上它们始终没能突破内容无关的平铺结构。ALiBi 用"线性函数替换查表"解决了外推,RoPE 用"旋转调制内积"解决了表达力,这条谱系的两端同时被接管,中间形态就此退出主流。