引言
2017 年夏天,Google Brain 办公室的一场午餐闲聊,诞生了现代 AI 最重要的架构。八位研究者围绕一张餐桌,激烈讨论着一个疯狂的想法——完全抛弃循环神经网络,只用注意力机制。论文提交截止时间前两分钟,他们按下了发送键。几个月后,NeurIPS 的海报展厅里,人群将他们的展位围得水泄不通,安保人员不得不请大家离场。这篇论文的标题只有四个词:「Attention Is All You Need」。
AV1990-
Ashish Vaswani
Transformer 论文第一作者,注意力架构的关键倡导者
"We started with the radical idea that you don't need recurrence at all."
NS1975-
Noam Shazeer
Google Brain 资深研究员,自注意力架构的核心设计者
"Attention-only architectures could be both simpler and more powerful."
诞生故事:Transformer 的五分钟与两分钟
2017 初Noam Shazeer 在 Google Brain 内部探索纯注意力架构,提出用自注意力替代 RNN
2017 春午餐闲聊中,Ashish Vaswani 和 Noam Shazeer 达成共识:完全抛弃循环结构
2017 春Llion Jones 在五秒钟内想出了论文标题——灵感来自披头士歌词
2017.6.12论文在截止时间前两分钟提交到 arXiv
2017.12NeurIPS 海报 session,围观人群过于庞大,安保要求清场
后续Hans Uszkoretr 最初否定儿子的 Transformer 想法,后来创立了基于 Transformer 的公司
论文标题的来历颇具传奇色彩。来自威尔士的研究者 Llion Jones 后来回忆,他仅用"五秒钟的思考"就想出了「Attention Is All You Need」这个标题——灵感来自摇滚乐队披头士的经典歌词「All You Need Is Love」。而更具戏剧性的是,研究者之一 Hans Uszkoretr 的儿子曾向父亲提议 Transformer 式的架构,却遭到了父亲的否定。讽刺的是,Hans 后来自己参与撰写了这篇论文,并在其后联合创立了一家基于 Transformer 的公司。
背景:RNN 的局限
机器翻译在 2017 年之前
主流方法:Seq2Seq(序列到序列)
编码器(RNN/LSTM) 解码器(RNN/LSTM)
我 ──→ [LSTM] ──→ [LSTM] ──→ I
爱 ──→ [LSTM] ──→ 上下文 [LSTM] ──→ love
你 ──→ [LSTM] ──→ 向量 [LSTM] ──→ you
。 ──→ [LSTM] ──→ [LSTM] ──→ .
问题:整个句子的信息被压缩到一个固定长度的向量中
→ 长句子时信息丢失严重注意力机制的提出(2014-2015)
Bahdanau 等人在 2014 年提出了注意力机制:解码每个词时,动态关注输入序列的不同部分。
翻译 "I love you" 时:
生成 "我" 时:主要关注 "I" → 注意力权重高
生成 "爱" 时:主要关注 "love" → 注意力权重高
生成 "你" 时:主要关注 "you" → 注意力权重高但 RNN 的顺序计算仍然是瓶颈——无法并行。 这正是 Transformer 团队想要解决的根本问题。
Transformer 的核心创新
自注意力机制(Self-Attention)
自注意力让序列中的每个位置都能直接关注序列中的所有其他位置:
句子:「The cat sat on the mat」
对 "sat" 计算自注意力时:
它与 "cat" 的关系(谁坐的?)→ 权重 0.6
它与 "The" 的关系(冠词) → 权重 0.05
它与 "mat" 的关系(坐在哪?)→ 权重 0.3
...
每个词都能直接「看到」所有其他词,不需要像 RNN 那样逐步传递Query-Key-Value 机制
类比图书馆找书:
Query (Q):你在找什么? 「关于机器学习的书」
Key (K):每本书的标签 这本书的标签是「深度学习」
Value (V):每本书的内容 这本书的实际内容
注意力 = Q 和 K 的匹配度 × V数学公式
对于输入序列 X:
Q = X × Wq (Query 矩阵)
K = X × Wk (Key 矩阵)
V = X × Wv (Value 矩阵)
注意力(Q, K, V) = softmax(QK^T / √d_k) × V
其中:
d_k 是 Key 的维度
除以 √d_k 防止点积过大导致 softmax 梯度消失计算过程示意
输入句子 3 个词的嵌入向量:
Q (查询): [q₁] [q₂] [q₃] ← 每个词在「问」其他词
K (键): [k₁] [k₂] [k₃] ← 每个词在「被查询」
V (值): [v₁] [v₂] [v₃] ← 每个词的「实际信息」
步骤 1:计算注意力分数
Score = Q × K^T = [q₁·k₁ q₁·k₂ q₁·k₃] ← 词1对每个词的关注度
[q₂·k₁ q₂·k₂ q₂·k₃]
[q₃·k₁ q₃·k₂ q₃·k₃]
步骤 2:缩放 + Softmax 归一化
Attention_weights = softmax(Score / √d_k)
步骤 3:加权求和
Output = Attention_weights × V多头注意力(Multi-Head Attention)
为什么不只用一次注意力?
单头注意力:可能只关注语法关系
多头注意力:同时关注多种关系
头 1:关注语法关系(主谓一致)
头 2:关注语义关系(近义词)
头 3:关注位置关系(相邻词)
...
Multi-Head(Q, K, V) = Concat(head₁, ..., headₕ) × Wo
where headᵢ = Attention(Q × Wqᵢ, K × Wkᵢ, V × Wvᵢ)原始 Transformer 使用 8 个头,后来的大模型使用 32-96 个头。
位置编码(Positional Encoding)
自注意力本身是位置无关的——它不知道词的顺序。需要额外注入位置信息。
方法:给每个位置计算一个固定的编码向量,加到词嵌入上
PE(pos, 2i) = sin(pos / 10000^(2i/d))
PE(pos, 2i+1) = cos(pos / 10000^(2i/d))
每个维度使用不同频率的正弦/余弦函数
→ 模型可以通过编码的相对关系推断位置Transformer 完整架构
编码器(左侧): 解码器(右侧):
输入嵌入 + 位置编码 输出嵌入 + 位置编码
│ │
┌────▼────┐ ┌────▼────┐
│多头自注意力│ │掩码多头 │
│ │ │自注意力 │
├─────────┤ ├─────────┤
│ 残差 + │ │ 残差 + │
│ 层归一化 │ │ 层归一化 │
├─────────┤ ├─────────┤
│ 前馈网络 │ │ 编码器- │
│(FFN) │ │ 解码器 │
├─────────┤ │ 注意力 │
│ 残差 + │ ├─────────┤
│ 层归一化 │ │ 前馈网络 │
└─────────┘ │ + 残差 │
└─────────┘
│
线性层 + Softmax
│
输出概率编码器×N 层(原始论文 N=6),解码器×N 层
Transformer vs RNN
| 维度 | RNN/LSTM | Transformer |
|---|---|---|
| 并行性 | 必须顺序计算 | 完全并行 |
| 长距离依赖 | 梯度消失问题 | 直接连接,无距离限制 |
| 计算复杂度 | O(n) | O(n²)(注意力的代价) |
| 训练速度 | 慢(无法并行) | 快(GPU 友好) |
| 可扩展性 | 受限 | 极好(可以加到非常大) |
为什么 Transformer 赢了?
1. 并行性
RNN:必须等前一步算完才能算下一步 → 无法充分利用 GPU
Transformer:所有位置同时计算 → GPU 并行加速
2. 可扩展性
Transformer 的架构简单且规整
→ 可以很容易地增大模型规模
→ GPT-3(1750 亿参数)就是 Transformer 的放大版
3. 全局视野
每个位置可以直接关注任何其他位置
→ 不存在 RNN 的「遗忘」问题本节小结
| 概念 | 要点 |
|---|---|
| 自注意力 | 序列中每个位置直接关注所有其他位置 |
| Q-K-V | 用查询、键、值三组向量计算注意力 |
| 多头注意力 | 多组并行注意力,关注不同类型的关系 |
| 位置编码 | 为无序的自注意力注入位置信息 |
| 优势 | 并行化、可扩展、全局视野 |
| 影响 | 成为 GPT、BERT 等所有大模型的基础 |
思考题
- 自注意力的 O(n²) 复杂度意味着什么?当序列长度很大时会有什么问题?
- 为什么 Transformer 最初是为机器翻译设计的,后来却被用于几乎所有的 NLP 任务甚至视觉任务?
- 多头注意力中「多个头」是否真的学到了不同类型的关系?是否有研究验证这一点?
延伸阅读
- Vaswani et al., Attention Is All You Need, 2017 — 原始论文
- Wired 口述历史:The Story Behind the Transformer, the AI Invention That Changed Everything — 八位 Google 员工发明 Transformer 的完整故事