DYING4EVER

NOTES

第09章_Transformer

第 9 章 Transformer

本章概括

本章介绍 Transformer 的序列建模框架,重点包括 Seq2seq、Encoder、Decoder、自注意力、Q/K/V、Softmax 权重、多头注意力和训练流程。核心是理解注意力如何让每个 token 动态聚合其他 token 的信息。

Seq2seq 与 Encoder-Decoder

Seq2seq 模型用于把一个序列映射为另一个序列,如语音到文字、机器翻译或图像描述。Encoder 负责编码输入序列,Decoder 根据编码结果逐步生成输出序列。

Self-attention

自注意力让序列中每个位置都能关注其他位置。对输入向量 $a_i$,先线性变换得到 Query、Key、Value:

$$ q_i=W_q a_i,\qquad k_i=W_k a_i,\qquad v_i=W_v a_i $$

$q_i$ 用于发起查询,$k_i$ 用于被匹配,$v_i$ 是被加权汇聚的信息。

相关性分数为:

$$ \alpha_{i,j}=q_i^\top k_j $$

再经 softmax 归一化:

$$ \alpha'{i,j}=\frac{\exp(\alpha{i,j})}{\sum_l\exp(\alpha_{i,l})} $$

输出向量为:

$$ b_i=\sum_j \alpha'_{i,j}v_j $$

它表示第 $i$ 个 token 根据注意力权重从所有 token 中汇聚的信息。

Scaled Dot-Product Attention

实际 Transformer 使用缩放点积注意力:

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

$d_k$ 是 key 的维度,除以 $\sqrt{d_k}$ 可避免点积过大导致 softmax 梯度过小。

Multi-head Attention

多头注意力把 $Q,K,V$ 投影到多个子空间中并行计算注意力:

$$ \operatorname{MultiHead}(Q,K,V)=\operatorname{Concat}(head_1,\cdots,head_h)W^O $$

不同头可以关注不同关系,如局部关系、长距离依赖或语义相关性。

Encoder

Encoder 通常由多层堆叠组成,每层包含多头自注意力、前馈网络、残差连接和层归一化。残差连接帮助梯度传播,层归一化稳定训练。

Decoder

Decoder 包含 masked self-attention、encoder-decoder attention 和前馈网络。Masked self-attention 防止当前位置看到未来输出,保证自回归生成。

Training

训练时常使用 teacher forcing,即 Decoder 输入真实前缀,预测下一个 token。损失函数通常为交叉熵。推理时模型逐步生成,每一步把已生成 token 作为下一步输入。

图示说明

PPT 中的 Q/K/V 和注意力权重图展示了自注意力的计算过程:先由输入生成查询、键和值,再用查询和键计算相关性,最后对 value 加权求和。复习时应能把图中的箭头对应到上述公式。