Transformer 中位置编码(Positional Encoding)的作用是什么?为什么不能省略?
Transformer 中的位置编码Positional Encoding一、作用位置编码的核心作用是为输入序列中的每个位置注入顺序信息使模型能够区分同一 token 在不同位置出现的差异。Transformer 的自注意力机制本身是排列不变的permutation-invariant——它将输入视为一个无序的集合而非序列。如果不额外引入位置信息模型无法感知 token 之间的相对或绝对顺序导致猫追狗和狗追猫在模型看来完全相同。二、为什么不能省略1. 自注意力的排列不变性自注意力的计算过程Attention(Q, K, V) softmax(QKᵀ / √d) · V其中 Q、K、V 均由输入嵌入线性变换得到。关键在于注意力权重仅取决于 Q 和 K 的内容相似度与位置无关。将输入序列打乱顺序只要每个 token 的内容不变自注意力的输出作为整体集合完全相同——只是输出行顺序变了但每行的内容不变。输入 A: [我, 爱, 你] → 每个位置的输出 输入 B: [你, 爱, 我] → 每个位置的输出与 A 中对应 token 的输出完全一致这意味着模型无法区分语序而语序在自然语言中至关重要。2. RNN/CNN 如何天然获得位置信息架构位置信息来源RNN/LSTM逐步顺序处理隐状态天然编码了第几步CNN卷积核在固定窗口内滑动位置由卷积位置隐式编码Transformer无任何顺序处理并行计算所有位置 → 位置信息完全缺失Transformer 为了实现全并行计算放弃了 RNN 的逐步递归结构代价就是丢失了位置信息必须通过位置编码显式补回。3. 省略后的后果词序语义丢失主谓宾关系无法区分依赖关系断裂长距离依赖无法正确定位结构信息消失句法树、层次结构无法建模模型退化为词袋模型的高级变体三、位置编码的工作方式位置编码将一个位置向量与 token 的词嵌入向量相加作为 Transformer 的实际输入最终输入 词嵌入(Word Embedding) 位置编码(Positional Encoding) [d_model维] [d_model维]两者维度相同均为d_model直接逐元素相加。模型在后续层中通过注意力机制从这组叠加向量中提取位置信息。四、主流位置编码方案1. 正弦/余弦编码原始 TransformerVaswani et al. 2017使用不同频率的正弦和余弦函数生成位置向量PE(pos, 2i) sin(pos / 10000^(2i/d_model)) PE(pos, 2i1) cos(pos / 10000^(2i/d_model))特性说明固定非学习无需训练参数可外推理论上可处理比训练时更长的序列相对位置可表达PE(posk)可表示为PE(pos)的线性变换使模型能学习相对位置关系每维不同频率低维对应高频捕捉近距离高维对应低频捕捉远距离2. 可学习位置编码Learned PEBERT/GPT 使用为每个位置分配一个可训练的嵌入向量与词嵌入相加。特性说明灵活模型自主学习最优的位置表示不可外推超出训练最大长度的位置无对应编码适用场景固定长度或长度变化不大的任务如 BERT max_len5123. 相对位置编码Relative PET5/Shaw et al.不编码绝对位置而是在注意力计算中引入query-key 之间的相对距离信息。Attention softmax(QKᵀ Q·R_rel) · V ↑ 相对位置偏置特性说明更符合直觉语言中相对位置往往比绝对位置更重要外推性较好相对距离可泛化到更长序列代表方法T5 Relative Position Bias、ALiBi、RoPE4. RoPE旋转位置编码Rotary PESu et al. 2021通过对 Query 和 Key 向量施加旋转变换来编码绝对位置使得注意力分数自然表现为相对位置的函数。q_m R(m) · q_m m 位置旋转 k_n R(n) · k_n n 位置旋转 Attention Score q_m · k_n q_m · R(n-m) · k_n ↑ 仅依赖相对距离 (n-m)特性说明绝对位置输入相对位置效果旋转后内积自动只依赖相对距离外推性强配合 NTK-aware scaling 可扩展到超长上下文无额外参数不增加模型参数量主流应用LLaMA、Qwen、ChatGLM 等现代大模型五、方案对比方案类型可学习外推性代表模型Sinusoidal绝对否好原始 TransformerLearned PE绝对是无BERT、GPT-2T5 Bias相对是较好T5ALiBi相对否好BLOOMRoPE绝对输入/相对效果否好扩展技巧LLaMA、Qwen六、一句话总结Transformer 的自注意力机制是排列不变的无法感知 token 的顺序因此必须通过位置编码显式注入位置信息。位置编码与词嵌入相加使模型在并行处理所有位置的同时仍能区分语序。主流方案从原始的正弦编码、可学习编码发展到相对位置编码和 RoPE趋势是追求更好的相对位置表达和外推能力——RoPE 因其绝对位置输入、相对位置效果的特性成为当前大模型的主流选择。