JM
← 返回文章
约 3 分钟阅读

Attention is All You Need: A Deep Dive

深入解析 Transformer 架构的开创性论文,理解 Self-Attention 如何革新了 Deep Learning。


2017 年,Google Brain 团队发表了这篇改变深度学习历史的论文。它提出了 Transformer 架构——完全基于 Attention 机制,抛弃了 RNN 和 CNN。

The Core Problem

在 Transformer 之前,序列建模主要依赖 RNN(如 LSTM、GRU)。RNN 的根本问题是顺序处理——必须逐步计算,无法并行化。

ht=f(ht−1,xt)h_t = f(h_{t-1}, x_t)

这导致两个严重问题:

  1. 训练速度慢:无法并行处理序列
  2. 长距离依赖困难:梯度消失/爆炸

The Key Insight

Transformer 的关键洞察:可以用 Attention 机制直接建模序列中任意两个位置的关系,不需要递归。

Scaled Dot-Product Attention

核心公式:

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

其中:

  • QQ (Query):查询矩阵
  • KK (Key):键矩阵
  • VV (Value):值矩阵
  • dkd_k:Key 的维度

直觉理解:就像阅读时,你会根据上下文理解每个词的含义。“bank” 在 “river bank” 和 “bank account” 中含义不同,Self-Attention 能捕捉这种依赖。

为什么要除以 dk\sqrt{d_k}?

当维度较大时,点积值会很大,导致 softmax 进入饱和区,梯度接近零。缩放保持梯度稳定:

Var(q⋅k)=dk\text{Var}(q \cdot k) = d_k

所以除以 dk\sqrt{d_k} 使方差保持为 1。

Multi-Head Attention

单个 Attention Head 只能捕捉一种关系模式。Multi-Head Attention 让模型同时关注不同类型的关系:

MultiHead(Q,K,V)=Concat(head1,...,headh)WO\text{MultiHead}(Q, K, V) = \text{Concat}(\text{head}_1, ..., \text{head}_h)W^O

其中每个 Head:

headi=Attention(QWiQ,KWiK,VWiV)\text{head}_i = \text{Attention}(QW_i^Q, KW_i^K, VW_i^V)

直觉:一个 Head 可能关注语法关系,另一个关注语义关系,第三个关注位置关系。

Positional Encoding

Transformer 没有递归,所以需要额外注入位置信息:

PE(pos,2i)=sin⁡(pos100002i/dmodel)PE_{(pos, 2i)} = \sin\left(\frac{pos}{10000^{2i/d_{\text{model}}}}\right)

PE(pos,2i+1)=cos⁡(pos100002i/dmodel)PE_{(pos, 2i+1)} = \cos\left(\frac{pos}{10000^{2i/d_{\text{model}}}}\right)

为什么用正弦函数? 因为它能表示相对位置——PE(pos+k)PE_{(pos+k)} 可以用 PE(pos)PE_{(pos)} 的线性变换表示。

Encoder-Decoder Architecture

Encoder (6 layers):
┌─────────────────────┐
│  Multi-Head Attention │
│  Add & LayerNorm     │
│  Feed Forward        │
│  Add & LayerNorm     │
└─────────────────────┘

Decoder (6 layers):
┌─────────────────────┐
│  Masked Multi-Head   │  ← 防止看到未来
│  Add & LayerNorm     │
│  Cross-Attention     │  ← 关注 Encoder 输出
│  Add & LayerNorm     │
│  Feed Forward        │
│  Add & LayerNorm     │
└─────────────────────┘

Key Innovations:

  • 残差连接:x+Sublayer(x)x + \text{Sublayer}(x),解决深层网络训练困难
  • Layer Normalization:稳定训练
  • Masked Attention:解码时防止”偷看”未来

Feed-Forward Network

每层中的 Position-wise FFN:

FFN(x)=max⁡(0,xW1+b1)W2+b2\text{FFN}(x) = \max(0, xW_1 + b_1)W_2 + b_2

Why It Works So Well?

  1. 并行化:训练速度比 RNN 快一个数量级
  2. 长距离依赖:任意两个位置直接连接,路径长度 O(1)O(1)
  3. 可扩展性:参数增加时性能持续提升
  4. 通用性:不仅用于 NLP,还扩展到 Vision、Audio

Modern Impact

这篇论文直接催生了:

  • BERT、GPT 系列
  • Vision Transformer (ViT)
  • AlphaFold 2
  • 现代大语言模型(LLM)

Formula Cheat Sheet

ComponentFormula
Attentionsoftmax(QKT/dk)V\text{softmax}(QK^T/\sqrt{d_k})V
Positional Encodingsin⁡/cos⁡\sin/\cos functions
FFNmax⁡(0,xW1+b1)W2+b2\max(0, xW_1+b_1)W_2+b_2
Residualx+Sublayer(x)x + \text{Sublayer}(x)

Summary

Transformer 的伟大之处在于它的简洁性——用一个统一的 Attention 机制替代了复杂的递归结构。这种简洁带来了更好的并行性、更强的表达能力和更广的适用性。

理解这篇论文,是理解现代深度学习的基础。


Paper Link:Attention is All You Need (arXiv:1706.03762)