神经网络Transformer架构中的编码器
字数 792 2025-11-19 21:28:04
神经网络Transformer架构中的编码器
-
编码器的基本定位
编码器是Transformer架构的核心组件之一,负责将输入序列(如一段文本)转换为富含上下文信息的隐藏表示。每个编码器接收输入嵌入(可能叠加位置编码),并通过多层计算提取特征,最终输出与输入等长的向量序列,供解码器或其他下游任务使用。 -
编码器的层级结构
单个编码器由N个完全相同的层堆叠而成(原始论文中N=6)。每层包含两个核心子模块:- 多头自注意力机制:允许序列中每个位置同时关注所有位置的信息,捕获全局依赖关系。
- 前馈神经网络:对每个位置的表示进行非线性变换,增强模型表达能力。
每个子模块均配套残差连接与层归一化,确保梯度流动稳定并加速训练。
-
自注意力在编码器中的角色
编码器通过自注意力动态计算输入序列中所有词对之间的相关性。例如在句子“猫追老鼠”中,“老鼠”会根据语义重要性分配更高权重给“猫”和“追”。这种机制突破了传统循环网络的顺序计算限制,实现了并行化处理长序列依赖。 -
前馈网络的独立计算特性
前馈网络由两个线性变换与中间的ReLU/GELU激活函数构成,其参数在不同位置间共享,但独立处理每个位置的表示。这一设计增强了模型对局部模式的捕获能力,与自注意力形成的全局感知形成互补。 -
残差连接与层归一化的协同
每个子模块的输出均满足:LayerNorm(x + Sublayer(x))。残差连接缓解了深层网络梯度消失问题,而层归一化对每个样本的所有特征维度进行标准化,提升训练稳定性。二者结合使Transformer能够有效堆叠数十甚至上百层。 -
编码器的输出与下游对接
最终层编码器输出的隐藏状态序列可作为:- 解码器的交叉注意力输入(在序列到序列任务中)
- 分类任务的[CLS]标签对应向量
- 语义匹配任务中的句子表示
其蕴含的上下文信息已成为BERT等预训练模型的基石。