公式
对于序列中的第
- 偶数维度 (
): - 奇数维度 (
): 其中: :词在句子中的绝对位置(0, 1, 2…)。 :维度的索引。 :编码的总维度(例如 512)。
举例说明
假设我们要为一个极其简化的模型计算位置编码,设定:
- 维度
- 我们要看第
的位置(即句子的第二个词)
公式中的分母部分
- 当
时: - 当
时:
这个 4 维向量将由以下四个值组成:
- 维度 0 (偶数,
): - 维度 1 (奇数,
): - 维度 2 (偶数,
): - 维度 3 (奇数,
): 最终 的位置向量为: [0.841, 0.540, 0.010, 0.999]
直观理解
你可以把正弦位置编码想象成一个二进制计数器。
- 低维索引(靠近 0):频率很高(像计数器的个位),数值变化剧烈,能捕捉相邻位置的微小差异。
- 高维索引(靠近
):频率很低(像计数器的千位),数值变化缓慢,能捕捉长距离的相对关系。
关键特性:相对位置可推导
由于三角函数的特性: