Transformer 编码器
Transformer 编码器由多个相同的层堆叠而成,每一层包含两个子层:多头自注意力机制和位置前馈网络,每个子层周围都有残差连接和层归一化。
输入表示
Token 嵌入
输入序列中的每个 token 首先被映射为一个 维的向量。所有 token 的嵌入向量构成了编码器的初始输入矩阵。
位置编码
注意力机制只能做到将一系列的 token 进行计算上下文关系并得到新表示,但是不能保留原有的顺序,因此引入位置编码,将语义顺序也加入考虑范围。
位置编码使用不同频率的正弦和余弦函数:
其中 为位置索引, 为维度索引。这种设计使模型能够通过相对位置进行学习,且能够外推到训练时未见过的序列长度。
编码器层结构
每个编码器层包含两个主要子层:
1. 多头自注意力子层
输入经过多头自注意力机制,每个位置关注编码器输入序列的所有位置,捕获全局上下文信息。该子层的输出通过残差连接与输入相加,然后经过层归一化。
2. 前馈网络子层
每个位置的表示独立通过一个两层的全连接前馈网络,通常使用 ReLU 或 GELU 激活函数:
内层维度通常大于外层维度(例如 ,)。该子层同样后接残差连接和层归一化。
编码器的输出
最后一层编码器的输出是一个序列表示矩阵,其中每个位置向量都融合了整个输入序列的上下文信息。这些表示将作为键和值矩阵传递给解码器的交叉注意力层。
核心特性
- 双向上下文:编码器中的自注意力无掩码限制,每个位置可以关注所有其他位置,因此编码器可以捕获完整的双向上下文信息。
- 与序列长度无关:编码器一次性处理整个输入序列,计算图的深度不随序列长度变化。
- 层级抽象:底层倾向于捕获局部、浅层的模式,高层则捕获更抽象、全局的语义信息。

链接到
- 上一个知识点:7.4 Transformer架构
- 下一个知识点:7.6 Transformer解码器