RoFormer: Enhanced Transformer with Rotary Position Embedding
论文的核心贡献
- 提出旋转位置编码 RoPE: 论文不再把位置 embedding 直接加到输入向量上,而是把位置 $m$ 编码成旋转矩阵 $R_{\Theta,m}^{d}$,再作用于 Query 和 Key。这样做的重要性在于,注意力中的 $q_m^\top k_n$ 可以自然转化为依赖相对位置 $n-m$ 的形式,用绝对位置操作得到相对位置效果,避免加法位置编码在内积展开中产生难解释的交叉项。
- 给出 RoPE 的一般高维实现: 对于偶数维隐藏向量,论文把 $d$ 维空间拆成 $d/2$ 个二维子空间,每个二维子空间使用不同频率 $\theta_i$ 做旋转。这个设计让 RoPE 可以用块状二维旋转高效实现,而不是显式构造庞大的稀疏矩阵。
- 分析长距离衰减性质: 论文沿用类似 sinusoidal encoding 的频率设计,并从数学上说明相对距离增大时,旋转后的内积具有震荡衰减趋势。这和语言建模中“距离越远,直接依赖通常越弱”的先验相匹配,也解释了 RoPE 在长序列外推上的设计动机。
- 兼容线性自注意力: 许多相对位置编码需要直接改写 $N \times N$ 注意力矩阵,难以放入先计算 $K^\top V$ 的线性注意力框架。RoPE 把位置信息提前绑定到单个 Query/Key 表示上,因此可以和线性注意力的计算顺序共存。
复杂 Pipeline 深度解析
Figure 1 展示 RoPE 的位置编码机制:每对二维分量按位置旋转,高维 Query/Key 由多个二维旋转块组成,后续内积自然携带相对位置信息。
逐帧图解





文字版补充
- 上面的逐帧图解只对论文原图做淡化、高亮、箭头和编号标注;被高亮区域仍是原论文图像内容。
- 每一帧只解释当前深色区域,浅色区域作为上下文保留,避免在一张复杂图里来回跳读。
- 若原图是概念图、算法伪代码或采样示意,而不是完整工程架构图,本文按辅助视觉证据解读,不把它包装成传统 pipeline。
- 图中没有直接显示的指标、速度倍数、SOTA 结论或数据集细节,仍以论文正文报告为准,不从图解中过度外推。
关键术语
- Rotary Position Embedding (RoPE): 在本文中,RoPE 不是一个查表得到的位置向量,而是一组位置相关的旋转算子。它的目标是让 $f(q,m)$ 与 $f(k,n)$ 的内积直接变成依赖 $m-n$ 的函数。
- Multiplicative position encoding: 指用矩阵乘法注入位置,而不是加法注入位置。乘法形式使位置影响和注意力内积的几何关系更清晰。
- Relative position dependency: 指模型在计算两个 token 的关系时显式感知它们相距多远。RoPE 的特别之处是用绝对位置旋转实现相对位置依赖。
- Long-term decay: 指相对距离增大时,RoPE 诱导的内积贡献呈现衰减趋势。论文把这视为符合自然语言长距离依赖规律的性质。
- Linear self-attention: 指把标准注意力从 $O(N^2)$ 降到近似 $O(N)$ 的注意力变体。RoPE 因为不直接改写注意力矩阵,所以更容易接入这类机制。
Figure 1 之所以是论文核心,是因为它把 RoPE 的全部设计因果串起来了:先把高维 Query/Key 拆成二维子空间,再根据位置旋转,最后通过标准内积自然得到相对位置感知。它解释了论文为什么从加法位置编码转向旋转变换,也说明了 RoPE 与长距离建模、线性注意力兼容性之间的联系。