深入理解 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) 等,它们进一步提升了模型处理序列关系的能力。

相关推荐
Coder_Boy_2 小时前
技术让开发更轻松的底层矛盾
java·大数据·数据库·人工智能·深度学习
2401_836235862 小时前
中安未来SDK15:以AI之眼,解锁企业档案的数字化基因
人工智能·科技·深度学习·ocr·生活
njsgcs2 小时前
llm使用 AgentScope-Tuner 通过 RL 训练 FrozenLake 智能体
人工智能·深度学习
2的n次方_3 小时前
CANN ascend-transformer-boost 架构解析:融合注意力算子管线、长序列分块策略与图引擎协同机制
深度学习·架构·transformer
人工智能培训4 小时前
具身智能视觉、触觉、力觉、听觉等信息如何实时对齐与融合?
人工智能·深度学习·大模型·transformer·企业数字化转型·具身智能
pp起床5 小时前
Gen_AI 补充内容 Logit Lens 和 Patchscopes
人工智能·深度学习·机器学习
阿杰学AI6 小时前
AI核心知识91——大语言模型之 Transformer 架构(简洁且通俗易懂版)
人工智能·深度学习·ai·语言模型·自然语言处理·aigc·transformer
芷栀夏6 小时前
CANN ops-math:筑牢 AI 神经网络底层的高性能数学运算算子库核心实现
人工智能·深度学习·神经网络
Yeats_Liao9 小时前
评估体系构建:基于自动化指标与人工打分的双重验证
运维·人工智能·深度学习·算法·机器学习·自动化
Tadas-Gao9 小时前
缸中之脑:大模型架构的智能幻象与演进困局
人工智能·深度学习·机器学习·架构·大模型·llm