Enhancing Linear Attention with Residual Learning:中文精读
方法:Residual Linear Attention(RLA)与 Residual Delta Net(RDN)
作者:Xunhao Lai、Jialiang Kang、Jianqiao Lu、Tong Lin、Pengyu Zhao。第二作者在 v1 PDF 首页及 TeX 中拼作 Jiangliang Kang;此处采用 arXiv 元数据与正式发表记录的 Jialiang。
研读版本:arXiv:2509.25223v1,2025-09-24 提交;获取、研读与外部信息查证日期:2026-11-13。
原文:arXiv v1 · 本地 PDF · 英文幻灯片 · TeX
- 发表:已发表于 EMNLP 2026 主会论文集,2026 年 10 月,DOI:10.18653/2026.emnlp-main.2394。正式版本末两位作者顺序调整为 Pengyu Zhao、Tong Lin;下文分析仍对应 arXiv v1。
- 代码:未查到本论文的公开代码(截至 2026-11-13)。原文附录 D 提供 RLA 递推伪代码;作者使用的 FLA 是基础库,不能据此视为论文已发布官方实现。
论文总览
论文将线性注意力拆成“历史状态的预测 + 当前更新产生的纠正”,并提出:让另一份有记忆的状态学习基础状态的预测残差,可以比每次只做局部纠正更有效地保留历史错误信息。RLA 在普通加性状态更新外增设残差状态,RDN 则让两份状态都采用 delta rule;独立纠正门 $\gamma_t$ 控制残差写入和读出,裁剪与 L2 归一化控制训练中的数值增长。
主实验使用约 1.5B 参数、100B 训练 tokens。RDN 的 WikiText 困惑度为 16.57,GDN 为 17.27;八项通用任务平均准确率为 47.20%,GDN 为 46.03%。RLA 的 NIAH 达 83.6%,sGLA 为 76.6%。这些改进伴随第二份矩阵状态和额外计算,序列长度上的线性复杂度仍保留。[Sec. 3–4,PDF pp. 4–7,Tables 2–3]
需要保留三个细节:主表的“最佳”标记只在线性注意力模型之间比较;100B 主实验和明确标为 50B 的消融不能混作同一配置;“残差学习有效”也存在逐项例外,例如移除历史残差状态后,LAMBADA 困惑度反而更低。
结构地图
以下统一使用从 1 开始的 PDF 页码,与本文印刷页码一致。主要方法公式未编号,使用章节及页码定位。
| 原文章节 | 作用 | PDF 页码与关键证据 |
|---|---|---|
| 1. Introduction | 有限状态、在线学习与纠正瓶颈 | pp. 1–2 |
| 2. Preliminaries,2.1–2.3 | 递推形式、在线梯度更新、预测—纠正分解 | pp. 2–3,Table 1 |
| 3. Method,3.1–3.4 | 残差状态、门控、裁剪、RLA/RDN 最终形式 | pp. 3–5,Fig. 1 |
| 4. Experiment,4.1–4.2 | 实现、模型、效率、建模与召回 | pp. 5–7,Fig. 2,Tables 2–3 |
| 4.3 Ablation Study | 历史残差、独立门、输出组合、稳定性 | pp. 7–9,Tables 4–5,Figs. 3–4 |
| 5. Related Works | 从线性递推到 delta rule、非线性记忆的定位 | pp. 8–9 |
| 6. Conclusion | 以额外拟合计算换取表达能力 | p. 9 |
| A. Unified Formula for Residual Linear Attention | 在线梯度提升;外层和内层目标分离 | p. 13 |
| B. Residual Fitting with Huber Loss | 裁剪作为 Huber 伪残差;Log-Cosh 扩展 | p. 14 |
| C. Model Structure and Training Hyper Parameters | 架构与训练预算 | pp. 14–15,Tables 6–7 |
| D. Pseudo-code Implementation | RLA 的准确计算顺序和转置约定 | p. 15,Listing 1 |
一:动机——给错误本身一份可以持续更新的记忆
1.1 基础状态究竟在学习什么
采用论文正文的列向量约定:$q_t,k_t\in\mathbb R^{d_k}$,$v_t,o_t\in\mathbb R^{d_v}$,$S_t\in\mathbb R^{d_v\times d_k}$,$d_q=d_k$。线性注意力维护
它相当于在线学习映射 $k\mapsto v$。对内层目标 $\mathcal L=-\langle Sk,v\rangle$ 做一步梯度下降得到加性写入;对 $\mathcal L=\tfrac12\lVert Sk-v\rVert_2^2$ 做一步学习率为 $\beta_t$ 的梯度下降,得到 delta rule:
后者先扣除当前键方向已经记住的值,再写入目标值,能更细致地管理关联。[Sec. 2.1–2.2,PDF pp. 2–3]
1.2 预测—纠正分解揭示了什么
将普通线性注意力展开一步:
GDN 的分解则是
作者用 Table 1 将 Mamba2、GLA、DeltaNet、GDN 纳入这一视角。其动机是:给纠正项增加一个持续状态,显式保留过去发生过的预测错误。这里“单 token 纠正”指当步的局部更新;delta rule 的残差本身已经依赖历史 $S_{t-1}$,不能理解成它完全不含历史信息。[Sec. 2.3,PDF p. 3,Table 1]
RLA 的改动不是通常网络层之间的残差连接 $x+F(x)$。它在每个注意力模块内部增加 $R_t$,学习的是键到预测误差的映射。相关工作中的 TTT-MLP、Titans 用更复杂的记忆函数增强表达能力;本论文保留简单线性状态更新,将增强能力放在第二个拟合阶段。[Sec. 1,pp. 1–2;Sec. 5,pp. 8–9]
二:方法——基础映射、残差映射与门控读出
2.1 从 L2 损失得到残差目标
对于基础预测 $\hat v=S_{t-1}k_t$,将损失在 $\hat v$ 附近展开,二次近似的最优修正方向为
若 $\mathcal L=\tfrac12\lVert v-\hat v\rVert_2^2$,Hessian 是单位阵,因此 $\delta^*=v-\hat v$。这为残差目标
$$r_t=v_t-S_{t-1}k_t$$提供动机。模型没有在每个 token 上计算或求逆 Hessian;实际实现直接计算向量残差。[Sec. 3.1,PDF pp. 3–4]
最简的无门控残差拟合为
$R_t\in\mathbb R^{d_v\times d_k}$ 与基础状态同形。它把历次残差写在相应键方向上,用查询读出该类查询过去需要的纠正。$r_t$ 是一个向量,$R_t$ 才是跨 token 累计的状态;原文个别句子将二者混称,讲解时需要区分。
2.2 门控与最终 RLA 公式
| 符号 | 维度 | 含义 |
|---|---|---|
| $S_t,R_t$ | $d_v\times d_k$ | 基础映射与残差映射 |
| $q_t,k_t$ | $d_k$ | 查询与键;应用 SiLU、L2 归一化 |
| $v_t,r_t$ | $d_v$ | 值与基础预测的裁剪残差 |
| $\alpha_t$ | 标量 | 两份历史状态的衰减门 |
| $\beta_t$ | 标量 | 基础状态的写入/更新强度 |
| $\gamma_t$ | 标量 | 残差状态的写入/纠正读出强度 |
| $c$ | 标量 | 逐元素残差裁剪阈值,主实验 $c=1$ |
RLA 最终形式是
三点决定实现是否忠实。第一,残差读取的是尚未做当步衰减或写入的 $S_{t-1}$,不是 $\alpha_tS_{t-1}$ 或 $S_t$。第二,输出组合使用旧基础状态与已更新的残差状态。第三,$\gamma_t$ 同时用于残差写入和纠正读出;不能把其中一个因子删掉。[Sec. 3.2–3.4,PDF pp. 4–5;App. D,p. 15]
衰减门采用 Mamba2 风格参数化:$\alpha_t=\exp[-a\operatorname{softplus}(W_\alpha x_t+b)]$,正文将其设定在 $[0,1]$;$\beta_t=\sigma(W_\beta x_t)$、$\gamma_t=\sigma(W_\gamma x_t)$。独立 $\gamma$ 使基础表示与残差纠正不必共用同一个更新率。[Sec. 3.2–3.4,PDF pp. 4–5,Fig. 1]
2.3 历史残差怎样参与当前输出
以下为本次教学展开。若 $R_0=0$,RLA 的辅助状态可写成
因此纠正读出为
它像对历史“错误向量”做了一次带衰减的线性注意力。与当前查询相似的历史键,会带回相应残差;历史衰减控制其寿命。进一步只展开当前项,有
这清楚区分历史误差读出和当前误差纠正,也说明专用门会同时影响误差的保存和即时输出。两份映射共享键与查询,RLA 并未另建一个独立的路由系统。
2.4 RDN:对两份状态都进行 delta 更新
RDN 保留相同的 $r_t$ 与输出公式,替换两份状态的更新:
等价地,辅助状态按 $r_t-\alpha_tR_{t-1}k_t$ 纠正自己在当前键方向的误差,基础状态按 $v_t-\alpha_tS_{t-1}k_t$ 纠正自己的误差。基础目标残差 $r_t$ 仍由 $v_t-S_{t-1}k_t$ 裁剪而得;它和辅助 delta 更新内部的残差是不同层次的量。[Sec. 3.4,PDF p. 5]
对单位键 $k_t$,$I-\beta_tk_tk_t^\top$ 在键方向的特征值为 $1-\beta_t$,正交方向为 1。这有助于理解 delta rule 为何能减轻直接累加导致的状态增长;训练稳定性的直接证据仍来自后面的消融图。
2.5 Huber 裁剪和内外目标分离
裁剪按值向量的每个分量进行,限制大预测误差一次性写入 $R$ 的幅度。对单个残差 $e=v-\hat v$,Huber 损失为
相对于预测值的负梯度正是 $\operatorname{Clip}_{[-c,c]}(v-\hat v)$。作者将这类较复杂的外层键值拟合目标转成伪残差,再让每份矩阵用简单的内层目标拟合目标值。这里的“外层”是附录所定义的局部映射目标,与整个语言模型训练的 next-token 损失需要区分。[App. A–B,PDF pp. 13–14]
具体地,$\mathcal L_{\mathrm{inner}}=-\langle Rk,r\rangle$ 产生加性更新;平方内层损失产生 delta 更新。Log-Cosh 外层目标则对应 $r=\tanh(v-Sk)$,是作者提出的平滑替代方向,原文没有给它的实验结果。
附录 B(PDF p. 14)有一处实质符号不一致:在给出负内积内层损失后,它将 $R_t$ 与 $S_t$ 写成减去外积。按该损失做梯度下降应当加上外积,这与正文 Sec. 3.4、附录 A 的一般式及附录 D 伪代码一致。本文采用正文和伪代码的加号。附录用 Huber 负梯度说明裁剪的合理性,不应将这处错误抄入实现。
2.6 两阶段计算为何仍能利用线性注意力 kernel

原文 Fig. 1,PDF p. 5。左侧是堆叠的归一化—注意力—FFN 结构;右侧紫色虚线路径计算裁剪残差并将其送往辅助拟合。基础状态与残差状态的输出经组合、RMSNorm、输出门与线性投影产生模块输出。$q,k$ 路径使用线性投影、SiLU 与 L2 归一化。
作者基于 FLA,用 Triton 修改 kernel,使其同时返回注意力结果和计算残差所需的中间结果。一个有助于理解实现依赖的读法是:先计算基础状态序列及相应 $S_{t-1}k_t$,形成全部 $r_t$;再将这些残差当作值,送入同类辅助状态 kernel。基础状态更新不依赖 $R$,因此裁剪的非线性被隔离在两个拟合阶段之间。[Sec. 4.1,PDF p. 5]
对固定头维度,两个阶段都是随序列长度 $T$ 线性的计算;自回归推理只携带固定数量的矩阵,状态内存与 $T$ 无关。但与相同头形状的单状态基线相比,矩阵状态从一份变成两份。按表中线性模型的 16 头、128 维键和值计算,每层每份状态有 $16\times128^2=262,144$ 个元素,双状态为 524,288 个;这是按结构推算的数量,原文没有提供等状态预算的对照。
附录 D 的伪代码采用行向量和转置后的 $d_k\times d_v$ 状态,用 $k_t^\top v_t$ 写入、$q_tS$ 读出;这与正文的 $v_tk_t^\top$、$Sq_t$ 是转置约定差异。其明确顺序为:归一化 $q,k$ → 从旧 $S$ 得到裁剪残差 → 更新 $R$ → 输出 → 更新 $S$。[PDF p. 15,Listing 1]
三:实验——主实验与消融各自回答什么
3.1 模型、训练和 baseline
| 配置 | Transformer | 线性注意力模型 |
|---|---|---|
| 总参数 | 1.51B | 1.55B |
| Hidden / Intermediate | 2,048 / 8,192 | 2,048 / 8,192 |
| Attention Heads / GQA Groups | 32 / 4 | 16 / 16 |
| Head Dimension | 128 | 128 |
| Softmax / Linear 层数 | 16 / 0 | 0 / 16 |
来源:App. C,PDF p. 15,Table 6。Transformer 和线性模型的参数接近,但头结构、注意力形式不同。
主实验均训练 100B tokens;AdamW、余弦学习率,峰值 $3\times10^{-4}$、最低 $3\times10^{-5}$,batch 4M tokens,warmup 0.5B tokens,weight decay 0.1,梯度裁剪 1.0,正态初始化标准差 0.006。残差裁剪主配置 $c=1$。[PDF p. 6;App. C,p. 15,Table 7]
sGLA 是带 $q,k$ 归一化和标量 $\alpha,\beta$ 门的线性注意力,用于衡量 RLA 的增益;GDN 是 RDN 的直接对照;RetNet、Mamba2 作为其他递推架构对照;Transformer 是 softmax 参考。原文没有给出预训练语料配比、训练上下文长度以及 NIAH 的详细长度/插入深度汇总协议,因此不能从效率图的 128K 长度推断模型在 128K 上完成了准确率评估。
3.2 指标口径
语言建模报告 WikiText 和 LAMBADA perplexity(越低越好)。八项通用任务包括 ARC-C、ARC-E、HellaSwag、LAMBADA、MMLU、PIQA、SocialIQA、WinoGrande;其中 ARC-C/HellaSwag/MMLU 使用表中标记的 acc_n(归一化准确率),其余为 acc,最后取八项均值。准确率表内均为百分数。[Table 2,PDF p. 7]
召回组包括 DROP、FDA、NQ、SQD、SWDE、TQA,以及文档中插入键值对的 NIAH;Table 3 的 Avg. 是包含 NIAH 在内七项的平均,不能与只统计六个真实任务的均值混用。原文沿用 recall-intensive 基准但没有在 v1 详述答案匹配、shot 数及解码协议,因此本笔记不额外指定 exact match 或 contains accuracy。[Sec. 4.2,PDF pp. 6–7]
明确注明 token 预算的消融为:Table 4 的历史残差拟合消融、Table 5 的输出组合消融,均为 50B。Fig. 3 的独立 $\gamma$ 验证曲线覆盖 50B–100B,Fig. 4 的稳定性训练曲线覆盖约 20B–50B,不能统一写成全部消融在 100B 后评估。
四:结果——收益来自什么,哪些说法需要收窄
4.1 效率:线性扩展保留,但常数开销增加

原文 Fig. 2,PDF p. 6。两图横轴均为序列长度 2K–128K;左图纵轴为计算时间(ms,越低越好),带 8K–32K 的局部放大;右图纵轴为吞吐(K tokens/s,越高越好)。图例分别为 Mamba2、Residual LinearAttn、Gated DeltaNet、Residual DeltaNet、Gated LinearAttn 和 Flash Attention。
随长度增长,Flash Attention 时间增长更快、吞吐显著下降;RLA/RDN 与其他线性方法保持近似线性时间、较平的长序列吞吐曲线。残差版本的额外拟合有成本,不能把“仍线性”写成“与基线速度相同”。原文未提供硬件、batch、精度等完整基准配置,也没有精确时间表,故不从曲线读出精确倍数或视为可复现的端到端延迟结论。
4.2 语言建模与通用能力
| 模型 | Wiki ppl ↓ | LAMB ppl ↓ | 八任务 Avg Acc % ↑ |
|---|---|---|---|
| Transformer | 17.33 | 19.53 | 46.51 |
| RetNet | 18.86 | 27.62 | 43.69 |
| Mamba2 | 18.42 | 20.80 | 45.54 |
| sGLA | 17.63 | 18.06 | 45.79 |
| GDN | 17.27 | 15.76 | 46.03 |
| RLA | 17.35 | 15.59 | 46.44 |
| RDN | 16.57 | 14.93 | 47.20 |
来源:Table 2,PDF p. 7,100B tokens 主实验。
RLA 相对 sGLA 的 Wiki ppl 降低 0.28,LAMB ppl 降低 2.47,任务均值提高 0.65 个百分点;RDN 相对 GDN 分别降低 0.70 和 0.83,任务均值提高 1.17 个百分点。RDN 的 Wiki ppl 相对 GDN 下降约 4.05%。与 Transformer 相比,RDN 的八任务均值高 0.69 个百分点。
更细看,RDN 的 ARC-E 为 58.7%,GDN 为 54.0%;LAMBADA acc 为 48.7%,GDN 为 44.0%。但 WinoGrande 下降至 49.5%,低于 GDN 的 51.9% 和 Transformer 的 53.5%;SocialIQA 为 37.7%,也低于 GDN 的 38.1% 和 RLA 的 38.5%。因此综合增强的同时,任务间存在取舍。论文给出点估计,未报告独立训练重复的方差。
4.3 召回:RLA 更强的 NIAH,RDN 更强的综合均值
| 模型 | DROP | FDA | NQ | SQD | SWDE | TQA | NIAH | 七项 Avg |
|---|---|---|---|---|---|---|---|---|
| Transformer | 26.9 | 63.0 | 29.8 | 35.7 | 68.7 | 43.6 | 70.5 | 48.31 |
| sGLA | 25.7 | 51.8 | 24.8 | 31.6 | 63.4 | 41.5 | 76.6 | 45.06 |
| GDN | 25.9 | 47.4 | 26.8 | 32.4 | 63.3 | 43.5 | 75.7 | 44.99 |
| RLA | 26.5 | 51.5 | 25.2 | 33.6 | 64.4 | 42.3 | 83.6 | 46.73 |
| RDN | 27.8 | 57.5 | 26.3 | 32.5 | 63.4 | 43.1 | 79.2 | 47.11 |
来源:Table 3,PDF p. 7,accuracy(%)。为保持表格聚焦,此处省去 RetNet 和 Mamba2 行,二者七项均值为 37.64% 和 42.54%。
RLA 的 NIAH 比 sGLA 高 7.0 个百分点;RDN 比 GDN 高 3.5 个百分点。RDN 的 FDA 从 47.4% 升至 57.5%,提高 10.1 个百分点,是它综合召回提升的主要来源之一。七项均值相对各自基线分别提高 1.67 和 2.12 个百分点。
RLA 的 FDA 为 51.5%,略低于 sGLA 的 51.8%;RDN 的 NQ、TQA 也低于 GDN。作者“稳定超过对应基线”的表述应理解为综合指标,而非所有单项都提高。RDN 的七项均值 47.11% 仍低于 Transformer 的 48.31%,虽然 RLA/RDN 的 NIAH 都高于 Transformer。这说明该组 NIAH 的优势与真实文本召回的整体排序并不相同。
4.4 历史残差状态:大多数建模指标改善,LAMBADA 是例外
| 50B 配置 | Training loss ↓ | WikiText ppl ↓ | LAMB ppl ↓ | GSM8k ppl ↓ | HumanEval ppl ↓ |
|---|---|---|---|---|---|
| RLA | 2.22 | 18.76 | 23.44 | 3.92 | 9.61 |
| RLA w/o fitting | 2.26 | 20.19 | 22.50 | 6.85 | 16.23 |
来源:Table 4,PDF p. 7。无拟合变体用当步 $R_t=(v_t-S_{t-1}k_t)k_t^\top$ 取代持久辅助状态。
删除历史残差拟合后,WikiText ppl 从 18.76 升到 20.19;GSM8k 从 3.92 升到 6.85,HumanEval 从 9.61 升到 16.23。它支持残差历史对多种数据分布的建模价值。但 LAMB ppl 从 23.44 降至 22.50,与该段文字暗示评估困惑度全面恶化不符,应以表格为准。GSM8k/HumanEval 在这里测的是文本困惑度,不是数学解题准确率或代码 pass@1。
4.5 独立 $\gamma$:不要混淆“绑门”与“去掉输出门”

原文 Fig. 3a,PDF p. 8。横轴 50B–100B 训练 tokens,纵轴 WikiText evaluation loss(越低越好);四条曲线区分 RLA/RDN 以及是否独立 $\gamma$。文中 w/o γ 指令 $\gamma=\beta$,并非完全不做纠正。独立 $\gamma$ 的曲线更低,RDN 的差距更明显。

原文 Fig. 3b,PDF p. 8。分组为 Reasoning、Understanding、Recall,纵轴分数越高越好。独立门在若干任务组上带来提升,但 RLA 的 Understanding 柱没有表现出同方向收益。该图没有给出每组的完整精确数值表,本笔记不把估读柱高当正式数字。
4.6 输出组合:简单相加也能保留主要收益
输出门消融只替换 $o_t$ 的组合公式,辅助状态的学习仍存在。
| 50B 模型 | 输出方式 | 八任务 Avg Acc % |
|---|---|---|
| RLA | $\alpha_tS_{t-1}q_t+\gamma_tR_tq_t$ | 43.30 |
| RLA | $S_{t-1}q_t+R_tq_t$ | 43.81 |
| RDN | $\alpha_tS_{t-1}q_t+\gamma_tR_tq_t$ | 44.65 |
| RDN | $S_{t-1}q_t+R_tq_t$ | 43.96 |
来源:Table 5,PDF p. 8。去掉输出门,RLA 提高 0.51 个百分点,RDN 下降 0.69 个百分点。它支持作者的解释:主要能力来自持久残差拟合,而不是一种对所有骨干都最优的输出加权公式。该实验与前一节“将写入门绑定”的干预不同。
4.7 归一化与裁剪:RLA 和 RDN 的稳定性需求不同

原文 Fig. 4a,PDF p. 9。横轴 layer index,纵轴为注意力输出的 L2 norm,纵轴刻度跨多个数量级。RLA 去掉归一化或裁剪后,若干层的输出范数达到数百至数千量级,而完整版本显著更小;不同层的增长程度并不一致。

原文 Fig. 4b,PDF p. 9。横轴约 20B–50B tokens,纵轴训练 loss;RLA 缺少归一化或裁剪的曲线高于完整模型。RDN 与 RDN w/o clip 曲线几乎重合,说明在此配置下 delta 更新对裁剪不敏感。裁剪对 RLA 的作用很强,却不能据此推广成每种残差记忆模型都必须使用同样阈值。
五:结论——把“怎么错”也写入状态
这篇论文最清楚的贡献,是将键值拟合拆成基础映射与残差映射,两份简单的递推状态共同改善输出。它使较复杂的纠正目标只体现在伪残差向量上,状态更新仍能复用线性注意力或 delta-rule kernel;内层更新规则与外层误差目标也因此可以分别设计。
实验中,RDN 的语言建模与通用任务表现较强,RLA 的 NIAH 更好,两个变体都提升对应基线的综合召回。但要评估实际部署价值,还需要把新增状态容量与 kernel 开销放在一起比较:论文没有等状态容量实验,效率图也缺少完整运行配置;预训练语料、训练长度与检索评估细节的缺省会影响结果复现。
后续最有价值的控制是:在相同状态预算或计算预算下,比较单状态加宽与双状态拟合;研究两份状态是否需要共享衰减和查询;以及在更完整的检索长度—深度协议下检验残差历史的收益。附录提出的 Log-Cosh 等伪残差也值得实验检验,其潜在收益目前仍是方法上的延伸。