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

相关推荐
QiZhang | UESTC5 分钟前
InstructGPT_论文精读笔记
人工智能·笔记·深度学习
搞科研的小刘选手10 分钟前
【大连市计算机学会主办】第三届图像处理、智能控制与计算机工程国际学术会议(IPICE 2026)
图像处理·人工智能·深度学习·算法·计算机·数据挖掘·智能控制
灰灰勇闯IT10 分钟前
ops-softmax:Transformer 推理中的概率归一化引擎
人工智能·深度学习·transformer
星浩AI24 分钟前
(四)Hugging Face 与魔搭实战:模型下载、API 调用与本地推理
人工智能·深度学习·llm
放下华子我只抽RuiKe525 分钟前
React 从入门到生产(六):路由与导航
前端·人工智能·深度学习·react.js·前端框架·html·claude code
不懒不懒35 分钟前
Python+AI 大模型实现课堂教学质量智能分析|加权评分 + 自动诊断 + 改进建议
人工智能·python·深度学习·ai大模型·智慧教育·nlp算法
AI人工智能+44 分钟前
基于高精度OCR与大模型融合的智能文档抽取系统,著提升政务服务效率,推动从“自动化“向“智能化“转型
深度学习·语言模型·ocr·文档抽取
啦啦啦_99991 小时前
RNN 入门
人工智能·rnn·深度学习
徐安安ye1 小时前
FlashAttention 算子深度解析:让大模型在昇腾NPU上跑得更快
python·transformer
一切皆是因缘际会1 小时前
终结拟合式智能:记忆博弈心智架构重塑硅基生命进化逻辑
大数据·人工智能·深度学习·机器学习·架构