1. 位置编码的引入
-
背景:Transformer模型通过自注意力机制(Self-Attention)处理序列数据,但自注意力机制本身并不包含序列中元素的位置信息。因此,需要一种方法来为模型提供位置信息。
-
解决方案:位置编码(Positional Encoding)被添加到词嵌入(Embedding)中,以提供序列中每个元素的位置信息。 Transformer模型中的位置编码又称为绝对位置编码。
2. 计算公式
-
公式:
-
-
性质:
-
使用正弦(sin)和余弦(cos)函数的交替,可以通过线性变换矩阵得到其他位置的表示。
-
位置编码包含了相对位置的信息,并且由于三角函数的生成规律,可以期望有外推性质。
-
3. 可视化效果
-
图示:下图展示了长度为100,编码维度为512的序列的位置编码可视化。
-
位置向量的值:由于正弦和余弦函数的性质,位置向量的每个值都位于 [−1,1] 之间。
-
频率变化:图的右半边几乎都是黄色的,这是因为越往后的位置,频率越小,波长越长,所以不同的 t 对最终的结果影响不大。而越往左走,颜色交替的频率越频繁,表示位置编码的频率变化。
-
4. 公式推导
-
推导:
这个公式展示了位置编码的相对位置信息和外推性质。