Transformer 必须引入位置编码(Positional Encoding)的核心原因可以用一句话来概括:Transformer 的核心组件“自注意力机制(Self-Attention)”本身是“排列不变的(Permutation Invariant)”,它无法识别输入序列中单词的顺序。 如果没有位置编码,Transformer 只能把一句话看作是一个“词袋(Bag of Words)”,而不是一个有顺序的句子。 以下是详细的原因拆解: 1. 自注意力机制的数学本质:丢失了顺序信息 在自注意力机制中,输入矩阵会分别乘上权重矩阵得到 $Q$(Query)、$K$(Key)、$V$(Value)。计算公式为: $$ \text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{dk}}\right)V $$ 在这个纯矩阵乘法和加权求和的过程中,没有任何操作是依赖于输入词的位置的。 如果你把输入序列打乱(例如把第1个词和第5个词交换),自注意力机制计算出的这两个词的注意力权重和输出表示完全不会发生改变(只是输出...