远程衰减基于一个很朴素的假设。
相对位置编码引入后,相对距离越远,相关性就越弱。
早在2021年,苏剑林分析sin位置编码的时候,就已经有过很不错的探讨了。
https://kexue.fm/archives/8231
本篇笔记对ROPE的远程衰减也尝试做一些有趣的分析。
ROPE的核心公式如下
llama2的实现方式是把query和key分别做旋转,也就是走函数f(x)。因为根据公式,两者相乘就自带相对位置信息了。
但我们观察函数g(x),展开后也就是下面的公式。
$$ \begin{equation} (\boldsymbol{\mathcal{R}}m \boldsymbol{q})^{\top}(\boldsymbol{\mathcal{R}}n \boldsymbol{k}) = \text{Re}\left[\sum{i=0}^{d/2-1}\boldsymbol{q}{[2i:2i+1]}\boldsymbol{k}_{[2i:2i+1]}^* e^{\text{i}(m-n)\theta_i}\right] \end{equation} $$
$$ \begin{equation} (\boldsymbol{\mathcal{R}}m \boldsymbol{q})^{\top}(\boldsymbol{\mathcal{R}}n \boldsymbol{k}) = \text{Re}\left[\sum{i=0}^{d/2-1}|\boldsymbol{q}{[2i:2i+1]}||\boldsymbol{k}{[2i:2i+1]}|e^{\text{i}\theta{i0}}* e^{\text{i}(m-n)\theta_i}\right] \end{equation} $$
$$ \begin{equation} (\boldsymbol{\mathcal{R}}m \boldsymbol{q})^{\top}(\boldsymbol{\mathcal{R}}n \boldsymbol{k}) = \text{Re}\left[\sum{i=0}^{d/2-1}|\boldsymbol{q}{[2i:2i+1]}||\boldsymbol{k}{[2i:2i+1]}|e^{\text{i}[(m-n)\theta_i+\theta{i0}]}\right] \end{equation} $$
注意