CS224n 笔记:从统计机器翻译到 Transformer 的终极详解 (Lec 8)

52 阅读2分钟

CS224n 笔记:从统计机器翻译到 Transformer 的终极详解 (Lec 8)

标签NLP Deep Learning Transformer CS224n Machine Translation

前言

在自然语言处理(NLP)的历史长河中,Lecture 8 是一个极其重要的分水岭。这节课回顾了曾经统治翻译界的统计机器翻译 (SMT) ,并正式引出了如今大语言模型(LLM)的基石——Transformer 架构

为什么我们需要 Transformer?它是如何一步步解决 RNN 的痛点,并通过 Query-Key-Value 的机制“理解”语言的?本文将基于课程内容,深入拆解这一变革背后的数学原理与工程智慧。


第一部分:前深度学习时代 —— 统计机器翻译 (SMT)

在神经网络接管一切之前,翻译是基于概率统计的。SMT 的核心是噪声信道模型 (Noisy Channel Model)

1. 贝叶斯公式的魔法

如果我们想把法语 (xx) 翻译成英语 (yy),目标是找到概率最大的 yy

argmaxyP(yx)\text{argmax}_y P(y|x)

利用贝叶斯公式,这被拆解为两个部分:

  1. 翻译模型 P(xy)P(x|y) :保证意思准确(忠实度)。
  2. 语言模型 P(y)P(y) :保证句子通顺(流利度)。

2. 对齐 (Alignment) —— SMT 的核心难题

机器怎么知道法语的 "chat" 对应英语的 "cat"?SMT 引入了隐变量 aa (Alignment)

  • 这是一个“鸡生蛋”的问题:知道对齐就能算出翻译概率,知道概率就能算出对齐。
  • 解决方案是 EM 算法:先瞎猜,再迭代优化,直到收敛。

3. 解码 (Decoding)

有了模型,怎么生成句子?穷举所有可能的句子是不现实的(组合爆炸)。因此,SMT 使用启发式搜索算法,如 Beam Search,在巨大的搜索空间中寻找最优路径。


第二部分:Attention —— 并行计算的革命

RNN 的最大问题是无法并行。计算第 tt 个词必须等待第 t1t-1 个词完成。而 Attention 机制彻底打破了这一限制。

1. 软查找 (Fuzzy Lookup)

Attention 的本质是一个键值对 (Key-Value) 查询系统

  • Query (Q) :你的查询意图。
  • Key (K) :内容的标签。
  • Value (V) :内容的实质。

不同于传统的数据库精确查找(Hard Lookup),Attention 计算 Q 和 K 的相似度,根据相似度对 V 进行加权求和。这使得过程可微分,从而可以进行梯度下降训练。


第三部分:Transformer 的心脏 —— Self-Attention

1. 矩阵计算流程 (Sequence-Stacked Form)

Transformer 抛弃了循环,利用矩阵乘法一次性处理整个序列。

假设输入矩阵为 XX(每一行是一个词向量),计算过程如下:

  1. 投影:通过线性变换生成 Q,K,VQ, K, V 矩阵。

    Q=XWQ,K=XWK,V=XWVQ = XW^Q, \quad K = XW^K, \quad V = XW^V

  2. 打分 (Attention Scores):计算 Query 和 Key 的点积。

    Scores=QKT\text{Scores} = Q K^T

    • 结果是一个 n×nn \times n 的矩阵,代表所有词两两之间的关系。
  3. 缩放 (Scaling):

    Scaled Scores=QKTdk\text{Scaled Scores} = \frac{Q K^T}{\sqrt{d_k}}

    • 为什么除以 dk\sqrt{d_k} 防止点积数值过大导致 Softmax 进入饱和区(梯度消失),确保训练稳定。
  4. 归一化与加权:

    Output=softmax(Scaled Scores)V\text{Output} = \text{softmax}(\text{Scaled Scores}) V

    • 这一步实现了信息的融合:每个词都吸纳了上下文的信息。

2. 多头注意力 (Multi-Head Attention)

为了捕捉不同的特征(如一个头看语法,一个头看指代),我们将维度切分。

  • 切分:将 512 维切成 8 个 64 维的头。
  • 并行计算:利用 Reshape 和 Transpose,将“头”的维度视作 Batch 维度,并行计算 8 组 Attention。
  • 融合:最后将 8 个头的结果拼接 (Concat) ,并通过一个线性矩阵 YY 混合在一起。

第四部分:Transformer 的骨架 —— 关键组件

光有 Attention 是不够的,Transformer 还需要解决几个关键问题。

1. 位置编码 (Position Representations)

Self-Attention 是“路痴”(置换不变性),分不清 "The dog bit the man" 和 "The man bit the dog"。

我们需要人为加入位置向量 pip_i

x~i=xi+pi\tilde{x}_i = x_i + p_i

  • 正弦编码:Google 原版使用 sin/cos 函数,具有周期性。
  • 可学习编码:现在的 BERT/GPT 更多使用可学习的参数矩阵,更灵活但无法外推。

2. 非线性与 FFN

Attention 本质是线性加权,缺乏非线性拟合能力。因此,每个 Attention 层后必须接一个 Feed-Forward Network (FFN)。

公式为两层 MLP 加 ReLU 激活:

FFN(x)=W2ReLU(W1x+b1)+b2\text{FFN}(x) = W_2 \cdot \text{ReLU}(W_1 x + b_1) + b_2

这被称为 Position-wise FFN,因为它对每个位置独立计算。

3. Add & Norm (残差与归一化)

为了能训练深层网络,每个子层后都有标准操作:

Output=LayerNorm(x+Sublayer(x))\text{Output} = \text{LayerNorm}(x + \text{Sublayer}(x))

  • Add (残差) :保留原始信息,防止梯度消失。
  • Norm (层归一化) :对每个样本内部计算均值和方差进行归一化,加速收敛。

第五部分:Decoder 的特殊机制 —— Masking

在训练生成模型(Decoder)时,为了防止模型“偷看未来”(Peeking at the future),我们需要引入 Masked Self-Attention

  • 操作:在 Softmax 之前,将分数矩阵的右上角(未来位置)设为 -\infty
  • 原理e=0e^{-\infty} = 0。这使得未来词的注意力权重归零,模型只能利用过去的信息预测现在。
  • 意义:这允许我们在训练时并行计算整个序列,同时保持因果逻辑的正确性。

总结

CS224n Lec 8 完整展示了 NLP 技术的范式转移:

  1. 从 SMT 到 Deep Learning:从复杂的概率图模型转向端到端的神经网络。
  2. 从 RNN 到 Transformer:利用 Attention 实现了完全的并行化计算。
  3. 精妙的工程设计:通过 Multi-Head 增强表达,通过 Positional Encoding 补充顺序信息,通过 Add & Norm 保证深度训练。

这就是 Transformer,一个由矩阵乘法堆砌而成的现代 AI 奇迹。