Attention Is All You Need:关键 Reference 技术分析
0. 定位
原论文:Vaswani et al., 2017, Attention Is All You Need,arXiv:1706.03762。论文提出 Transformer:一个完全基于注意力机制、去掉循环和卷积的序列转导模型。论文的关键不只是提出一个新模块,而是把 2014-2017 年神经机器翻译、注意力、并行序列建模和深层网络训练技术重新组合成一个更适合 GPU 并行训练的架构。
这份 wiki 分析论文中最关键的 reference。重点不是完整复述 40 篇参考文献,而是解释哪些引用真正支撑了 Transformer 的设计选择。
技术图谱
下面三张图按不同粒度整理这篇论文的技术演进和机制细节:
- 技术演进图:从 Seq2Seq、attention、CNN 序列模型、训练配方到 Transformer 的重组。
- Block 机制图:Q/K/V、multi-head attention、mask、FFN、residual、LayerNorm 的内部数据流。
- 复杂度与 LLM 演进图:RNN/CNN/self-attention 的路径长度和复杂度差异,以及后续 LLM 的主要改造方向。
1. 技术主线总览
Transformer 的引用链可以分成六条技术主线:
| 主线 | 代表 reference | 被 Transformer 继承的东西 | Transformer 的改变 |
|---|---|---|---|
| Seq2Seq 编码器-解码器 | Sutskever et al. 2014;Cho et al. 2014 | encoder-decoder、自回归解码 | 保留框架,替换 RNN 计算核心 |
| 机器翻译注意力 | Bahdanau et al. 2014;Luong et al. 2015 | decoder 查询 encoder 表示、软对齐 | 从 cross-attention 扩展到 self-attention,并多头化 |
| 工业级 NMT 基线 | GNMT, Wu et al. 2016 | 深层 LSTM、attention、残差、wordpiece、beam search | 用更并行的架构取得更低训练成本 |
| 非循环并行序列模型 | ByteNet;ConvS2S;Neural GPU | 去掉或弱化 RNN 的顺序瓶颈 | 进一步去掉卷积,用全局 self-attention 连接所有位置 |
| 自注意力和记忆机制 | Decomposable Attention;Structured Self-Attention;Memory Networks | intra-attention、可解释对齐、多位置聚合 | 首次把 self-attention 作为完整转导模型的主干 |
| 训练与工程稳定性 | ResNet、LayerNorm、Adam、Dropout、Label Smoothing、BPE、weight tying | 深层训练稳定性、正则化、子词建模 | 组合成可扩展的 Transformer 训练配方 |
2. Seq2Seq 基础:Transformer 保留了框架,但替换了计算单元
2.1 Sutskever et al. 2014:Sequence to Sequence Learning with Neural Networks
技术作用:奠定神经机器翻译里的 encoder-decoder 模式。输入序列被编码成向量或状态,decoder 按自回归方式生成输出 token。
对 Transformer 的影响:
- Transformer 沿用 encoder-decoder 结构。
- decoder 仍然是 auto-regressive:预测第
t个 token 时只能使用< t的目标侧信息。 - 训练和推理仍依赖 teacher forcing / beam search 这类 seq2seq 范式。
Transformer 的改变:
- 不再用 LSTM 把序列位置映射成时间步。
- encoder 输出不是一个固定向量,而是一组可被 decoder cross-attention 查询的上下文向量。
- decoder 的历史依赖由 masked self-attention 表达,而不是 RNN 隐状态传递。
2.2 Cho et al. 2014:RNN Encoder-Decoder / GRU
技术作用:提出 RNN Encoder-Decoder,用两个 RNN 分别编码源序列和生成目标序列,并引入 GRU 这类门控循环结构。论文证明神经模型可以学习语义和句法上有意义的短语表示。
对 Transformer 的影响:
- 明确了条件序列建模形式
P(y | x)。 - 机器翻译系统可以端到端学习,而不是只依赖短语表和人工特征。
Transformer 的改变:
- 去掉 recurrent state,把 token 间关系交给注意力矩阵。
- 原来的“状态压缩”问题转化为“任意位置可直接交互”的问题。
3. 注意力机制:从软对齐到多头自注意力
3.1 Bahdanau et al. 2014:Neural Machine Translation by Jointly Learning to Align and Translate
这是 Transformer 最关键的前置工作之一。Bahdanau attention 解决了早期 encoder-decoder 的固定长度瓶颈:decoder 每一步不只读一个最终向量,而是动态搜索源句中相关部分。
核心技术:
- encoder 产生每个源位置的 annotation。
- decoder 每个时间步产生 query。
- 用一个可学习的对齐函数计算源位置权重。
- 将源表示加权求和成 context vector。
对 Transformer 的影响:
- Transformer 的 encoder-decoder attention 直接继承“decoder 查询 encoder 表示”的模式。
- 注意力权重被视为软对齐,对机器翻译特别自然。
- “距离不影响依赖建模”这一思想在 Transformer 中被推进到 self-attention。
Transformer 的改变:
- Bahdanau attention 通常和 RNN decoder 配合;Transformer 把 RNN decoder 本身也替换成 masked self-attention。
- Bahdanau 使用 additive attention;Transformer 主要使用 scaled dot-product attention。
- 原始 attention 是单一对齐空间;Transformer 用 multi-head attention 并行学习多个表示子空间。
3.2 Luong et al. 2015:Effective Approaches to Attention-based NMT
技术作用:系统比较全局 attention 和局部 attention,推动 attention-based NMT 成为强基线。Luong attention 中常见的 dot-product / multiplicative attention 是 Transformer scaled dot-product attention 的直接前身。
对 Transformer 的影响:
- 点积注意力可高效映射到矩阵乘法。
- global attention 证明了“每一步看全部源位置”在翻译中有效。
- local attention 提供了降低计算量的思路,Transformer 结论中也提到未来研究 local / restricted attention。
Transformer 的改变:
- 原始 dot-product 在维度较大时 softmax 易饱和;Transformer 加上
1 / sqrt(d_k)缩放。 - attention 不再只是 decoder 到 encoder 的附属模块,而成为每层的主计算。
3.3 Britz et al. 2017:Massive Exploration of NMT Architectures
技术作用:大规模实验比较 NMT 架构超参数。它说明当时 RNN NMT 的架构搜索成本非常高,训练一次可能消耗大量 GPU 时间。
对 Transformer 的影响:
- Transformer 论文把“训练成本”作为核心论点,而不是只报 BLEU。
- 并行化不只是工程优化,而是架构创新目标。
Transformer 的改变:
- 将顺序计算路径从
O(n)降到每层常数级路径。 - 用更少训练时间达到或超过 RNN / CNN 基线。
4. 工业级机器翻译基线:GNMT
4.1 Wu et al. 2016:Google's Neural Machine Translation System
GNMT 是 Transformer 论文中最重要的实际系统对照之一。GNMT 使用深层 LSTM encoder-decoder、attention、residual connections、wordpiece、beam search、length normalization 和 coverage penalty。
对 Transformer 的影响:
- Transformer 沿用子词 vocabulary、beam search 和 length penalty 这类成熟 NMT 工程组件。
- GNMT 的深层 LSTM + attention 是当时强大的 production-grade baseline。
- GNMT 也强调稀有词问题和推理效率,这些都是 Transformer 实验设计的背景。
Transformer 的改变:
- GNMT 的 8 层 encoder 和 8 层 decoder 仍有 RNN 顺序瓶颈。
- Transformer 用 self-attention 让训练样本内部所有位置可并行计算。
- 在 WMT 2014 En-De 和 En-Fr 上,Transformer 用更低训练成本达到更高或竞争性 BLEU。
5. 非循环并行序列模型:Transformer 为什么不仅仅是“没有 RNN”
5.1 ByteNet:Neural Machine Translation in Linear Time
ByteNet 使用一维卷积和 dilated convolution 处理序列。它的重要性在于:证明序列转导不一定必须依赖 RNN,卷积也能实现并行训练,并通过 dilation 扩大感受野。
对 Transformer 的影响:
- 强化了“减少顺序计算”的研究方向。
- 提供了 path length 的比较对象:卷积需要堆叠层或 dilation 才能连接远距离 token。
Transformer 的改变:
- Self-attention 每层即可让任意两个位置直接交互,最长路径为常数。
- 代价是 attention 复杂度通常为
O(n^2 d),长序列下比线性卷积更贵。
5.2 ConvS2S:Convolutional Sequence to Sequence Learning
ConvS2S 是 Transformer 发表前非常强的 CNN seq2seq 模型。它完全基于卷积,训练时能并行处理所有位置,并通过 gated linear units 改善梯度传播;decoder 每层也有 attention。
对 Transformer 的影响:
- 证明非 RNN 架构能在 WMT 翻译上取得强结果。
- 引入 learned positional embeddings 作为非循环模型的位置信息方案。
- 是 Transformer 结果表中的关键比较对象。
Transformer 的改变:
- ConvS2S 仍依赖局部卷积堆叠来扩大感受野;Transformer 使用全局 attention。
- ConvS2S 的位置依赖更强地来自卷积结构和位置 embedding;Transformer 必须显式注入 positional encoding。
- Transformer 在论文中比较了 learned position embedding 和 sinusoidal encoding,结果接近,但选择后者以支持可能的长度外推。
5.3 Neural GPU / Extended Neural GPU
技术作用:用可并行的神经计算结构学习算法和序列变换,代表了“用非传统 RNN 结构处理序列”的探索。
对 Transformer 的影响:
- 提供了“active memory / 并行状态更新”方向的背景。
- 说明研究社区已经意识到普通 RNN 的顺序计算不是唯一选择。
Transformer 的改变:
- Transformer 没有设计复杂的可微计算机或 active memory,而是把核心简化为 attention + FFN + residual + normalization。
6. Self-Attention 前史:Transformer 把局部模块变成完整架构
6.1 Parikh et al. 2016:A Decomposable Attention Model
技术作用:在自然语言推理任务中使用可并行的 attention 分解结构,减少对 LSTM 的依赖。它不是完整的机器翻译模型,但证明 attention 可以作为强大的序列匹配工具。
对 Transformer 的影响:
- 证明 attention 可替代一部分序列编码需求。
- 强调可并行、少参数、强性能的价值。
Transformer 的改变:
- Decomposable attention 面向句对分类;Transformer 面向通用 sequence transduction。
- Transformer 引入堆叠 self-attention 层,使表示逐层组合。
6.2 Lin et al. 2017:A Structured Self-attentive Sentence Embedding
技术作用:使用 self-attention 生成可解释句向量,并用二维矩阵表示多视角句子 embedding。
对 Transformer 的影响:
- 证明同一序列内部的位置可以互相关注。
- 多个 attention view 与 multi-head attention 有概念上的相似性:不同头/行关注不同信息。
Transformer 的改变:
- Lin et al. 主要生成句级表示;Transformer 需要保留每个位置的上下文表示以支持逐 token 解码。
- Transformer 将多视角注意力变成每层的标准操作。
6.3 Sukhbaatar et al. 2015:End-to-End Memory Networks
技术作用:通过多跳 attention 在外部 memory 上检索信息,用于问答和语言建模。
对 Transformer 的影响:
- attention 可以被看作内容寻址 memory lookup。
- 多跳 memory 与堆叠 attention 层在直觉上相近。
Transformer 的改变:
- memory 不是外部结构,而是序列位置自身形成的 key-value memory。
- 每一层都重新投影 Q/K/V,逐层构建上下文。
7. Multi-Head Attention:为什么不是单头
Transformer 论文的一个重要判断是:单头 attention 会把不同关系平均到一个权重分布里,表达能力受限。多头 attention 的设计把 d_model 投影到多个较小的 Q/K/V 子空间:
head_i = Attention(Q W_i^Q, K W_i^K, V W_i^V)
MultiHead = Concat(head_1, ..., head_h) W^O
关键收益:
- 不同头可以关注不同距离、不同句法关系、不同语义关系。
- 降低每个头的维度后,总计算量接近单头 full-dimensional attention。
- 对齐矩阵不再必须表达单一结构。
论文中的消融显示,单头比最佳设置低约 0.9 BLEU;头数过多也会下降,因为每个头维度过小会削弱兼容性建模。
8. 位置编码:来自非循环架构的必要补丁
Transformer 去掉 RNN 和 CNN 后,模型本身对顺序不敏感。如果没有位置编码,self-attention 对输入 token 集合近似置换等变,无法知道词序。
关键 reference:
- ConvS2S 使用 learned positional embeddings。
- Transformer 尝试 learned positional embeddings 与 sinusoidal positional encoding。
Transformer 的选择:
- sinusoidal encoding 使用不同频率的正弦/余弦函数。
- 设计动机是相对位移
k可由线性变换表达。 - learned 与 sinusoidal 在实验中效果接近;论文偏向 sinusoidal,是因为它可能更容易外推到训练长度之外。
技术评价:
- 绝对位置编码解决了“顺序注入”问题,但没有显式建模相对位置偏置。
- 后续 Transformer 变体,如相对位置编码、RoPE、ALiBi,本质上是在修补原始 positional encoding 对长度外推和相对距离建模的不足。
9. 深层训练组件:Transformer 成功依赖的不只是 Attention
9.1 ResNet:Deep Residual Learning
Transformer 每个子层外都有 residual connection。技术作用是让深层网络更容易优化,梯度可以绕过子层直接传播。
在 Transformer 中:
LayerNorm(x + Sublayer(x))
原论文使用 post-norm。后续大规模语言模型常改为 pre-norm,以改善深层训练稳定性。
9.2 Layer Normalization
LayerNorm 对单个样本内同一层的隐藏维度做归一化。相比 BatchNorm,它不依赖 batch 统计,适合变长序列和自回归生成。
在 Transformer 中:
- 每个 attention 子层后使用 LayerNorm。
- 每个 FFN 子层后使用 LayerNorm。
- 与 residual connection 一起构成稳定深层堆叠的基本单元。
9.3 Adam + warmup + inverse square root decay
Transformer 使用 Adam,并使用 warmup schedule:
lr = d_model^-0.5 * min(step^-0.5, step * warmup_steps^-1.5)
技术意义:
- warmup 避免训练初期大步长破坏尚未稳定的表示。
d_model^-0.5让不同模型宽度下的学习率尺度更稳定。- warmup 后按 step 的反平方根衰减,兼顾早期快速学习和后期收敛。
9.4 Dropout 和 Label Smoothing
Dropout 用于 attention、FFN、embedding + positional encoding 的输出。Label smoothing 把 one-hot 目标分布软化,降低过度自信。
技术效果:
- Dropout 降低过拟合,尤其在 WMT En-De 这种相对较小数据上重要。
- Label smoothing 往往会让 perplexity 看起来变差,但 BLEU / accuracy 更好。
9.5 Weight Tying:Using the Output Embedding to Improve Language Models
Transformer 共享输入 embedding 和输出 softmax 前的权重矩阵。这减少参数量,也把输入词表示和输出分类空间绑定起来。
技术评价:
- 对词表很大的翻译模型尤其有用。
- 后续语言模型普遍继承了 embedding tying 或其变体。
10. 子词建模:BPE / WordPiece 是实验成功的基础设施
10.1 Sennrich et al. 2015:BPE
BPE 解决开放词表和稀有词问题。Transformer 在 En-De 使用约 37K shared source-target BPE vocabulary。
为什么关键:
- 如果使用 word-level vocabulary,稀有词和 OOV 会严重影响翻译。
- 如果使用 character-level,序列长度变长,attention 的
O(n^2)代价更高。 - BPE 在词粒度和字符粒度之间折中。
10.2 GNMT WordPiece
GNMT 使用 wordpiece,把稀有词拆成有限子词单元。Transformer 在 En-Fr 使用约 32K word-piece vocabulary,并沿用 GNMT 的推理技巧。
技术评价:
- 子词化让 Transformer 的全局 attention 在可控序列长度上工作。
- 现代 LLM 的 tokenizer 体系可以看作这条线的延续。
11. MoE 与条件计算:Transformer 论文的侧向比较
Shazeer et al. 2017 的 Sparsely-Gated MoE 提出用条件计算显著增加模型容量。Transformer 论文引用它,主要用于说明当时已有工作通过 factorization 或 conditional computation 提升效率和性能,但 RNN 的顺序计算瓶颈仍存在。
与 Transformer 的关系:
- MoE 解决的是“容量/计算比”。
- Transformer 解决的是“序列位置并行和长程依赖路径长度”。
- 后续 Switch Transformer、GShard、Mixtral 等模型把两条线合并:Transformer 主干 + 稀疏 MoE FFN。
12. 结果对照中的关键 reference
| 对照模型 | Reference | 技术路线 | Transformer 相对优势 |
|---|---|---|---|
| Deep-Att + PosUnk | Zhou et al. 2016 | 深层 RNN + attention + fast-forward | Transformer 更并行,BLEU 更高 |
| GNMT + RL | Wu et al. 2016 | 工业级深层 LSTM NMT | Transformer 训练成本更低 |
| ByteNet | Kalchbrenner et al. 2017 | dilated CNN | Transformer 任意位置路径更短 |
| ConvS2S | Gehring et al. 2017 | CNN seq2seq + attention | Transformer 全局 self-attention 更直接 |
| MoE | Shazeer et al. 2017 | 条件计算扩容 | Transformer 解决顺序瓶颈,MoE 解决容量瓶颈 |
13. Transformer 对前人工作的核心重组
Transformer 的创新可以写成一个重组公式:
Seq2Seq encoder-decoder
+ Attention as soft alignment
+ Dot-product attention optimized as batched matmul
+ Self-attention for intra-sequence representation
+ Multi-head factorization
+ Positional encoding
+ Residual + LayerNorm + Adam + Dropout + Label smoothing
+ BPE / WordPiece translation pipeline
= Fully attention-based sequence transduction architecture
其中最关键的技术跃迁是:
- attention 从 decoder 的辅助对齐模块变成 encoder 和 decoder 的主干。
- self-attention 把任意 token 间的依赖路径缩短到常数级。
- 多头机制缓解单个注意力分布的平均化问题。
- 非循环结构释放了训练并行性,使大规模实验更经济。
14. 局限与后续研究方向
原始 Transformer 的局限也能从 reference 对照中看出来:
- 长序列复杂度:相比 ByteNet 的线性时间,full self-attention 是二次复杂度。
- 位置信息较弱:sinusoidal / learned absolute position 不如后来的相对位置机制精细。
- decoder 生成仍顺序:训练可并行,但自回归推理仍逐 token 生成。
- FFN 容量密集计算:MoE 后续补上了稀疏扩容方向。
- post-norm 深层稳定性有限:后续大模型多采用 pre-norm 或 RMSNorm。
15. 阅读顺序建议
如果要从引用链理解 Transformer,推荐按这个顺序读:
- Cho et al. 2014:理解 encoder-decoder。
- Bahdanau et al. 2014:理解 attention 作为软对齐。
- Luong et al. 2015:理解 dot/global/local attention。
- GNMT 2016:理解 Transformer 要击败的工业级 RNN NMT。
- ConvS2S 和 ByteNet:理解为什么大家想摆脱 RNN。
- Decomposable Attention / Structured Self-Attention:理解 self-attention 的前史。
- LayerNorm / ResNet / Adam / Label Smoothing / BPE:理解训练配方。
- 最后回到 Vaswani et al. 2017,看这些部件如何组合成 Transformer。
16. 关键 sources
- Vaswani et al. 2017, Attention Is All You Need: https://arxiv.org/html/1706.03762
- Bahdanau et al. 2014, Neural Machine Translation by Jointly Learning to Align and Translate: https://arxiv.org/abs/1409.0473
- Cho et al. 2014, Learning Phrase Representations using RNN Encoder-Decoder for Statistical Machine Translation: https://arxiv.org/abs/1406.1078
- Luong et al. 2015, Effective Approaches to Attention-based Neural Machine Translation: https://arxiv.org/abs/1508.04025
- Kalchbrenner et al. 2017, Neural Machine Translation in Linear Time: https://arxiv.org/abs/1610.10099
- Gehring et al. 2017, Convolutional Sequence to Sequence Learning: https://arxiv.org/abs/1705.03122
- Wu et al. 2016, Google's Neural Machine Translation System: https://arxiv.org/abs/1609.08144
- Ba et al. 2016, Layer Normalization: https://arxiv.org/abs/1607.06450
- Britz et al. 2017, Massive Exploration of Neural Machine Translation Architectures: https://arxiv.org/abs/1703.03906
- Lin et al. 2017, A Structured Self-attentive Sentence Embedding: https://arxiv.org/abs/1703.03130
- Shazeer et al. 2017, Outrageously Large Neural Networks: https://arxiv.org/abs/1701.06538
- Sennrich et al. 2015, Neural Machine Translation of Rare Words with Subword Units: https://arxiv.org/abs/1508.07909
- Press and Wolf 2016, Using the Output Embedding to Improve Language Models: https://arxiv.org/abs/1608.05859