Attention Is All You Need
Vaswani et al.
用 Self-Attention 完全取代 RNN 和 CNN——Transformer 架构的开山之作,几乎所有现代 LLM 的地基。
arXiv:1706.03762#transformer#attention#architecture#foundational
核心贡献
- 01Scaled Dot-Product Attention:Attention(Q,K,V)=softmax(QKᵀ/√d_k)V
- 02Multi-Head Attention:并行多组 QKV 投影,捕捉不同子空间的关系
- 03完全基于注意力的 Encoder-Decoder 架构,无循环结构,可完全并行训练
- 04Sinusoidal Positional Encoding:用正弦函数为序列引入位置信息
- 05在 WMT 2014 EN-DE 翻译任务上 BLEU 28.4,刷新当时 SOTA
核心思想
RNN 时代的两个痛点:无法并行 + 长距离依赖难以建模(梯度沿时间展开逐级衰减)。Transformer 的答案是——每个位置直接 attend 到序列中所有其他位置,一次矩阵乘就完成信息交互。
Self-Attention 公式
- Q, K, V:query、key、value,都是输入序列通过不同线性变换得到的向量
- 除以 √d_k:为什么?点积方差随维度增长,不缩放会把
softmax推到饱和区,梯度消失 softmax:把相似度转为概率分布- 输出:V 的加权平均,权重由 query 和每个 key 的相似度决定
Multi-Head Attention
每个 head 独立的 Q/K/V 投影,在不同子空间并行计算注意力。类比 CNN 的多通道——每个 head 学一种关系(语法/语义/共指等)。
架构要点
- Encoder × 6 层:
Self-Attention+ FFN + 残差 +LayerNorm - Decoder × 6 层:多一层
Cross-Attention连到 Encoder 输出;Masked Self-Attention阻止未来信息泄露 - FFN:两层全连接 + ReLU,是参数量的大头
- 位置编码:sin/cos 函数,允许模型学到相对位置关系
面试考点
基础推导(必考):能否在白板上手写 Attention 公式、解释为什么除以 √d_k、Multi-Head 为什么比 Single-Head 好。
变种对比:原版 sinusoidal PE vs Learned PE vs RoPE vs ALiBi——推理时外推能力差在哪。
复杂度:Self-Attention 的时间和空间复杂度都是 O(n²·d)(n 是序列长度)——这是 FlashAttention、Sparse Attention、Linear Attention 等后续工作的核心动机。
实现细节:mask 怎么做(decoder causal mask)、dropout 加在哪里、LayerNorm Pre 还是 Post。
常见陷阱问题:
- "为什么
softmax要在除以 √d_k 之后?" → 否则softmax会 saturate - "Q 和 K 如果用同一套权重会怎样?" → 退化成对称相似度,表达能力下降
- "Decoder 的
Cross-AttentionQ 从哪里来?" → Decoder 的上一层输出,K/V 来自 Encoder 最终输出