1 背景与动机
1.1 序列模型(RNN/LSTM)的局限性
在Transformer提出之前,序列建模主要依赖循环神经网络(RNN)及其变体LSTM和GRU。这类模型按时间步顺序处理输入,导致两个根本缺陷:一是难以并行计算,因为每一步依赖前一步的隐藏状态,训练速度受限于序列长度;二是长距离依赖捕获困难,即使LSTM通过门控机制缓解了梯度消失问题,但实际中当序列超过一定长度(如50-100词)时,信息传递仍会衰减。此外,RNN的序列处理方式使其在机器翻译等任务中,无法直接建模源语言和目标语句子内部词语间的全局关系。
1.2 注意力机制的早期发展
注意力机制最早由Bahdanau等人(2014)引入seq2seq模型,允许解码器在每一步动态关注编码器输出的不同位置,从而部分缓解长距离依赖问题。随后,Luong等人(2015)提出了全局和局部注意力变体。但这些注意力仍依附于RNN框架,作为辅助模块存在。2016年,谷歌的“注意力就是一切”(Attention is All You Need)研究团队开始探索完全基于注意力机制的架构,最终在2017年提出了Transformer,彻底去除了循环结构。
2 核心组件
2.1 自注意力机制
自注意力(Self-Attention)允许序列中每个位置直接计算与其他所有位置的关联权重,从而捕获全局依赖。它通过将输入序列映射为三个向量(查询、键、值)来实现。
2.1.1 查询、键、值的计算
对于输入序列$X \in \mathbb{R}^{n \times d}$,通过三个可训练权重矩阵$W_Q, W_K, W_V \in \mathbb{R}^{d \times d_k}$($d_k$为注意力维度)得到:
- 查询矩阵 $Q = X W_Q$
- 键矩阵 $K = X W_K$
- 值矩阵 $V = X W_V$
每个位置的查询与所有位置的键计算相似度,决定对值的加权系数。
2.1.2 缩放点积注意力公式
自注意力的输出通过下式计算: $$\text{Attention}(Q, K, V) = \text{softmax}\left( \frac{QK^T}{\sqrt{d_k}} \right) V$$ 其中缩放因子$\sqrt{d_k}$防止内积随维度增大而过大,避免softmax梯度饱和。
2.2 多头注意力
单个注意力头只能关注一种表示子空间,多头注意力通过并行多个注意力头,使模型同时关注不同位置的不同表征。
2.2.1 多头并行与拼接
设$h$为头数,将$Q, K, V$沿特征维度分割为$h$份,每份维度$d_k = d/h$。对每个头独立计算注意力,然后将所有头的输出拼接后通过线性变换得到最终结果: $$\text{MultiHead}(Q, K, V) = \text{Concat}(\text{head}_1, \dots, \text{head}_h) W_O$$ 其中$\text{head}_i = \text{Attention}(Q W_Q^i, K W_K^i, V W_V^i)$。
2.3 位置编码
自注意力本身不具备序列顺序信息(置换等变),因此需要注入位置信息。
2.3.1 正弦/余弦位置编码
使用不同频率的正弦和余弦函数生成固定位置编码: $$PE_{(pos, 2i)} = \sin(pos / 10000^{2i/d})$$ $$PE_{(pos, 2i+1)} = \cos(pos / 10000^{2i/d})$$ 其中$pos$为位置索引,$i$为维度索引。这种编码使模型能够通过线性变换学习相对位置关系,且无需训练参数。
2.4 前馈神经网络
每个注意力子层后接一个位置级的前馈神经网络(FFN),通常包含两个线性变换和一个ReLU激活: $$\text{FFN}(x) = \max(0, x W_1 + b_1) W_2 + b_2$$ 它独立地对每个位置进行非线性变换,增加模型容量。
2.5 层归一化与残差连接
每个子层(注意力或FFN)的输出通过残差连接和层归一化(LayerNorm)处理: $$\text{output} = \text{LayerNorm}(x + \text{Sublayer}(x))$$ 残差连接缓解梯度消失,层归一化稳定训练过程。
3 模型结构
3.1 编码器
编码器由多个相同的层堆叠而成(原文为6层)。每层包含两个子层:多头自注意力和前馈神经网络,每个子层后接残差连接与层归一化。输入序列首先经过嵌入层和位置编码相加。
3.1.1 编码器层的堆叠
各编码器层共享相同的结构但参数独立。自注意力允许每个位置关注编码器输入的所有位置,生成上下文感知的表征。最后一层输出的表示被传递给解码器的交叉注意力模块。
3.2 解码器
解码器也由多个相同的层堆叠(原文为6层),每层包含三个子层:掩码多头自注意力、交叉注意力(编码器-解码器注意力)和前馈神经网络。
3.2.1 掩码自注意力与交叉注意力
- 掩码自注意力:在解码器自注意力中应用掩码,确保每个位置只能关注其之前的位置(包括自身),防止看到未来的目标词。这通过将上三角矩阵设为负无穷实现。
- 交叉注意力:该子层的查询来自前一解码器层,键和值来自编码器输出,使解码器能关注输入序列的合适位置。
3.3 完整流程示意
- 源语言句子经过词嵌入和位置编码后进入编码器。
- 编码器输出一组上下文向量。
- 解码器以目标语言起始符(如
<sos>)作为输入,结合编码器输出逐步生成目标词。 - 每个解码步骤生成一个概率分布,使用贪婪或束搜索选择下一个词,直到生成结束符。
- 整个网络通过反向传播端到端训练。
4 训练与优化
4.1 损失函数与标签平滑
使用交叉熵损失函数衡量预测词分布与真实词分布的差异。为缓解过拟合并提高泛化性,常采用标签平滑(Label Smoothing),将真实标签的1替换为$1-\epsilon + \epsilon/K$($K$为类别数),降低模型对正确标签的自信度。
4.2 优化器与学习率调度
采用Adam优化器,并配合Noam学习率调度:先线性预热(warmup),后按步数平方根衰减。公式为: $$\text{lr} = d_{\text{model}}^{-0.5} \cdot \min(\text{step}^{-0.5}, \text{step} \cdot \text{warmup\_steps}^{-1.5})$$ 这种调度在训练初期快速上升,后期缓慢下降,有助于稳定训练。
4.3 正则化技术(Dropout等)
在每个子层的输出以及在注意力权重上应用Dropout(通常设为0.1),防止过拟合。此外,标签平滑也起到正则化作用。
5 主要变体与演进
5.1 预训练语言模型
Transformer的编码器和解码器可各自独立或组合使用,催生了大量预训练模型。
5.1.1 BERT(双向编码器)
BERT(Devlin et al., 2018)仅使用Transformer编码器,通过掩码语言模型(Masked LM)和下一句预测进行预训练。其双向上下文建模能力在多项NLP任务上刷新纪录。
5.1.2 GPT系列(自回归解码器)
GPT(Radford et al., 2018)仅使用Transformer解码器,采用自回归方式从左到右生成文本。GPT-2、GPT-3、GPT-4等通过扩大模型规模实现了强大的文本生成和少样本学习能力。
5.1.3 T5(文本到文本统一框架)
T5(Raffel et al., 2020)采用编码器-解码器完整Transformer结构,将所有NLP任务统一为“文本到文本”格式,并在C4大规模语料上预训练。
5.2 视觉与多模态
5.2.1 Vision Transformer (ViT)
ViT(Dosovitskiy et al., 2020)将图像分割为固定大小的块(patch),线性嵌入后加位置编码,送入标准Transformer编码器,实现了纯基于注意力的图像分类,证明Transformer可替代CNN。
5.2.2 多模态Transformer(CLIP、DALL·E)
CLIP(Radford et al., 2021)使用对比学习对齐图像和文本的表示;DALL·E(Ramesh et al., 2021)基于自回归Transformer生成图像。这些模型展示了Transformer在跨模态理解与生成上的潜力。
6 应用领域
6.1 自然语言处理
6.1.1 机器翻译
Transformer最初为机器翻译设计,在WMT等基准上显著优于RNN-based模型,成为主流翻译系统的核心架构。
6.1.2 文本生成与摘要
基于Transformer的解码器(如GPT系列)可用于生成式文本摘要、故事创作、对话系统等,通过微调适应特定任务。
6.2 计算机视觉
ViT及其改进(DeiT、Swin Transformer等)在图像分类、目标检测、语义分割等任务上取得与CNN相当或更优的结果。Transformer也应用于视频理解、图像生成等。
6.3 语音处理
Transformer被用于自动语音识别(如Whisper)、语音合成(如FastSpeech)、语音情感识别等,替代了循环神经网络的时序建模。
6.4 强化学习与决策
Decision Transformer等将强化学习建模为序列预测问题,利用Transformer处理状态-动作序列,在离线强化学习中取得突破。
7 影响与未来方向
7.1 对深度学习范式的变革
Transformer推动了“预训练+微调”范式的普及,使大规模无监督预训练成为NLP和CV的标配。其并行计算特性催生了更大模型(如GPT-3、PaLM),也促进了硬件(TPU、GPU)的发展。
7.2 高效化与稀疏注意力
Transformer的平方复杂度$O(n^2)$限制了超长序列处理。未来方向包括:稀疏注意力(如Longformer、BigBird)、线性注意力(如Performer)、分段递归机制等,旨在将复杂度降到$O(n \log n)$或线性,以便处理百万级token的文档、基因组或视频。
7.3 可解释性与理论基础
尽管Transformer效果卓越,其内部决策过程尚不完全透明。研究正在探索注意力头的语义角色、中间表示的可解释性,以及从信息论、组合几何等角度建立Transformer的理论基础,以指导更高效的架构设计。