1. one-hot编码
每个词都引入一个位置信息
2. 标准位置编码
来源于transform paper,embeding向量交替用sin和cos编码
3. 旋转位置编码
2021年提出,GitHub – ZhuiyiTechnology/roformer: Rotary Transformer
在位置编码上删除了绝对位置嵌入,编码的过程实际就是给query向量乘以一个旋转矩阵。
编码空间在复平面,我们用欧拉公式:
f_{q,k}(x_m,m)=R^d_{\Theta,m}W_{q,k}x_m\\ \Theta=\{\theta_i=10000^{-2(i-1)/d},\ \ \ i=[1,2,...d/2]\}
R为旋转矩阵,下图针对二维情况:
Sin/Cos的绝对位置编码具有周期性,而以RoPE为代表的相对位置编码具有远程衰减的特性,随着两个向量之间距离越近,它们内积越大,否则内积越低,这个特性可以增强模型的拓展性和参数鲁棒性。