Transformer 模型详解:从自注意力到编码器-解码器结构
一、背景介绍
在自然语言处理(NLP)领域,传统的 RNN(循环神经网络)和 LSTM(长短期记忆网络)在处理长序列时存在梯度消失和计算效率低的问题。
2017 年,Vaswani 等人提出的 Transformer 架构彻底改变了 NLP 的发展方向。它完全基于注意力机制(Attention),摒弃了循环结构,大幅提升了训练效率与模型表现。
Transformer 不仅成为 NLP 的基础模型,也为后续的 BERT、GPT、ViT(视觉 Transformer)等模型奠定了核心框架。
二、Transformer 总体结构
Transformer 采用 编码器-解码器(Encoder-Decoder)架构:
编码器(Encoder):负责将输入序列映射为上下文表示(Contextual Representation)。
解码器(Decoder):在生成任务中,基于编码器输出和历史预测,生成目标序列。
三、核心机制:注意力(Attention)
1. 自注意力机制(Self-Attention)
输入序列 ,通过映射得到 查询(Q)、键(K)、值(V) 矩阵:
其中 是可训练参数。
注意力分数计算公式(Scaled Dot-Product Attention):
其中 表示键向量的维度,用于缩放,避免内积过大。
2. 多头注意力(Multi-Head Attention)
单头注意力可能无法捕捉序列中不同的语义关系,Transformer 使用 多头注意力机制:
每个注意力头计算方式相同:
通过多个子空间关注不同的特征关系。
四、位置编码(Positional Encoding)
由于 Transformer 不使用循环网络,因此需要 位置编码 来引入序列位置信息。
采用三角函数的编码方式:
其中:
表示单词位置,
表示维度索引。
五、编码器与解码器结构
1. 编码器(Encoder)
由 个相同层堆叠而成,每一层包含:
多头自注意力层(Multi-Head Self-Attention)
前馈神经网络(Feed Forward Network, FFN)
残差连接(Residual Connection)和层归一化(Layer Normalization)
前馈网络公式:
2. 解码器(Decoder)
解码器结构与编码器类似,但包含额外的 编码器-解码器注意力(Encoder-Decoder Attention)。
这一层保证生成目标序列时能够利用输入序列的上下文信息。
六、Transformer 的优势
并行计算:相比 RNN 的序列计算,Transformer 可并行处理整个序列。
长依赖捕捉能力强:注意力机制可直接建立任意两个位置的依赖关系。
扩展性强:易于扩展到超大规模模型,如 BERT、GPT、T5 等。
七、总结
Transformer 通过 注意力机制、多头机制、位置编码 等设计,解决了传统 RNN 的缺陷,成为现代 NLP 的核心框架。
理解 Transformer 的结构与公式,对于深入学习 BERT、GPT 及其他大模型具有重要意义。