RoPE(旋转式位置编码)

出发点:“通过绝对位置编码的方式实现相对位置编码”

操作步骤

1.假设一个函数f()通过他能让q,k带上绝对位置信息

对q,k进行操作(f())使得他们带上位置m,n的绝对位置信息,
在这里插入图片描述

通过内积后,希望结果带上相对位置信息,因此假设存在下列恒等关系
在这里插入图片描述

2.根据以上的恒等式求出f()

假设f(q,0)=q 和f(k,0)=k
先求出在二维情景下的情况,在推广到高纬度

借助复数来求解。在复数中有⟨q,k⟩=Re[qk∗],Re[] 代表复数的实部,所以我们有
在这里插入图片描述
简单起见,我们假设存在复数g(q,k,m−n),使得f(q,m)f∗(k,n)=g(q,k,m−n),然后我们用复数的指数形式,设
RoPE(旋转式位置编码)_第1张图片
那么代入方程后就得到方程组
在这里插入图片描述
RoPE(旋转式位置编码)_第2张图片
RoPE(旋转式位置编码)_第3张图片

推广到高维

RoPE(旋转式位置编码)_第4张图片


另一种理解方法

RoPE(旋转式位置编码)_第5张图片
RoPE(旋转式位置编码)_第6张图片
RoPE(旋转式位置编码)_第7张图片

RoPE(旋转式位置编码)_第8张图片

你可能感兴趣的:(线性代数,算法)