深入理解 Transformer:位置编码 (Positional Encoding) 与位置嵌入 (Positional Embedding) 的核心区别

Transformer 架构自 2017 年诞生以来,彻底改变了自然语言处理(NLP)领域。它强大的自注意力机制 (Self-Attention)允许模型捕捉句子中的长距离依赖关系。然而,自注意力机制本身是与词序无关的,这意味着如果打乱一个句子的词序,自注意力层的输出可能保持不变。

为了解决这个问题,我们需要引入一种机制,让模型知道每个词在序列中的位置 。这就是 位置信息(Positional Information) 的作用。在不同的 Transformer 变体中,实现这一目标主要有两种方式:位置编码 (Positional Encoding)位置嵌入 (Positional Embedding)

虽然它们的目的相同,但其实现方式和性质却有本质区别。


🔑 核心差异:计算 vs. 学习

理解两者区别的关键在于:这些位置向量是预先计算好的 ,还是在训练中学习到的

特性 位置编码 (Position Encoding) 位置嵌入 (Position Embedding)
获取方式 通过固定的、预定义的函数(如正弦和余弦函数)直接计算。 作为模型参数,在训练过程中学习和优化得到。
可学习性 不可学习(Non-learnable / Fixed)。 可学习(Learnable)。
典型应用 原始的 Transformer 模型(《Attention Is All You Need》)。 BERT、GPT-2/3、T5 等(或后续许多使用可学习位置向量的模型)。

1. 详细解析:位置编码 (Positional Encoding)

🌊 什么是位置编码?

位置编码 是原始 Transformer 论文《Attention Is All You Need》中采用的方法。它不引入任何新的可训练参数,而是使用一种基于正弦和余弦函数的数学公式来生成与序列中每个位置相对应的向量。

📌 关键特点:

  • 固定性与泛化性: 由于是基于函数计算,它具有天然的外推能力。即使模型在训练时只见过长度为 512 的序列,如果推理时遇到长度为 1000 的序列,它仍然可以通过公式计算出 等位置的编码。
  • 相对位置信息: 正余弦函数的性质使得任意两个位置 和 之间的位置编码可以通过线性变换表示,这能帮助模型捕捉相对位置关系

数学表达如下(其中 是位置, 是词嵌入的维度, 是维度的索引):


2. 详细解析:位置嵌入 (Positional Embedding)

📚 什么是位置嵌入?

位置嵌入 是将位置信息本身视为一个可训练的参数矩阵,类似于词嵌入(Word Embedding)矩阵。模型在训练过程中,会为每一个可能的序列位置学习一个唯一的向量表示。

📌 关键特点:

  • 灵活性: 模型可以学习到最适合特定任务和数据集的位置表示,理论上比固定的函数编码更强大。
  • 长度限制: 这种方法要求在训练之前确定一个最大序列长度 (例如 BERT 为 512)。位置嵌入矩阵的大小是固定的(最大长度 维度)。如果输入的序列超过了这个最大长度,模型将无法提供有效的位置信息。
  • 广泛应用: 许多现代预训练模型(如 BERT)都采用了这种可学习的位置嵌入。

🤝 它们如何结合使用?

无论是采用位置编码 还是位置嵌入 ,它们最终都是通过向量相加的方式,将位置信息注入到词嵌入向量中。

最终进入 Transformer 层的输入嵌入 可以概括为:

其中 要么是固定的位置编码 向量,要么是学习得到的位置嵌入向量。


结论

在设计 Transformer 模型时,选择 Position Encoding 还是 Position Embedding 是一个重要的设计决策:

  • 如果注重简单、无需训练 ,以及对超长序列的泛化能力 ,可以选择位置编码(固定函数)。
  • 如果认为模型应该通过数据学习最有效的位置表示 ,且对序列长度有明确限制,则选择位置嵌入(可学习参数)。

随着 Transformer 架构的演进,也出现了更多高级的位置表示方法,例如相对位置编码 (Relative Position Encoding)、旋转位置嵌入 (RoPE) 等,它们进一步提升了模型处理序列关系的能力。

相关推荐
明明真系叻2 小时前
2025.12.28日周报
深度学习
All The Way North-2 小时前
从0到1,构建自己的全连接神经网络
人工智能·pytorch·深度学习·全连接神经网络
徐先生 @_@|||2 小时前
N-Gram、RNN、LSTM、Transformer发展历程
rnn·lstm·transformer
AI即插即用2 小时前
即插即用系列 | CVPR 2025 DICMP:基于深度信息辅助的图像去雾与深度估计双任务协同互促网络
图像处理·人工智能·深度学习·神经网络·计算机视觉·视觉检测
AI即插即用2 小时前
即插即用系列 | WACV 2024 CSAM:面向各向异性医学图像分割的 2.5D 跨切片注意力模块
图像处理·人工智能·深度学习·神经网络·目标检测·计算机视觉·视觉检测
m0_704887893 小时前
Day 47
深度学习
haiyu_y3 小时前
Day 51 在预训练 ResNet18 中注入 CBAM 注意力
人工智能·pytorch·深度学习
拉拉拉拉拉拉拉马3 小时前
感知机(Perceptron)算法详解
人工智能·python·深度学习·算法·机器学习
最晚的py3 小时前
参数初始化的方式
深度学习·初始化参数