Attention Is All You Need — Transformer 架构精读

深度解析 Transformer 论文,梳理 Self-Attention 机制、位置编码与多头注意力的核心原理

📄 论文背景

在 Transformer 出现之前,序列到序列(Seq2Seq)任务主要依赖 RNN/LSTM 结构,这类模型存在两个核心瓶颈:

  1. 顺序计算难以并行:每个时间步依赖前一步的隐状态,无法高效利用 GPU
  2. 长距离依赖问题:信息在长序列中传递时容易衰减

Vaswani 等人在 2017 年 NeurIPS 提出的 Transformer 完全抛弃了递归结构,纯粹依赖注意力机制来建模全局依赖关系。

🔑 核心机制

Self-Attention(自注意力)

对于输入序列 $X \in \mathbb{R}^{n \times d}$,通过三个线性投影得到 Query、Key、Value:

$$Q = XW^Q, \quad K = XW^K, \quad V = XW^V$$

注意力分数计算:

$$\text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^\top}{\sqrt{d_k}}\right) V$$

其中 $\sqrt{d_k}$ 为缩放因子,防止点积过大导致 softmax 梯度消失。

Multi-Head Attention(多头注意力)

$$\text{MHA}(Q,K,V) = \text{Concat}(\text{head}_1, \ldots, \text{head}_h) W^O$$

每个 head 在不同的子空间独立学习注意力,捕捉不同类型的语义关系。

位置编码(Positional Encoding)

由于模型本身不含序列信息,使用正弦/余弦函数注入位置:

$$PE_{(pos, 2i)} = \sin\left(\frac{pos}{10000^{2i/d}}\right)$$

$$PE_{(pos, 2i+1)} = \cos\left(\frac{pos}{10000^{2i/d}}\right)$$

💡 我的思考与心得

读完这篇论文,最大的感受是它的简洁性——去掉所有递归和卷积,用纯注意力就能超越 SOTA,这种"大道至简"的设计哲学很有启发性。

几点值得深思的地方:

  • 并行化是核心优势:Transformer 的成功很大程度上来自于工程上的可并行性,契合了 GPU 算力快速发展的时代背景
  • 二次复杂度的瓶颈:自注意力对序列长度是 $O(n^2)$ 复杂度,这直接催生了后续大批高效注意力工作(Longformer、BigBird 等)
  • 位置编码的选择影响深远:后续 RoPE、ALiBi 等相对位置编码证明这一设计空间还大有可为

📚 参考资料