📄 论文背景
在 Transformer 出现之前,序列到序列(Seq2Seq)任务主要依赖 RNN/LSTM 结构,这类模型存在两个核心瓶颈:
- 顺序计算难以并行:每个时间步依赖前一步的隐状态,无法高效利用 GPU
- 长距离依赖问题:信息在长序列中传递时容易衰减
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 等相对位置编码证明这一设计空间还大有可为