学习笔记 · 2026-10-15 · 基础
注意力与 Transformer:一次读完整个句子的方法
Transformer 去掉了 RNN 的循环和 CNN 的卷积,只用注意力处理句子,解决了以往必须逐个读取单词的方式所带来的瓶颈。本笔记梳理注意力的工作原理、2017 年原论文的新贡献,以及注意力汇聚、RoPE 等近期议题。
目录
- 注意力是一种用权重决定每个 token 在多大程度上参考句子中其他 token、从而混合信息的方法。
- Transformer(1706.03762)不使用循环、只用注意力,使训练可以并行进行,同时改进了翻译质量和训练成本。
- 多头注意力同时运行多个视角的注意力,弥补加权平均导致细节变模糊的问题。
- 注意力本身没有顺序信息,因此需要另外加入位置信息,而这种方式(如 RoPE)至今仍被分析为性能问题的成因。
- 近来,针对长上下文中暴露出的注意力习性(例如注意力集中到第一个 token 上的注意力汇聚),测量并修正这些习性的研究不断涌现。
为什么需要:逐词读取方式的瓶颈
在 Transformer 之前,翻译和语言建模中最常用的结构是 RNN(循环神经网络)。RNN 从句首开始逐个 token 读取句子,并把概括已读内容的“隐藏状态”传给下一步。Transformer 论文(paper)指出,这种方式本质上是顺序的,无法在一个句子内部拆分计算并同时处理,句子越长,这一点就越致命。受内存限制,把多个句子打包一起处理也会变得困难。
为了减少顺序计算,也有翻译模型采用了 CNN(卷积神经网络)。CNN 可以并行计算所有位置,但据同一篇论文的说明,连接两个相距较远的单词所需的运算次数会随距离增加(ConvS2S 与距离成正比,ByteNet 按对数增长)。连接路径越长,也越难学习远距离单词之间的关系。
注意力本身当时已在使用。它作为让翻译模型选择参考原文哪一部分的机制,连接编码器和解码器。不过据论文所述,几乎在所有情况下它都与 RNN 一起使用。Transformer 更进一步提出了这样的问题:“如果去掉 RNN、只保留注意力会怎样?”
RNN 与 Transformer
RNN逐个 token 依次处理
- 前一步结果出来后才能进行下一步计算
- 句子内部无法并行处理
- 句子越长瓶颈越严重
Transformer一次处理全部 token
- 用注意力同时连接所有位置
- 远距离单词也以固定运算次数连接
- 顺序信息需另外加入
공통 两者都是接收句子等序列并生成另一序列的模型
核心思想:在会议室里决定听谁的发言
注意力可以比作一场会议。会议室里,句子中的每个单词各坐一个位置。每个人在整理自己的发言之前,会先环顾其他人,把与自己当前话题相关的人的话听得更重,把无关的人的话听得更轻。比如单词“it”会留意前面出现的“the animal”。每个人这样对其他人的话加权混合之后,每个单词都会得到一个反映上下文的新表示。
这个过程通常用 Query(查询)、Key(标签)、Value(内容)三者来说明。每个单词都有“我要找的东西”(Query)、“描述我的标签”(Key)和“我实际要传递的内容”(Value)。先为我的 Query 与其他单词的 Key 的匹配程度打分,把分数转换成总和为 1 的比例,再按这个比例混合 Value。像这样在一个句子内部让单词相互参考,就叫作自注意力(self-attention)。论文将其定义为“把一个序列内的不同位置相互关联起来、以计算该序列表示的注意力”。
优点很明显。由于所有单词一次就能看到所有单词,无论两个单词相距多远,连接它们的运算次数都是固定的,所有位置的计算也可以同时进行。不过正如论文自己承认的,对多个单词做加权平均可能会让细节变得模糊。为弥补这一问题,论文引入了并行运行多个注意力的多头注意力。
如何运作:编码器与解码器的层堆叠
原始 Transformer 是为翻译设计的,分为读取输入句子的编码器和写出输出句子的解码器。处理大致按以下顺序进行。第一,把输入句子切分成 token,再把每个 token 转换成数字向量,也就是嵌入。由于注意力本身不知道单词的顺序,需要在此加入位置信息。论文中的原始模型使用了不经学习(没有参数)的位置表示。
第二,编码器由 6 个相同的层堆叠而成。每层有两个子层:一个是多头自注意力,另一个是对每个 token 单独应用的简单全连接神经网络(前馈网络)。每个子层都设置了把输入直接加到输出上的残差连接,之后再接层归一化。为此,所有子层的输出维度都统一为 512 维。
第三,解码器同样堆叠了 6 层,但多一个子层。解码器的自注意力加了掩码,使每个位置看不到它后面的位置,因为不能提前偷看尚未写出的未来单词。新增的子层是关注编码器输出的注意力,用于在翻译时决定参考原文的哪一部分(通常称为交叉注意力)。
第四,解码器一次生成一个输出 token。这是自回归模型的方式:把刚生成的 token 再放回输入,预测下一个 token。训练时可以把整句正确答案连同掩码一次性输入,因此能够并行处理。这正是 Transformer 训练速度快的原因。
起点:2017 年 Transformer 论文的新贡献
“Attention Is All You Need”(paper)是 Google Brain 和 Google Research 的研究人员于 2017 年发表的论文。论文自述的核心在于,它是第一个既不用循环也不用卷积、仅靠自注意力计算输入和输出表示的转导(transduction)模型。根据贡献者说明,Scaled Dot-Product 注意力、多头注意力以及无参数的位置表示都是在这篇论文中提出的。
结果也很好。在 WMT 2014 英语→德语翻译上取得 28.4 BLEU(翻译质量得分),比包括多模型集成在内的此前最佳成绩高出 2 BLEU 以上。在英语→法语翻译上,用 8 块 GPU 训练 3.5 天,创下单一模型最佳成绩 41.8 BLEU。论文称这一训练成本只是此前最佳模型的“一小部分”。论文还写道,仅用 8 块 P100 GPU 训练 12 小时,就达到了当时最高水平的翻译质量。
论文还把测试扩展到翻译之外。将其应用于英语句子结构分析(constituency parsing),表明无论训练数据多还是少都表现良好。本笔记的输入资料中没有讨论这一结构此后如何普及的论文,因此省略中间的历史。不过,从下文的近期研究把大语言模型和视频生成模型中的注意力作为分析对象这一点可以看出,这一结构至今仍被用作基础组件。
原论文的主要结果
最新进展:测量并修正注意力的习性
第一条脉络是长上下文窗口中暴露出的问题。注意力汇聚研究(paper)指出,如今的语言模型虽然标榜 100 万 token 的上下文窗口,却因两种习性而无法用满这个窗口。一是没有值得读取内容的注意力头把剩余的注意力倾注到第一个 token 上的“注意力汇聚”,二是模型能否找到某个事实取决于该事实位于上下文中何处的现象。该论文先介绍了此前研究的报告——门控注意力(gated attention)把流向第一个 token 的注意力从 46.7% 降至 4.8%,随后构建了测量工具 SinkProbe,并应用于仅在 token 混合方式上不同的 4 个小型模型。结果发现,造成汇聚的不是结构而是训练目标;门控的效果在他们的规模上没有复现;汇聚的大小、激活值和位置偏差各自独立变化。
第二条脉络是位置信息的副作用。视频扩散模型研究(paper)在模型内部寻找文本生成视频模型经常生成违背物理规律视频的原因。研究确认,运动路径在去噪的早期阶段形成(“先形状,后细节”),并且存在专门主导运动规划的注意力头。研究还分析认为,RoPE(旋转位置嵌入)使空间方向上的注意力过快减弱,导致早期的候选位置过早固定在物理上不自然的位置。为此,研究提出了在每个去噪步骤调节 RoPE 频率的轻量修改,并称在无需额外训练直接应用的实验和经过训练的实验中都确认了效果。
第三条脉络是试图改变注意力数学基础的理论研究。黎曼注意力研究(paper)关注的是,所有基于 Transformer 的语言模型都用普通的内积(欧几里得内积)计算注意力分数。该论文引用前人研究,介绍了只堆叠注意力时表示的多样性(秩)会随深度增加而急剧下降的问题。随后,它提出了为每个 token 使用学习得到的“度量距离的方法”(黎曼度量)的理论框架,以及名为 Fiber Bundle Transformer 的结构规范。但论文自己说明这并不是对其能防止秩下降的证明,并把核心问题留作开放问题。
局限与争议
第一,自注意力是所有 token 都关注所有 token 的结构,因此 token 之间关系的数量随句子长度的平方增长(这是一般的计算性质)。这可以说是原论文所强调的“与距离无关的固定运算次数”的代价。随着上下文窗口扩大到百万 token 量级,正如注意力汇聚研究(paper)所指出的,窗口大并不意味着能均匀利用其中的信息。
第二,把注意力权重直接解读为“模型认为什么重要”是有风险的。注意力汇聚研究(paper)讨论了没有内容可读的注意力头会毫无意义地把注意力倾注到第一个 token 上。也就是说,注意力值高不一定代表重要性高。这也是可解释性研究要单独测量每个注意力头实际贡献的原因。视频扩散模型研究(paper)同样结合注意力模式和注意力头的因果贡献,找出了负责运动的注意力头。
第三,声称已修复的报告在其他条件下是否依然有效,需要另行确认。同一研究(paper)中门控注意力的效果在小规模上没有复现,就是一个例子。像黎曼注意力研究(paper)这样从根本上改变结构的提议也仍处于理论阶段,在实际大型模型上是否有改进尚未得到验证。
延伸学习
最先要读的是“Attention Is All You Need”(paper)。在第 1 章 Introduction 和第 2 章 Background 中确认作者如何看待 RNN 和 CNN 的局限,再在第 3 章 Model Architecture 中结合图 1 梳理编码器、解码器的层构成和掩码,就能对照原文重新阅读本笔记的“如何运作”一节。如果不熟悉公式,只要抓住每个子层“用注意力混合、用前馈网络加工、用残差保留原值”这一大致流程就足够了。
接下来可以按兴趣选择。如果关注语言模型的长上下文处理,可以读注意力汇聚研究(paper),其定义测量指标(汇聚大小、按位置的召回率等)的方式对实际评估也有参考价值。如果关注位置信息和视频生成,视频扩散模型研究(paper)具体展示了 RoPE 对注意力的影响。如果对注意力的数学性质感兴趣,可以读黎曼注意力研究(paper),但最好区分作者自己明确界定为“结构性观察而非证明”的部分。
相关术语
参考资料
奠基论文
最新研究
由 AI 根据所列参考资料撰写并经过审核。详情请查看原始资料。