Transformer
Transformer模型是一种基于自注意力机制的深度学习架构,广泛应用于自然语言处理任务。其核心设计摒弃了传统的循环和卷积结构,通过并行计算高效捕捉长距离依赖关系。以下是Transformer的详细原理解析:
整体架构
Transformer由编码器和解码器堆叠而成,每部分包含多个相同层。
- 编码器:将输入序列映射为上下文相关的表示。
- 解码器:基于编码器输出和已生成内容,自回归地预测下一个词。
核心组件
自注意力机制(Self-Attention)
- 目的:捕捉序列中任意两个词之间的关系,生成上下文感知的表示。
- 步骤:
- 生成Q、K、V向量:输入嵌入通过权重矩阵 生成查询(Query)、键(Key)、值(Value)向量。
- 计算注意力分数:通过点积计算词间相关性,缩放因子为 (防止梯度不稳定)。
- Softmax归一化:得到权重矩阵,加权求和Value向量。
多头注意力(Multi-Head Attention)
- 将Q、K、V投影到多个子空间(如8个头),独立计算注意力后拼接结果,增强模型捕捉不同特征的能力。
位置编码(Positional Encoding)
- 作用:为无时序结构的模型注入位置信息。
- 方法:使用正弦和余弦函数生成固定编码(原论文)或可学习嵌入。
前馈神经网络(Feed-Forward Network)
- 每个位置的词独立通过两层线性变换(中间为ReLU激活),增加非线性。
残差连接与层归一化
- 残差连接:缓解梯度消失,公式为 。
- 层归一化:加速训练,提升稳定性,应用于每个子层输出后。
编码器与解码器差异
编码器层:
- 自注意力层 + 前馈网络,均含残差连接和层归一化。
解码器层:
- 掩码自注意力层:防止当前位置看到未来信息(通过掩码矩阵)。
- 编码器-解码器注意力层:Q来自解码器,K、V来自编码器输出。
- 前馈网络结构与编码器相同。
