Transformer
Transformer 是一种基于自注意力机制(Self-Attention Mechanism)的深度学习模型,首次由 Vaswani 等人于 2017 年在论文《Attention is All You Need》中提出。与 RNN 和 LSTM 不同,Transformer 不需要依靠序列顺序进行递归,而是通过全局注意力机制一次性处理整个输入序列,从而具备了更高的计算效率和更强的并行化能力。
Transformer 的提出彻底改变了自然语言处理(NLP)和其他领域的发展,广泛应用于机器翻译、文本生成、语言理解、图像识别等任务。
Transformer 的结构
Transformer 模型由两部分组成:
- 编码器(Encoder):用于将输入序列转化为上下文相关的表示。
- 解码器(Decoder):用于根据编码器的输出生成新的序列(如翻译成另一种语言)。
Transformer 的基本结构如下:
Transformer
├── 编码器(Encoder)
│ ├── 多头自注意力机制(Multi-Head Attention)
│ ├── 前馈神经网络(Feed-Forward Neural Network)
│ └── 残差连接与层归一化(Residual Connection + Layer Normalization)
│
└── 解码器(Decoder)
├── 多头自注意力机制(Multi-Head Attention)
├── 编码器-解码器注意力机制
├── 前馈神经网络
└── 残差连接与层归一化
核心机制解析
1. 多头自注意力机制(Multi-Head Self-Attention)
自注意力机制的核心是:每个单词能够根据输入序列的上下文信息,动态地分配注意力权重,从而获得上下文相关的表示。
计算步骤:
- 将输入序列 ( X ) 通过线性变换生成查询向量(Query, Q)、键向量(Key, K) 和 值向量(Value, V)。
- 计算每个查询向量 ( Q_i ) 与所有键向量 ( K_j ) 之间的相似度,通过 softmax 函数获得注意力权重。
- 将注意力权重与对应的值向量 ( V ) 相乘,得到加权后的输出。
公式:
Attention(Q,K,V)=softmax(QKTdk)V \text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V Attention(Q,K,V)=softmax(dk