[논문 리뷰] ROFORMER: Enhanced Transformer with Rotary Position Embedding

Jumyung Song·2026년 9월 30일

논문 리뷰

목록 보기
5/6

Summary

  • 기존 position embedding 방식들은 token의 상대적인 위치 정보를 context representation에 더해 나가는 방식으로 Linear transformer처럼 연산을 분리하는 방식들과 잘 맞지 않는다.
  • RoPE는 query/key를 위치 mm에 비례한 각도 mθm\theta만큼 회전 시킨다. 회전된 두 벡터의 내적은 상대 위치 m−nm-n에만 의존하므로, 절대 위치로 인코딩했는데 결과적으로 상대 위치가 표현된다.
  • 특히, dd차원을 d/2d/2개의 2차원 subspace로 나눠 각각 다른 속도 θi=10000−2(i−1)/d\theta_i = 10000^{-2(i-1)/d}로 회전시키며, 이 설계 덕분에 거리가 멀어질수록 내적의 상한이 줄어드는 long-term decay 성질이 생긴다.

1. Problem & Motivation

Transformer의 self-attention은 순서에 무관하기 때문에, token의 순서 정보를 따로 넣어 줘야 한다. 순서를 다루는 방식은 모델 계열마다 다르다.

  • RNN 기반: 시간 축을 따라 hidden state를 재귀적으로 계산하면서 순서를 인코딩한다.
  • CNN 기반: 위치 정보가 없어 보이지만, padding을 통해 위치 정보를 암묵적으로 학습할 수 있다는 연구가 있다.
  • PLM 기반: self-attention으로 문맥 표현을 잡지만, 위치 정보는 별도의 position embedding으로 넣어야 한다.

Position embedding은 크게 두 가지이다.

  • Absolute PE: 사전에 정의된 함수 혹은 학습 가능한 vector로 position을 encoding하여 입력에 더하는 방식
  • Relative PE: 두 token 사이의 상대적인 위치 정보를 attention 계산 안에 넣는 방식

문제는 두 방식 모두 위치 정보를 context representation에 더한다는 것이다. 특히 relative PE는 query-key 쌍마다 m−nm-n에 해당하는 항을 따로 더하므로, attention을 ϕ(Q)(ϕ(K)TV)\phi(Q)(\phi(K)^TV)처럼 분해해서 계산하는 linear self-attention과 호환되지 않는다.

이러한 기존 postion embedding의 한계를 개선하기 위해 해당 논문에서는 아래의 특징을 가지는 RoPE(Rotary Position Embedding)을 제시한다.

RoPE는 Rotation matrix를 이용하여 절대적인 위치를 encoding하면서 동시에 self-attention 식 안에서 relative position dependency를 만들고 상대적 거리가 멀어질수록 token간 의존성도 감소한다.

2.1. Absolute Position Embedding

위치 ii에 따라 정해지는 dd차원 벡터 pi∈Rdp_i \in \mathbb{R}^d를 token 표현 xix_i에 직접 더한 뒤 projection한다.

ft:t∈{q,k,v}(xi,i):=Wt:t∈{q,k,v}(xi+pi)f_{t:t \in \{q,k,v\}}(x_i, i) := W_{t:t \in \{q,k,v\}}(x_i + p_i)

pip_i로는 아래의 sinusoidal 함수를 사용한다.

{pi,2t=sin⁡(i/100002t/d)pi,2t+1=cos⁡(i/100002t/d)\begin{cases} p_{i,2t} = \sin\left(i / 10000^{2t/d}\right) \\ p_{i,2t+1} = \cos\left(i / 10000^{2t/d}\right) \end{cases}

이처럼 Absolute position embedding은 encoding된 token xix_i에 positional embedding을 직접 더하는 방식이다.

2.2. Relative Position Embedding

Shaw et al. (2018): key와 value에 학습 가능한 relative position 벡터를 더한다.

fq(xm):=Wqxmfk(xn,n):=Wk(xn+p~rk)fv(xn,n):=Wv(xn+p~rv)r=clip(m−n, rmin⁡, rmax⁡)\begin{aligned} f_q(x_m) &:= W_q x_m \\ f_k(x_n, n) &:= W_k(x_n + \tilde{p}_r^k) \\ f_v(x_n, n) &:= W_v(x_n + \tilde{p}_r^v) \end{aligned} \qquad r = \text{clip}(m-n,\ r_{\min},\ r_{\max})

상대 거리가 일정 범위를 넘어가면 정확한 거리 정보는 의미가 없다고 보고 clip한다.

Dai et al. (Transformer-XL, 2019): absolute PE를 쓴 qmTknq_m^Tk_n을 전개한 뒤 항을 재구성한다.

qmTkn=xmTWqTWkxn+xmTWqTW~kp~m−n+uTWqTWkxn+vTWqTW~kp~m−nq_m^T k_n = x_m^T W_q^T W_k x_n + x_m^T W_q^T \widetilde{W}_k \tilde{p}_{m-n} + u^T W_q^T W_k x_n + v^T W_q^T \widetilde{W}_k \tilde{p}_{m-n}
  • key 쪽 absolute PE pnp_n을 relative 벡터 p~m−n\tilde{p}_{m-n}으로 교체
  • query 쪽 pmp_m은 위치와 무관한 학습 벡터 uu, vv 로 교체
  • 내용 기반 key와 위치 기반 key에 서로 다른 WkW_k, W~k\widetilde{W}_k 사용

이 밖에도 relative PE 변형이 여러 가지 있지만(T5, DeBERTa 등), 공통적으로 attention score 전개식의 각 항에 위치 정보를 어떻게 더할지를 바꾸는 방식이다.

3. Proposed Approach: RoPE

3.1. Formulation

목표는 query와 key의 내적이 상대 위치 m−nm-n에만 의존하도록 만드는 것이다.

⟨fq(xm,m), fk(xn,n)⟩=g(xm,xn,m−n)\langle f_q(x_m, m),\ f_k(x_n, n) \rangle = g(x_m, x_n, m-n)

즉 fqf_q, fkf_k 각각에는 절대 위치 mm, nn을 넣지만, 둘의 내적 결과는 두 token의 내용과 상대 위치로만 결정되게 하는 ff를 찾는 문제다.

3.2. RoPE - 2D case

우선 2D case에 대해 생각하며 이때, 각 vector와 matrix들은 모두 복소수로 생각하면 다음의 해가 3.1.에서 주어진 조건을 만족한다.

fq(xm,m)=(Wqxm) eimθfk(xn,n)=(Wkxn) einθg(xm,xn,m−n)=Re[(Wqxm)(Wkxn)∗ei(m−n)θ]\begin{aligned} f_q(x_m, m) &= (W_q x_m)\, e^{im\theta} \\ f_k(x_n, n) &= (W_k x_n)\, e^{in\theta} \\ g(x_m, x_n, m-n) &= \text{Re}\left[(W_q x_m)(W_k x_n)^* e^{i(m-n)\theta}\right] \end{aligned}

복소수 곱 eimθe^{im\theta}는 2차원 평면에서 mθm\theta만큼 회전하는 것과 같다. 켤레를 취해 곱하면 eimθ⋅e−inθ=ei(m−n)θe^{im\theta} \cdot e^{-in\theta} = e^{i(m-n)\theta}가 되어 절대 위치는 사라지고 상대 위치만 남는다. 행렬로 쓰면 다음과 같다.

f{q,k}(xm,m)=(cos⁡mθ−sin⁡mθsin⁡mθcos⁡mθ)(W{q,k}(11)W{q,k}(12)W{q,k}(21)W{q,k}(22))(xm(1)xm(2))f_{\{q,k\}}(x_m, m) = \begin{pmatrix} \cos m\theta & -\sin m\theta \\ \sin m\theta & \cos m\theta \end{pmatrix} \begin{pmatrix} W^{(11)}_{\{q,k\}} & W^{(12)}_{\{q,k\}} \\ W^{(21)}_{\{q,k\}} & W^{(22)}_{\{q,k\}} \end{pmatrix} \begin{pmatrix} x_m^{(1)} \\ x_m^{(2)} \end{pmatrix}

이때, 주어진 ff는 연산 순서가 중요하다. query/key projection을 먼저 하고, 그 결과에 회전 행렬을 곱하는 것이다.

3.3. RoPE - General Form

3.2에서 2차원에 대하여 해를 찾았기에 해당 아이디어를 dd차원으로 일반화한다. 일반적인 dd차원(dd는 짝수)에서는 dd차원을 d/2d/2개의 2차원 subspace로 나누고, 각 subspace에 서로 다른 각도 θi\theta_i로 2D 회전을 적용한다. 내적은 선형이므로 subspace별 결과를 더하면 된다. dd차원에 대하여 일반화시킨 회전 행렬은 다음과 같이 나타낼 수 있다.

f{q,k}(xm,m)=RΘ,mdW{q,k}xmf_{\{q,k\}}(x_m, m) = R^d_{\Theta, m} W_{\{q,k\}} x_m

RΘ,md=(cos⁡mθ1−sin⁡mθ100⋯00sin⁡mθ1cos⁡mθ100⋯0000cos⁡mθ2−sin⁡mθ2⋯0000sin⁡mθ2cos⁡mθ2⋯00⋮⋮⋮⋮⋱⋮⋮0000⋯cos⁡mθd/2−sin⁡mθd/20000⋯sin⁡mθd/2cos⁡mθd/2)R^d_{\Theta, m} = \begin{pmatrix} \cos m\theta_1 & -\sin m\theta_1 & 0 & 0 & \cdots & 0 & 0 \\ \sin m\theta_1 & \cos m\theta_1 & 0 & 0 & \cdots & 0 & 0 \\ 0 & 0 & \cos m\theta_2 & -\sin m\theta_2 & \cdots & 0 & 0 \\ 0 & 0 & \sin m\theta_2 & \cos m\theta_2 & \cdots & 0 & 0 \\ \vdots & \vdots & \vdots & \vdots & \ddots & \vdots & \vdots \\ 0 & 0 & 0 & 0 & \cdots & \cos m\theta_{d/2} & -\sin m\theta_{d/2} \\ 0 & 0 & 0 & 0 & \cdots & \sin m\theta_{d/2} & \cos m\theta_{d/2} \end{pmatrix}

Θ={θi=10000−2(i−1)/d, i∈[1,2,…,d/2]}\Theta = \left\{\theta_i = 10000^{-2(i-1)/d},\ i \in [1, 2, \dots, d/2]\right\}

위 수식을 직관적으로 표현하면 아래와 같이 나타낼 수 있다.

이처럼 RoPE에서는 한 token 벡터 안에서도 subspace마다 회전 속도가 다르다. θ1=1\theta_1 = 1로 가장 빠르게 회전하는 앞쪽 차원들은 가까운 token 사이의 위치 차이를 민감하게 구분하고, θd/2≈1/10000\theta_{d/2} \approx 1/10000으로 아주 느리게 회전하는 뒤쪽 차원들은 멀리 떨어진 token 사이의 관계를 표현한다.

RoPE를 적용한 attention score를 확인해보면 다음과 같다.

qmTkn=(RΘ,mdWqxm)T(RΘ,ndWkxn)=xmTWqT RΘ,n−md Wkxnq_m^T k_n = \left(R^d_{\Theta, m} W_q x_m\right)^T \left(R^d_{\Theta, n} W_k x_n\right) = x_m^T W_q^T\, R^d_{\Theta, n-m}\, W_k x_n

회전 행렬은 (RΘ,md)TRΘ,nd=RΘ,n−md\left(R^d_{\Theta, m}\right)^T R^d_{\Theta, n} = R^d_{\Theta, n-m}을 만족하므로 Relative position이 명시적으로 드러난다.

이러한 RoPE과 기존 position embedding의 차이는 다음과 가티 정리할 수 있다.

  • Additive vs Multiplicative: 기존 PE는 위치 정보를 더하지만, RoPE는 회전 행렬을 곱한다.
  • Attention score 전개식에 새로운 항을 추가하지 않고도 상대 위치를 표현한다.
  • RΘdR^d_{\Theta}는 직교 행렬이라 벡터의 norm을 바꾸지 않으므로, 위치 인코딩 과정이 학습을 불안정하게 만들지 않는다.

3.4. Properties

RoPE의 대표적인 property는 다음과 같이 두 가지로 정리할 수 있다.

① Long-term decay
θi=10000−2(i−1)/d\theta_i = 10000^{-2(i-1)/d}로 설정하면 상대 거리가 커질수록 내적 값이 감소한다. 멀리 떨어진 token일수록 연관이 약하다는 직관과 맞는 성질이다.

② RoPE with linear attention
Linear attention은 softmax 대신 non-negative feature map ϕ(⋅)\phi(\cdot), φ(⋅)\varphi(\cdot)로 similarity를 계산한다. RoPE는 회전으로 위치 정보를 넣고 hidden representation의 norm을 유지하므로, feature map을 적용한 뒤 회전만 곱하면 linear attention과 결합할 수 있다.

Attention(Q,K,V)m=∑n=1N(RΘ,mdϕ(qm))T(RΘ,ndφ(kn))vn∑n=1Nϕ(qm)Tφ(kn)\text{Attention}(Q, K, V)_m = \frac{\sum_{n=1}^{N} \left(R^d_{\Theta, m}\phi(q_m)\right)^T \left(R^d_{\Theta, n}\varphi(k_n)\right) v_n}{\sum_{n=1}^{N} \phi(q_m)^T \varphi(k_n)}

3.5. Theoretical explanation

Efficient Computation
RΘ,mdR^d_{\Theta, m}은 대부분이 0인 sparse 행렬이기 때문에 일반적인 행렬곱 연산을 하면 낭비되는 연산량이 많아진다.. 대신 element-wise 곱 두 번과 덧셈으로 계산한다.

RΘ,mdx=(x1x2x3x4⋮xd−1xd)⊗(cos⁡mθ1cos⁡mθ1cos⁡mθ2cos⁡mθ2⋮cos⁡mθd/2cos⁡mθd/2)+(−x2x1−x4x3⋮−xdxd−1)⊗(sin⁡mθ1sin⁡mθ1sin⁡mθ2sin⁡mθ2⋮sin⁡mθd/2sin⁡mθd/2)R^d_{\Theta, m} x = \begin{pmatrix} x_1 \\ x_2 \\ x_3 \\ x_4 \\ \vdots \\ x_{d-1} \\ x_d \end{pmatrix} \otimes \begin{pmatrix} \cos m\theta_1 \\ \cos m\theta_1 \\ \cos m\theta_2 \\ \cos m\theta_2 \\ \vdots \\ \cos m\theta_{d/2} \\ \cos m\theta_{d/2} \end{pmatrix} + \begin{pmatrix} -x_2 \\ x_1 \\ -x_4 \\ x_3 \\ \vdots \\ -x_d \\ x_{d-1} \end{pmatrix} \otimes \begin{pmatrix} \sin m\theta_1 \\ \sin m\theta_1 \\ \sin m\theta_2 \\ \sin m\theta_2 \\ \vdots \\ \sin m\theta_{d/2} \\ \sin m\theta_{d/2} \end{pmatrix}

cos⁡\cos, sin⁡\sin 벡터는 위치별로 미리 계산해 둘 수 있으므로, 추가 비용은 O(d)O(d)이다.

Long-term decay
Relative distance에 따른 attention score의 상한을 나타내면 그 관계는 다음과 같이 확인되었다.

그래프에서 확인할 수 있듯이 진동은 있지만 전체적으로 상대 거리가 멀어질수록 상한이 줄어든다. 단, 이는 내적의 상한이 줄어든다는 것이지 실제 attention score가 항상 줄어든다는 뜻은 아니다.

4. Experiments and Evaluation

4.1. Machine translation

해당 task에서는 WMT 2014 English-German으로 sequence-to-sequence 번역을 평가했다. Transformer-base에서 self-attention layer의 position encoding만 RoPE로 바꾸고, 나머지 hyperparameter는 원래 모델과 동일하게 두어 position encoding의 효과를 확인하였다.

4.2. Pre-training language modeling

Contextual representation의 성능을 확인하기 위하여 pre-training loss를 비교하였다. 4.1에서의 model 설정과 비슷하게 기존 sinusoidal position encoding을 RoPE로 바꾼뒤 loss를 비교하였다.

두 경우 모두 RoPE를 쓴 모델이 더 빠르게 수렴하고 더 낮은 loss에 도달한다. 특히, 오른쪽 결과는 linear attention과의 호환성을 실험적으로 보여 준다.

4.3. Fine-tuning on GLUE

Pre-training한 RoFormer를 여러 GLUE task에 fine-tuning하여 성능을 측정하였다.

MRPC, STS-B, QQP에서는 RoFormer가 앞서지만, SST-2, QNLI, MNLI에서는 BERT가 앞선다. 즉, 모든 task에서 일관되게 좋아지지는 않았다.

4.4. Evaluation on Chinese Data

RoPE의 장점이 long text에서 드러나는지 보기 위해 중국어 데이터로 실험을 진행하였다. 성능 측정을 위하여 WoBERT의 absolute position embedding을 RoPE로 바꿔 RoFormer를 만들었다. 또한, tokenization 단위와 position embedding이 다른 모델들과 비교했다.

같은 길이에서는 차이가 작지만, 최대 길이를 1024로 늘린 RoFormer가 가장 좋은 성능을 보였다. 위 결과를 통해 RoPE가 긴 sequence를 다루는 데 유리하다고 볼 수 있다.

5. Conclusion

RoFormer는 query와 key에 위치에 비례한 회전 행렬을 곱하는 RoPE를 제안했다. 절대 위치로 인코딩하지만 두 벡터의 내적은 상대 위치에만 의존하게 되며, attention 식에 새 항을 추가하지 않는 곱셈 방식이라 linear attention에도 그대로 적용할 수 있다. 또한 subspace별 회전 속도를 θi=10000−2(i−1)/d\theta_i = 10000^{-2(i-1)/d}로 두어 거리에 따른 long-term decay를 얻었다. 실험에서는 pre-training 수렴 속도와 긴 문서 task에서 이점을 보였지만, GLUE에서는 task마다 결과가 엇갈렸다.

6. My Take

1. 수식적 장점에 비해 GLUE 결과는 엇갈린다
RoFormer는 수식적으로는 기존 positional embedding보다 효과적인 방법으로 보이지만, GLUE fine-tuning에서는 전반적으로 뚜렷한 우위를 보이지 못했다. 오히려 MNLI(84.6 → 80.2), SST-2, QNLI에서는 BERT보다 낮았다. GLUE의 대부분 task는 문장이 짧아 긴 거리 위치 관계를 잘 다루는 능력이 드러나기 어려운 것으로 보인다. 결과가 좋았던 task는 특정 task가 모델의 일반적인 성능보다 token encoding이나 positional embedding에 특히 민감했기 때문일 수 있다. 즉 positional embedding 방식의 차이만으로는 모델 성능 자체가 크게 달라지지 않았을 가능성이 있다. 반대로 CAIL2019-SCM처럼 입력이 긴 task에서 차이가 드러난 것을 보면, RoPE의 장점은 짧은 문장 이해보다 긴 context 처리에서 나온다고 보는 게 맞는 것 같다.

또한 BERT의 QQP 71.2는 원래 BERT 논문의 GLUE test set F1 값이라, RoFormer의 86.4와 같은 조건(split, metric)에서 비교한 것인지는 논문에서 명확하지 않다. 15점 차이를 그대로 RoPE의 효과로 읽기는 어렵다고 생각한다.

References

  • Su, J., Lu, Y., Pan, S., Murtadha, A., Wen, B., & Liu, Y. (2024). RoFormer: Enhanced Transformer with Rotary Position Embedding. Neurocomputing. arXiv:2104.09864
  • Vaswani, A. et al. (2017). Attention Is All You Need. arXiv:1706.03762
  • Shaw, P., Uszkoreit, J., & Vaswani, A. (2018). Self-Attention with Relative Position Representations. arXiv:1803.02155
  • Dai, Z. et al. (2019). Transformer-XL: Attentive Language Models Beyond a Fixed-Length Context. arXiv:1901.02860
  • Devlin, J. et al. (2019). BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding. arXiv:1810.04805

0개의 댓글