为什么只有底层编码器直接接收词嵌入:Transformer 的层间表示如何传递
解释词嵌入和位置编码如何进入底层编码器,以及上层编码器为什么接收上一层输出。
相关工具
编码器堆叠不是每层重新读一遍文字
Transformer 的编码器由多个结构相同的层堆叠而成,但它们并不是每层都从原始文字重新开始。文中的描述很明确:词嵌入只发生在最底层编码器,底层接收词嵌入和位置编码,上面的编码器接收下方编码器的输出。
这样设计意味着序列表示会沿着一条主干逐层传递。底层先把离散词元变成带位置的向量,第一层开始建立上下文联系,第二层在已经包含上下文的表示上继续加工。每层都面对一份不同深度的隐藏表示,而不是反复读取同一份原始词向量。

词嵌入和位置编码进入最底层编码器,上层编码器接收上一层输出。
底层编码器先做什么
底层编码器接收每个词元的 d_model 维向量。加入位置编码后,每个位置同时带有内容和顺序信息,随后进入自注意力层。自注意力让一个位置可以读取句子中其他位置的表示,开始把局部词义放进更大的上下文。
之后,前馈网络对每个位置的表示进行非线性加工,残差连接和 LayerNorm 则帮助这一轮更新稳定地回到主干表示。底层输出已经不再是单纯的词嵌入,而是每个位置结合了其他位置后的上下文向量。
上层编码器接收的是什么
上层编码器接收的是下一层传下来的整段序列表示。假设序列长度为 L、模型宽度为 d_model,那么无论进入第几层,主干输入都可以看成 L × d_model 的矩阵。形状保持不变,变化的是每个位置向量中的信息。
这让每层都可以使用相同的模块顺序继续处理:自注意力交换位置之间的信息,FFN 加工每个位置,残差和归一化传递更新后的表示。上层不需要再查一次词表,因为词元身份和位置关系已经被底层输入带入,并在后续层中不断展开。

每层接收上一层的序列表示,形状保持一致,内容则逐步融合更多上下文。
为什么不在每层重复加入词嵌入
如果每层都把原始词嵌入重新加进来,底层内容可能不断覆盖或干扰已经形成的上下文表示。经典结构让词嵌入只负责建立初始表示,后续层在残差路径和自身参数的作用下逐步更新它。
这并不是说上层完全忘记了原始词义。残差连接保留了信息通道,注意力和 FFN 也可以继续使用底层传来的内容。区别在于,上层拿到的是已经加工过的表示,能够在原始词义与上下文信息之间做更有层次的组合。
位置编码在这条链路中出现在哪里
经典 Transformer 会把位置编码加到词嵌入上,再把结果送入底层编码器。这样,底层自注意力第一次处理序列时就能感知位置。后续层接收的是已经包含位置信息的表示,位置关系会随着注意力和前馈变换被继续加工。
位置编码不是每层都重新查表相加的独立输入。它在底层进入主干,之后作为隐藏表示的一部分向上流动。不同模型可能采用其他位置表示方案,但都要解决同一个问题:让序列中的先后关系能够参与后续计算。

词嵌入和位置编码先相加,再作为底层编码器的输入。
为什么上层还能学到更抽象的关系
每一层都有自己的注意力和 FFN 参数,因此它可以对传入的表示做不同的变换。底层可能更容易保留词面和邻近关系,中间层可以组合短语和句法关系,上层则在更丰富的上下文基础上形成适合输出任务的表示。
层间传递并不等于每层只增加一种固定知识。模型通过训练损失决定哪些更新有助于预测,某些信息可能被强化,某些信息可能被压缩或重新组合。重复的结构提供了连续加工的框架,独立参数则给每层留下不同的学习空间。
编码器输出为什么适合交给解码器
经过多层编码器后,每个源位置的表示都包含了更充分的上下文。解码器的交叉注意力把这组表示作为 Key 和 Value,按照当前目标位置的 Query 进行读取。编码器不直接输出目标词,而是把源序列整理成一组可查询的记忆。
如果编码器每层都重新从原始词嵌入开始,层间上下文就难以形成连续积累。正是因为上层接收上一层输出,源序列的信息才会沿着深度逐步加工,最终成为解码器可以使用的上下文表示。
把这条输入链路记住
可以把编码器输入记成一条直线:词元先查表得到词嵌入,位置编码补充顺序,两者相加后进入底层编码器;底层输出传给下一层,后续层继续加工同一份主干表示;最后一层输出成为源序列记忆。
其中,只有第一步直接面对词表,后面的层面对的是不断变化的上下文向量。理解这一点,就能把 Embedding、位置编码、编码器堆叠和交叉注意力串成一条连续的信息流,而不是把它们看成互相独立的模块。
常见问题
上层编码器还需要词嵌入吗?
经典 Transformer 中不需要。词嵌入只在最底层把词元转换成模型向量,上层编码器接收上一层已经加工过的输出。
位置编码会在每一层重新加入吗?
经典做法是在底层词嵌入上加入位置编码,后续层传递并加工已经包含位置信息的表示。不同模型可能采用其他位置表示方式。
只在底层加入词嵌入会不会丢失词义?
不会。残差路径和层间传递会保留底层信息,后续注意力与 FFN 在此基础上继续加工,而不是把原始词义直接丢掉。