Type: concept
Confidence: 0.92
Created: 2026-04-16
Updated: 2026-04-16
Tags: transformerdeep-learningnlppositional-encodingLLM能力

位置编码

概述

位置编码(Positional Encoding)是 Transformer 中补充序列顺序信息的机制。Self-Attention 本身只计算 token 间内容相关性,不感知排列顺序,因此必须将位置信息显式注入每个 token 的表示中。

关键内容

  1. 核心作用:将位置向量叠加到词向量上($x_i' = x_i + p_i$),使模型同时感知内容与位置信息,区分"狗咬人"与"人咬狗"等顺序不同的语义。
  2. 两大流派绝对位置编码编码 token 的绝对位置编号("我在第几位");相对位置编码编码 token 间相对距离("我离你多远"),直接注入注意力分数计算
  3. 选型原则:中短文本、标准预训练场景用绝对位置编码已够用;长序列建模、外推能力要求高或关注结构关系时,相对位置编码更有优势。
  4. 在推荐系统中的应用SASRec 使用可学习的位置嵌入(Learnable Positional Embedding)而非 Transformer 的正弦/余弦固定编码,实验证明这对推荐任务更为有效。位置编码与 因果掩码 配合,使模型能够在保持时序因果性的同时捕获序列中的位置信息。
  5. 原版正弦/余弦编码(Vaswani et al., 2017):$PE(pos, 2i) = \sin(pos / 10000^{2i/d_{model}})$,$PE(pos, 2i+1) = \cos(pos / 10000^{2i/d_{model}})$。特点:不同位置编码各不相同,相对位置差可通过线性变换推导,可泛化到训练时未见过的更长序列。
  6. 现代变体:可学习位置编码(BERT, GPT 采用);RoPE 旋转位置编码(LLaMA, GPT-NeoX 采用);ALiBi 线性偏置(MPT 采用)。

来源

相关