在大屏或电脑上体验更佳——动画和操作区域更宽敞。
输入

位置编码

位置编码让 Transformer 获得 token 所在位置的信息。原始正弦方案为每个位置生成多频率的正弦、余弦向量,再与 token 嵌入相加。因此同一个 token 在不同位置可有不同输入。

the cat saw the dog 的两个 the 使用同一静态嵌入,位置却为 0 和 3。位置编码在混合上下文之前提供这种区分。

同一嵌入,加不同位置

记嵌入为 E(the),实际加入的位置贡献为 A(p):

x(p) = E(the) + A(p)

开启时 A(p) = PE(p),关闭对照时为零。开关只控制是否加入,不改变 PE 公式:

PE(p)[2i]     = sin(p / 10000^(2i/d))
PE(p)[2i + 1] = cos(p / 10000^(2i/d))

p 是位置,d 是向量宽度,i 选择一对分量,角度用弧度。偶数分量取 sin,奇数取同一角度的 cos,值都在 [−1,1]。

本课 d = 8,四对分母为 1、10、100、1000,后续变化更慢。除位置改变频率,不改振幅,也不是为不同 token 分配不同的位置编号。

位置与嵌入同宽,八项对应相加仍八项;拼接则十六项,需修改输入结构。原 Transformer 在相加前将 token 嵌入乘 √d,这里 E 已包含这一共同缩放,见原论文 3.4–3.5 节。

逐步演示

默认比较位置 0 与 3 的 the,八分量,开启编码。工作区只展开两次出现,不展开中间词。

  1. 只看嵌入:两者都是 E,差为零,不需要指定数值权重。
  2. 第一对:分母一,角度 0 与 3,sin 为 0.000000、0.141120,cos 为 1.000000、−0.989992。位置零是 [0,1],不是全零。
  3. 第二对:分母十,角度 0 与 0.3,sin 为 0.000000、0.295520,cos 为 1.000000、0.955336。位置没变,波动更慢,幅度范围相同。
  4. 后两对:同样用分母 100、1000,形成完整表:
分量函数PE(0)PE(3)
0sin(p)0.0000000.141120
1cos(p)1.000000−0.989992
2sin(p/10)0.0000000.295520
3cos(p/10)1.0000000.955336
4sin(p/100)0.0000000.029996
5cos(p/100)1.0000000.999550
6sin(p/1000)0.0000000.003000
7cos(p/1000)1.0000000.999996
  1. 对应相加:第零分量分别为 e₀ + 0.000000、e₀ + 0.141120,其他项同理。
  2. 相减隔离位置:
x(3) − x(0)
  = (E + PE(3)) − (E + PE(0))
  = PE(3) − PE(0)

差向量的欧氏长度约 2.017479,用舍入前数值计算。它是八项差平方和的平方根,不是三格位置差,也不是语义相似分。零表示坐标全相同,正值表示至少一项不同。

  1. 关闭对照:两输入都是 E+0,差长为 0。结尾并排保留两结果。对比位置可选整数 1–32,预设可直接跳到对应证据。

多频率保留不同尺度的差异

一对 sin/cos 在角度走完 2π 后连续周期重复,整数位置通常不精确落在整圈,但可能接近。

把位置改 6,或选“Fast pair nearly repeats”。最快一对与位置零的距离约 0.282240;第二对只转 0.6 弧度,距离约 0.591040。一个频率的差很小,其他频率仍可提供区分。

距离不是位置间隔的单调函数。位置六的完整差长 0.657741 反而小于位置三的 2.017479。周期性使它不能直接解释为相隔词数或语义距离。

固定相对位移下,三角加法公式可将平移后的一对表示为原对的线性变换,提供模型可学习利用的相对位置结构,但可用不等于训练后一定学会。

复杂度与实现检查

n 位置、d 维,物化编码时间与空间均 O(nd),单位置 O(d)。正弦编码无可学习的位置查表参数,只求固定公式,不含后续注意力成本。

按 token 的槽位分配 PE,并保持同宽。可把同词放两处,检查输入差是否等于 PE(q) − PE(p),无需知道嵌入权重,也能抓出把同一位置向量广播到所有槽位的错误。

边界情况

  • 关闭:本对照的重复 token 输入相同,未使用的 PE 仍可计算查看。
  • 位置零:所有 sin 为零、cos 为一,不能当零向量。
  • 很小的显示差:慢速 cos 可能舍入成相同数,计算和范数保留完整精度,聚焦时显示更多位。
  • 长上下文:公式可计算训练长度外位置,不保证在那里有效。32 只是滑杆上限。
  • 其他顺序来源:无掩码、无位置信号的自注意力置换等变;因果掩码本身有顺序结构,其他架构用旋转或注意力偏置。关掉这一种加法不等于任何模型都完全没有顺序信息。

常见错误

  • 把位置 p 与分量 2i、2i+1 混为一谈。
  • 同一对 sin/cos 用不同分母。
  • 用位置放大振幅;这里改变角度,值仍有界。
  • 每词都加 PE(0),共同向量在同词比较时抵消。
  • 拼接后不修改下一层宽度。
  • 不同输入就宣称正确理解词序。这里只证明位置信号存在,使用效果取决于模型与训练。

模型范围

原始加法正弦公式、八维、两次出现、符号化的共同嵌入。没有注意力、训练、归一化、dropout 或语义预测。相关内容:词嵌入、注意力机制、Transformer 块。