1. 自注意力机制的置换等变性:从数学定义到直观理解
当我们说Transformer的自注意力机制是"置换等变"(permutation-equivariant)时,指的是它对输入序列的顺序具有特定的数学性质。具体来说,给定一个输入序列X = [x₁, x₂, ..., xₙ]和任意排列π(即对序列元素顺序的重排),自注意力机制满足:
f(π(X)) = π(f(X))
这意味着如果我们打乱输入序列的顺序,输出序列也会以相同的方式被打乱,但每个元素自身的表示内容保持不变。这种性质源于自注意力权重计算的本质——它只依赖于查询(Q)和键(K)之间的点积相似度,而与元素的绝对位置无关。
注意:这种等变性不同于"置换不变性"(permutation-invariant),后者要求f(π(X)) = f(X),即输出完全不随输入顺序变化。池化操作就是典型的置换不变操作。
用一个简单的例子来说明:考虑句子"猫追老鼠"和"老鼠追猫"。在没有位置编码的情况下,自注意力机制对"猫"这个词的处理在两个句子中是完全相同的——它会基于"猫"的词嵌入内容(而非位置)来计算与"追"和"老鼠"的注意力权重。最终输出的区别仅在于序列顺序的交换。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 为什么位置编码成为Transformer的必要组件
2.1 自然语言中的顺序敏感性
自然语言本质上具有强烈的顺序依赖性。以英语为例:
- "Dog bites man"(狗咬人)与"Man bites dog"(人咬狗)表达完全不同的语义
- "I love you"(我爱你)与"You love I"(你爱我)在语法上就不正确
这种顺序敏感性在几乎所有序列建模任务中都存在,包括:
- 机器翻译(词序决定目标语言的语法结构)
- 文本摘要(事件顺序影响摘要的连贯性)
- 语音识别(音素序列构成有意义的单词)
2.2 自注意力的顺序盲视问题
自注意力机制计算注意力权重的公式为:
Attention(Q, K, V) = softmax(QKᵀ/√dₖ)V
其中Q、K、V分别来自输入序列的线性变换。关键点在于:
- QKᵀ的计算只涉及词嵌入的内容相似度
- softmax归一化对排列顺序不敏感
- 最终的加权和V也不考虑原始位置信息
这导致两个问题:
- 无法区分相同词汇在不同位置的表现
