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. 贝叶斯公式的魔法
如果我们想把法语 () 翻译成英语 (),目标是找到概率最大的 :
利用贝叶斯公式,这被拆解为两个部分:
- 翻译模型 :保证意思准确(忠实度)。
- 语言模型 :保证句子通顺(流利度)。
2. 对齐 (Alignment) —— SMT 的核心难题
机器怎么知道法语的 "chat" 对应英语的 "cat"?SMT 引入了隐变量 (Alignment) 。
- 这是一个“鸡生蛋”的问题:知道对齐就能算出翻译概率,知道概率就能算出对齐。
- 解决方案是 EM 算法:先瞎猜,再迭代优化,直到收敛。
3. 解码 (Decoding)
有了模型,怎么生成句子?穷举所有可能的句子是不现实的(组合爆炸)。因此,SMT 使用启发式搜索算法,如 Beam Search,在巨大的搜索空间中寻找最优路径。
第二部分:Attention —— 并行计算的革命
RNN 的最大问题是无法并行。计算第 个词必须等待第 个词完成。而 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 抛弃了循环,利用矩阵乘法一次性处理整个序列。
假设输入矩阵为 (每一行是一个词向量),计算过程如下:
-
投影:通过线性变换生成 矩阵。
-
打分 (Attention Scores):计算 Query 和 Key 的点积。
- 结果是一个 的矩阵,代表所有词两两之间的关系。
-
缩放 (Scaling):
- 为什么除以 ? 防止点积数值过大导致 Softmax 进入饱和区(梯度消失),确保训练稳定。
-
归一化与加权:
- 这一步实现了信息的融合:每个词都吸纳了上下文的信息。
2. 多头注意力 (Multi-Head Attention)
为了捕捉不同的特征(如一个头看语法,一个头看指代),我们将维度切分。
- 切分:将 512 维切成 8 个 64 维的头。
- 并行计算:利用 Reshape 和 Transpose,将“头”的维度视作 Batch 维度,并行计算 8 组 Attention。
- 融合:最后将 8 个头的结果拼接 (Concat) ,并通过一个线性矩阵 混合在一起。
第四部分:Transformer 的骨架 —— 关键组件
光有 Attention 是不够的,Transformer 还需要解决几个关键问题。
1. 位置编码 (Position Representations)
Self-Attention 是“路痴”(置换不变性),分不清 "The dog bit the man" 和 "The man bit the dog"。
我们需要人为加入位置向量 :
- 正弦编码:Google 原版使用 sin/cos 函数,具有周期性。
- 可学习编码:现在的 BERT/GPT 更多使用可学习的参数矩阵,更灵活但无法外推。
2. 非线性与 FFN
Attention 本质是线性加权,缺乏非线性拟合能力。因此,每个 Attention 层后必须接一个 Feed-Forward Network (FFN)。
公式为两层 MLP 加 ReLU 激活:
这被称为 Position-wise FFN,因为它对每个位置独立计算。
3. Add & Norm (残差与归一化)
为了能训练深层网络,每个子层后都有标准操作:
- Add (残差) :保留原始信息,防止梯度消失。
- Norm (层归一化) :对每个样本内部计算均值和方差进行归一化,加速收敛。
第五部分:Decoder 的特殊机制 —— Masking
在训练生成模型(Decoder)时,为了防止模型“偷看未来”(Peeking at the future),我们需要引入 Masked Self-Attention。
- 操作:在 Softmax 之前,将分数矩阵的右上角(未来位置)设为 。
- 原理:。这使得未来词的注意力权重归零,模型只能利用过去的信息预测现在。
- 意义:这允许我们在训练时并行计算整个序列,同时保持因果逻辑的正确性。
总结
CS224n Lec 8 完整展示了 NLP 技术的范式转移:
- 从 SMT 到 Deep Learning:从复杂的概率图模型转向端到端的神经网络。
- 从 RNN 到 Transformer:利用 Attention 实现了完全的并行化计算。
- 精妙的工程设计:通过 Multi-Head 增强表达,通过 Positional Encoding 补充顺序信息,通过 Add & Norm 保证深度训练。
这就是 Transformer,一个由矩阵乘法堆砌而成的现代 AI 奇迹。