线性注意力即1991快权重机,Delta规则让有限记忆可改写

2026-09-02

IDSIA证明线性Transformer就是1991年快权重程序员,用可学习Delta规则改写有限记忆。WikiText-103无限上下文困惑度29.4,普通线性注意力直接崩到260以上。

这篇在解决什么

Softmax 自注意力按序列长度二次增长,记忆也随长度线性膨胀,长上下文只能靠截断窗口。2020 年前后的线性 Transformer 用核函数把 softmax 拆开,复杂度降到线性,记忆变成一块固定大小的矩阵。新的键值对只能往这块矩阵里不停加外积。序列一长,旧关联就被新关联糊掉。

Schmidhuber、Schlag、Irie 指出,这件事 1991 年已经有名字:快权重程序员。一个慢网络用梯度下降学会给另一套快权重写程序,写指令就是自造的 key、value 外积。线性 Transformer 就是带一层归一化的快权重机。认成这件事之后,容量上限和「只会加、不会改」都能被分析,也能直接换一条更好的写指令。

方法

去掉 softmax 的自注意力,第 i 步输出等于历史 value 与 key 外积之和再乘 query。线性注意力只是再套一个特征映射 φ,让核变成 φ(k)ᵀφ(q),并加一个累加器做分母。这正是带归一化的快权重更新。

容量墙来自线性代数。要从矩阵里干净取出某条记忆,对应的 key 必须正交。φ 把 key 投到 ddot 维,正交向量最多 ddot 个。序列长度超过 ddot,检索就会串音。Katharopoulos 的 ELU+1 不升维,ddot 等于 dkey。Performer 的 FAVOR+ 用随机特征升到 2m 维,但每次采样会给输出加方差。他们提出 DPFP:用整流函数把输入空间切成互不重叠的象限,确定性、无参数地升到 2·dkey·ν 维,不同区域在投影空间里正交。

写指令从「再加一条外积」换成 Delta 规则。先用当前 key 读出记忆里的旧 value,再按网络自己生成的 β∈[0,1] 把旧值往新值推。矩阵更新等价于扣掉旧关联、写入修正后的关联。β 是逐步学习率,网络自己算。归一化不用随步数膨胀的累加器,改成 sum normalization:把 φ(k)、φ(q) 除以分量之和,矩阵-向量乘法就变成对列的加权平均。

结果

合成检索把 dkey 固定为 64,关联数从 20 加到 600。线性注意力大约 60 条开始出错;DPFP-ν=1/2/3 分别在接近 128、256、384 时垮掉;softmax 能扛到 500 条以上。FAVOR+ 在所有规模上都没把损失压到 0。重复写入、需要覆盖旧值的设定里,纯累加更新学不会,Delta 规则能收敛。

WMT14 英德,同一套训练配方、不调参、不模型平均:

方法ddot验证 BLEU测试 BLEU
Transformer6426.627.7
Linear6425.526.8
Performer64 / 256 / 51224.2 / 24.9 / 26.724.4 / 25.3 / 27.7
DPFP256 / 51226.2 / 26.226.9 / 27.1

小 ddot 时 DPFP 好过 Performer;m 够大时 Performer 追平标准 Transformer。

WikiText-103,人为做成过容量(small: D=128, L=256, 约 40M 参数;medium: D=256, L=384, 约 90M):

方法small 测试 PPLmedium 测试 PPL
Transformer34.129.6
Linear 累加38.333.0
Delta Network35.531.5
Performer 累加39.633.8
Performer+Delta37.231.8

不截断上下文、状态只有 0.13M 时,Linear Transformer 困惑度超过 260,训练直接崩;Delta Network 验证/测试 27.8/29.4。同等状态的 Transformer-XL 是 65.7/65.5,把状态扩到 6.29M 才到 24.6/25.5。消融显示绝对位置编码和额外的 attention 归一化都可以去掉,sum normalization 去不掉,去掉会发散。速度上 Delta 约 63K word/s、14 GB,线性基线 66K/13 GB,常规 Transformer 33K/17 GB。

为什么重要

这是后来 DeltaNet 以及一串「把线性注意力当 RNN 状态来写」工作的源头之一。对要跑很长上下文、又不能让 KV cache 线性涨的人,结论很具体:有限记忆不能只加不改;换一条可学习的纠错规则,比换核函数更管用。DPFP 在翻译上是小投影维时的简便折中,没打过足够随机特征的 Performer。

这是渐进改进,不是新范式。但它把 1991 年的快权重机和 2020 年的线性注意力接上了,后面很多有限状态注意力都可以按「编程指令」来设计。

局限与存疑

语言建模里 Delta Network 仍落后同等参数的 Transformer,medium 测试 31.5 对 29.6。无限上下文也没追上大窗口 Transformer-XL。翻译实验明确没做模型专用调参。合成任务的容量曲线漂亮,真实语言里的「过容量」是把模型维度故意设小造出来的。WikiText 过容量设置里 DPFP 被直接丢掉,因为最小 ν 已经容量够用。论文没在当时的长程基准 Long Range Arena 上比。

术语

原文与代码

社区讨论

全部论文解读