之前在看苏老师 RoPE 相关文章时, 本来是想含含糊糊囫囵吞枣的过去, 但后来发现这些东西细节不掌握, 对后面理解长度外推这些东西更迷糊. 所以还是静下心, 重新整理下 RoPE 相关的知识点. 在整理的时候发现苏老师的文章布局太清晰, 我如果对此做任何调整都是画蛇添足… 所以就以如下 3 篇文章为顺序, 对文章中一些点进入深入展开吧.
博采众长的旋转式位置编码
Q: 求解过程在求什么?
A: 在阅读这个求解过程之前, 首先要明白我们要做什么: 我们是想要找到一个映射 $f(q: \mathbb{R}^d, p: \mathbb{N}) \to \tilde{q}: \mathbb{R}^d$, 这里列向量 q 对应着 Q, K; p 为 Q, K 对应位置. 另外我们可以只是想找到一个能用的映射 $f$, 并不需要找到其一般解, 所以可以在寻找时大胆假设.
Q: 公式 (6) 的解释.
A: 对于 $z = a + b \text{i}$ 的指数表示 $re^{\text{i} \theta}$, 这里 r 是 z 的模, $\theta$ 是 z 的幅角. $f(q, 0) = q = R_f(q, 0) e^{\text{i} \Theta_f(q, 0)}$, 此时 $R_f(q, 0)$ 是 $q$ 的模, $\Theta_f(q, 0)$ 是 $q$ 的幅角.
$\Theta_f (\boldsymbol{q}, 0) = \Theta (\boldsymbol{q}) + \varphi(0) = \Theta (\boldsymbol{q})$, 所以 $\varphi(0) = 0$.
Q: 公式 (9) 的解释.
A: $f(q, m) = \Vert q \Vert e^{\text{i} (\Theta(q) + m \theta)} = \Vert q \Vert e^{\text{i} \Theta(q)} e^ {\text{i}(m \theta)}$, 这里 $\Vert q \Vert e^{\text{i} \Theta(q)}$ 为 $q$. 所以 $f(q,m) = q e^ {\text{i}(m \theta)}$
Q: 公式 (10) 的解释:
A: 这里令 $q = q_0 + q_1 \text{i}, e^{im \theta} = \cos(m\theta) + \text{i} \sin(m \theta)$ 可以推导出来.
Q: $R_m^T R_n = R_{m - n}$ ?
A: 可以以 $R_m$ 为公式 (10) 中的情况算一下就行, 记得利用下 cos/sin 的和差公式.
Q: 都是直接基于Attention矩阵进行操作的,但是线性Attention并没有事先算出Attention矩阵
A: 这里 Attentaion 矩阵应该是指 $Q K^T \in R^{n \times n}$. 在线形 attention 中是先算了 $(K^T V)$, 之后 $Q (K^T V)$.
二维位置的旋转式位置编码
Q: 矩阵映射才是复数域的完全同构.
A: 矩阵与复数的关系, 我之前在学习 线性代数(9): 矩阵微积分(3) 也有过意识:
矩阵级数, 这里我们可以参考我们之前在学习 Tao 15.6 复数时为复数级数建立的一系列概念. 从级数角度来看矩阵与复数确实好像.
Q: 公式 (13) 的理解.
A: 见 线性代数(9): 矩阵微积分(5), 才发现我当时证明这一定理时也是参考复数级数证明的:
参考我们在 Tao 习题 15.6.16 我们证明复数 exp(z+w) = exp(z)exp(w) 的例子.
Q: 公式 (14) 的理解.
A: 首先基于 定理 5, 9.3.zy3 可知矩阵级数 $e^A = \sum_{k=0}^{\infty}\frac{A^k}{k!}$ 绝对收敛, 且 Tao 定理 8.2.2 关于无限和的富比尼定理对于矩阵级数也成立. 即矩阵级数求和时可以任意交换次序.
之后结合 陶哲轩实分析: 再看三角函数 了解三角函数的级数定义:
\[\begin{align} \cos(z) &= 1 - \frac{z^2}{2!} + \frac{z^4}{4!} - \cdots = \sum_{n=0}^{\infty} \frac{(-1)^n z^{2n}}{(2n)!} \\ \sin(z) &= z - \frac{z^3}{3!} + \frac{z^5}{5!} - \cdots = \sum_{n=0}^{\infty} \frac{(-1)^n z^{2n+1}}{(2n+1)!} \end{align}\]就可以很容易求出来了.
Q: 对于任何满足 $\boldsymbol{B}^{\top} + \boldsymbol{B} = 0$ 的矩阵 $\boldsymbol{B}$, $\exp n\boldsymbol{B}$ 都是方程 (2) 的解,并且还可以证明它一定是正交矩阵.
A: 这里 ‘它一定是正交矩阵’ 中的它是指 $\exp nB$, 我一开始以为是指 B..
旋转位置编码的完备性分析
Q: 设 $O$ 是正交矩阵, 证明 $(O^m)^{\top} O^n = O^{n-m}$.
A: 我一开始想着:
\[(O^m)^{\top} O^n = (O^{\top})^m O^n = (O^{-1})^m O^n = O^{-m} O^{n} = O^{n - m}\]然后意识到这里 $^{-1}$ 是表示逆矩阵, 并不是次幂! $O^{-m}$ 没啥意义. 再回到 $(O^{-1})^m O^n$:
\[\underbrace{\boldsymbol{O}^{-1} \boldsymbol{O}^{-1} \cdots \boldsymbol{O}^{-1}}_m \underbrace{\boldsymbol{O} \boldsymbol{O} \cdots \boldsymbol{O}}_n\]别忘了 $O^{-1} O = I$, 可得 $(O^{-1})^m O^n = O^{n - m}$.
后记
苏神老师的文章完全命中了我 “说清楚一个问题然后解决这个问题” 的 G 点, 真羡慕 kimi 的同事身边有个真神!