概述
Transformer 是2017年由Vaswani等人提出的基于自注意力机制的神经网络架构,广泛应用于NLP领域。核心特点:
- 完全依赖注意力机制,摒弃循环结构
- 支持并行化训练
- 长距离依赖捕捉能力强
整体架构
编码器-解码器结构
-
编码器(左半部分):
- 个相同层的堆叠
- 每层包含:
- 多头自注意力子层
- 前馈神经网络子层
- 残差连接 + 层归一化:
-
解码器(右半部分): - 比编码器多一个交叉注意力子层 - 使用掩码自注意力防止信息泄漏
核心组件
自注意力机制
计算步骤:
- 将输入映射为Q(Query)、K(Key)、V(Value)矩阵:
- 计算缩放点积注意力:
- 多头注意力拼接:
其中每个头:
位置编码
为序列添加位置信息:
前馈网络
每层包含两个线性变换+ReLU激活:
关键创新
| 特性 | 说明 |
|---|---|
| 并行计算 | 自注意力可同时计算所有位置关系 |
| 长程依赖 | 任意两个位置的距离为常数级 |
| 可变长度处理 | 动态生成注意力权重矩阵 |
数学细节
-
维度缩放:用于防止点积过大导致softmax梯度消失
-
残差连接:帮助梯度流动
-
层归一化:对每个样本单独进行归一化
优点和缺点
优点:
- 训练效率显著高于RNN
- 可解释性强(通过注意力权重)
- 适合处理长文本
缺点:
- 内存消耗大(复杂度)
- 位置编码的绝对位置信息可能不足
主要变体
- BERT(仅使用编码器)
- GPT(仅使用解码器)
- Transformer-XL(解决长文本问题)