#AI

公式

对于序列中的第 个位置,其编码向量中第 个维度的值遵循以下规则:

  • 偶数维度 ():
  • 奇数维度 (): 其中:
  • :词在句子中的绝对位置(0, 1, 2…)。
  • :维度的索引。
  • :编码的总维度(例如 512)。

举例说明

假设我们要为一个极其简化的模型计算位置编码,设定:

  • 维度
  • 我们要看第 的位置(即句子的第二个词)

公式中的分母部分 决定了正弦波的频率。对于 ,我们需要计算两个 值():

  1. 时:
  2. 时:

这个 4 维向量将由以下四个值组成:

  • 维度 0 (偶数, ):
  • 维度 1 (奇数, ):
  • 维度 2 (偶数, ):
  • 维度 3 (奇数, ): 最终 的位置向量为:[0.841, 0.540, 0.010, 0.999]

直观理解

你可以把正弦位置编码想象成一个二进制计数器。

  • 低维索引(靠近 0):频率很高(像计数器的个位),数值变化剧烈,能捕捉相邻位置的微小差异。
  • 高维索引(靠近 ):频率很低(像计数器的千位),数值变化缓慢,能捕捉长距离的相对关系。

关键特性:相对位置可推导

由于三角函数的特性: 这使得模型理论上可以通过线性变换,从 计算出 。换句话说,模型很容易学会“某个词在另一个词后面 个位置”这种相对关系。