在自然语言处理 (NLP) 的世界里,有些研究成果的诞生如同地震。它们不仅动摇了基础,更是重塑了整个格局。2017 年的论文 《Attention Is All You Need》 就是这样一个震撼时刻。它引入了一种架构,此后几乎成为了所有最先进 NLP 模型 (从 GPT-3 到 BERT) 的基石。这个架构就是 Transformer。
在 Transformer 出现之前,处理机器翻译等序列任务的首选模型是 循环神经网络 (RNNs) ,尤其是 LSTMs 和 GRUs。这些模型按序逐词处理文本,并维持一个携带过去信息的隐藏状态。虽然这种顺序处理的特性直观易懂,但它也是这些模型最大的弱点: 训练速度缓慢,并且极难实现并行化。随着序列长度的增加,捕捉句子中远距离词语之间的依赖关系变得愈发困难。
《Attention Is All You Need》的研究者们提出了一个激进的设想:** 如果我们完全抛弃循环结构,构建一个纯粹基于注意力机制的模型会怎样?** 结果就是 Transformer —— 一个训练速度更快、更易并行化,并能在机器翻译任务上创造新的业界最佳性能的模型。
在本文中,我们将深入探讨这篇开创性的论文,逐步拆解 Transformer 的架构,介绍它的工作原理、有效性原因,以及它如何为现代 NLP 时代铺平道路。
背景: 从循环到注意力
要理解 Transformer 为什么如此具有革命性,我们需要回顾它出现之前的技术格局。当时,大多数在机器翻译等任务中表现出色的模型都采用 编码器-解码器 (encoder-decoder) 架构:
- 编码器 (Encoder) : 读取输入句子 (例如德语) ,并将其压缩为一个连续表示——通常称为 上下文向量 (context vector) 。
- 解码器 (Decoder) : 接收这个上下文向量,并一次生成一个词,最终组成输出句子 (例如英语) 。
传统上,编码器和解码器都由 RNN 构建。编码器逐步处理输入,其最终隐藏状态成为上下文向量;解码器则依赖这个唯一的向量来生成输出。
这种设计存在一个主要瓶颈: 模型必须将输入句子的全部含义压缩到一个固定大小的向量中。这对长句尤其不利。
2014 年,注意力机制 (attention mechanism) 的引入缓解了这一限制。注意力机制不再依赖单一的上下文向量,而是允许解码器在生成每个词时“回看”编码器的全部输出,动态聚焦于输入中最相关的部分。这是一次巨大飞跃,但 RNN 的顺序处理特性依然是瓶颈。
Transformer 的核心创新在于证明: 可以仅依赖注意力机制——完全不使用循环结构,构建出高性能的编码器-解码器模型。
Transformer 架构: 鸟瞰图
Transformer 保留了编码器-解码器框架: 编码器将输入序列处理为一组带上下文的表示,解码器使用这些表示生成输出。
图 1: Transformer 架构。编码器和解码器都是由 \(N=6\) 个相同层组成的堆栈。
在原始模型中,每个堆栈包含六个相同的层。这些层的核心是 缩放点积注意力 (Scaled Dot-Product Attention) 机制——Transformer 的心脏。
核心机制: 缩放点积注意力
注意力机制会计算一组值 (Values,\(V\)) 的加权和,而权重由查询 (Query,\(Q\)) 与一组键 (Keys,\(K\)) 之间的相似度决定。
组成部分:
- 查询 (\(Q\)) — 我们正在寻找的内容。
- 键 (\(K\)) — 用于索引值的标签。
- 值 (\(V\)) — 与每个键关联的实际信息。
缩放点积注意力机制 (见图 2 左) 包括四个步骤:
- 计算分数: 对 \(Q\) 与每个 \(K\) 计算点积,衡量查询与键的匹配程度。
- 缩放: 将分数除以 \(\sqrt{d_k}\),其中 \(d_k\) 是键的维度,防止数值过大导致 softmax 进入梯度极小的区域。
- 计算权重: 对缩放后的分数应用 softmax,得到注意力权重 (概率和为 1) 。
- 计算输出: 将权重乘以值向量 \(V\) 并求和,得到输出。
数学表达式为:
公式 1: \(\operatorname{Attention}(Q, K, V) = \operatorname{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V\)
更多更好: 多头注意力
图 2: (左) 缩放点积注意力。 (右) 多头注意力由多个并行的注意力头组成。
Transformer 并非只使用单一注意力机制,而是采用 多头注意力 (Multi-Head Attention) ,并行运行多个 (此处 \(h=8\)) 缩放点积注意力:
- 通过学习的权重矩阵,将 \(Q\)、\(K\)、\(V\) 线性投影到 \(h\) 个不同的子空间。
- 在每个头中独立执行缩放点积注意力。
- 拼接所有头的输出。
- 通过另一线性层生成最终输出。
数学表达式为:
公式 2: \(\text{MultiHead}(Q,K,V) = \text{Concat}(head_1, \dots, head_h)W^O\),
其中 \(head_i = Attention(QW_i^Q, KW_i^K, VW_i^V)\)。
多头注意力使模型能够同时学习并关注词语间不同类型的关系——包括语法、语义等。
组件组合
编码器层
每个编码器层包括:
- 多头自注意力 (Multi-head self-attention) : \(Q\)、\(K\)、\(V\) 来自同一来源——上一层的输出。
- 前馈网络 (Feed-forward network, FFN) : 独立应用于每个位置。
编码器的自注意力机制允许每个位置关注输入中的所有其他位置。
解码器层
每个解码器层包括:
- 带掩码的多头自注意力 (Masked multi-head self-attention) : 防止关注未来位置。
- 编码器-解码器注意力 (Encoder-decoder attention) : \(Q\) 来自前一解码器层;\(K\) 和 \(V\) 来自编码器输出。
- 前馈网络。
编码器-解码器注意力使解码器在预测每个 token 时能够参考编码器的输出。
残差连接与层归一化
每个子层通过残差连接与层归一化进行包装:
\[ \text{LayerNorm}(x + \text{Sublayer}(x)) \]残差连接有助于缓解梯度消失,从而更好地训练深层网络;层归一化则可稳定训练过程。
前馈网络
每层的 FFN 包含两次线性变换,中间使用 ReLU 激活函数:
公式 3: \(FFN(x) = \max(0, xW_1 + b_1)W_2 + b_2\)
缺失的一环: 位置编码
自注意力机制本质上对顺序不敏感。为注入序列位置信息,Transformer 在输入嵌入中加入 位置编码 (positional encodings) ,使用不同频率的正弦和余弦函数:
公式 4:
\(PE_{(pos,2i)} = \sin\left(\frac{pos}{10000^{2i/d_{\text{model}}}}\right)\)
\(PE_{(pos,2i+1)} = \cos\left(\frac{pos}{10000^{2i/d_{\text{model}}}}\right)\)
这些函数为每个位置生成唯一编码,并使模型有可能泛化到训练时未见过的序列长度。
为什么选择自注意力?
为何用自注意力替代 RNN?主要优势总结于表 1:
表 1: 不同类型层在复杂度、顺序操作及路径长度上的对比。
- 计算复杂度: 当序列长度 \(n < d\) 时,自注意力比循环结构更快。
- 并行化: RNN 需执行 \(O(n)\) 次顺序操作;自注意力可在 \(O(1)\) 次顺序操作内并行处理所有位置。
- 依赖路径长度: 自注意力一次即可连接任意两个位置,更易学习长距离依赖。
实验与结果
Transformer 主要在机器翻译任务中进行测试。
训练细节
数据集:
- 英-德: WMT 2014 (450 万句对,37K BPE 词表) 。
- 英-法: WMT 2014 (3600 万句对,32K word-piece 词表) 。
使用 Adam 优化器,并采用自定义学习率调度:
公式 5: 学习率在前 4000 步线性增加,之后按 \(1/\sqrt{\text{step}}\) 比例衰减。
刷新业界最佳
表 2: 各模型 BLEU 分数及训练成本。
大型 Transformer 在英-德任务上取得 28.4 BLEU —— 比之前最佳高出 2 分以上,且训练成本更低。在英-法任务上获得 41.8 BLEU,创下单模型新高。
模型变体
表 3: Transformer 架构不同变体的消融实验结果。
主要发现:
- 注意力头数 (A): 多头至关重要;但过多会降低性能。
- 模型规模 (C): 模型越大,效果越好。
- 正则化 (D): Dropout 有效防止过拟合。
- 位置编码 (E): 正弦编码与学习式位置嵌入效果相当。
泛化到其他任务
表 4: Transformer 在英语成分句法分析任务中的表现。
在 英语成分句法分析任务中,Transformer 表现同样出色,即使缺乏大量任务专用调优,也超越了大部分旧模型。
窥探内部: 解释注意力
基于注意力的模型的一个优势是可解释性。可视化注意力权重可揭示模型关注的内容。
图 3: 编码器自注意力 (第 5 层,共 6 层) 从 “making” 指向 “more difficult”,捕捉了长距离依赖。
图 4: 编码器-解码器注意力 (第 5 层,共 6 层) 将 “its” 指向 “The Law”。
图 5: 不同的注意力头学到了句子的不同结构模式。
这些例子表明,注意力头常与语言学相关的关系 (如语法、语义、共指等) 相契合,体现了模型分层组织信息的能力。
结论与影响
《Attention Is All You Need》是 NLP 领域的分水岭。它展示了一个完全基于注意力的架构可以超越循环与卷积模型——并且更易并行化——由此开拓了新天地。核心要点:
- 自注意力极具威力: 能有效建模复杂词语关系。
- 并行化是关键: 移除循环结构大幅加速训练。
- 通用性设计: 在多任务中成功,显示了广泛适用性。
如今,Transformer 已无处不在: 驱动着 GPT、BERT、T5 及无数颠覆语言 AI 的模型。很少有一篇论文能产生如此深远的影响——而它确实改写了规则。