카테고리 없음

[2026-1] 박승원 - RoFormer: Enhanced Transformer with Rotary Position Embedding

seungwonFromSeoul 2026. 2. 27. 14:02

논문 정보

게재 학술지: Neurocomputing, Volume 568, 1 February 2024, 127063

저자: (Zhuiyi Technology)Jainlin Su, Murtadha Ahmed, Yu Lu, Shengfeng Pan, Wen Bo, Yunfeng Liu

https://arxiv.org/abs/2104.09864

 

RoFormer: Enhanced Transformer with Rotary Position Embedding

Position encoding recently has shown effective in the transformer architecture. It enables valuable supervision for dependency modeling between elements at different positions of the sequence. In this paper, we first investigate various methods to integrat

arxiv.org

 

Abstract

이 논문에서는 위치 정보를 트랜스포머 기반 모델의 학습 과정에 통합시키는 과정을 연구하고, 위치 정보를 효과적으로 사용할 수 있게 해주는 Rotary Position Embedding(RoPE) 기법을 제안한다. RoPE는 회전 행렬을 이용해 절대적(absolute) 위치를 인코딩하면서 셀프 어텐션에서 토큰 간의 상대적 의존 관계도 인코딩한다. RoPE는 문장 길이에 관계 없이 사용할 수 있으며, 토큰 간 상대적 거리가 멀어질 수록 중요도가 감소하는 성질을 보이고, 선형 셀프 어텐션(linear self attention)에 상대적(relative) 위치 인코딩을 적용할 수 있는 능력이 있다. 마지막으로 Transformer에 RoPE를 적용하여(RoFormer) 여러가지 long text classification 벤치마크에 대해 평가함.

 

Introduction

Transformer 이외 모델들의 위치 정보 인코딩 방식

  • RNN(Recurrent Neural Network): 토큰을 시간 순서대로 입력
  • CNN(Convolutional Neural Network): 위치 정보에 의존하지 않으나, 최근 Islam et al.[2020]의 연구에 따르면 Padding 연산으로 내재적인 위치 정보를 배울 수 있다고 함.
  • PLM(Pretrained Language Models) built upon the transformer: Self attention은 위치 정보를 고려하지 않음. 따라서 여러 연구에서 토큰의 절대적(absolute) 위치 정보 주입이나 토큰 간 상대 거리를 이용한 상대적(relative) 위치 정보를 주입하는 방법을 시도해봄. 효과적인 방법들임에도 불구하고, 문맥 정보에 단순히 위치 정보를 더하는 방식 때문에 linear self attention에 적용하기에 어려움.
    • 시도한 절대적 위치 인코딩 방식: 미리 정의된 함수를 이용해 위치 정보를 생성하고 contextual representation에 더하는 방식(Vaswani), 학습가능한 절대적 위치 인코딩 방식(Gehring, Devlin, Lan, Clark, Radford, Radford and Narasimhan)
    • 시도한 상대적 위치 인코딩 방식들: (Parikh, Shaw, Huang, Dai, Yang, Raffel, Ke, He, Huang)
    • 시도한 기타 위치 인코딩 방식들: Neural ODE(Liu), Complex space(복소수 공간)에서의 위치 정보 인코딩(Chen, Wang)

RoPE는 PLMs의 학습 과정에 위치 정보가 효과적으로 통합되도록 하고, 회전 행렬을 이용해 절대적 위치를 인코딩하면서도 self attention에서 상대적 위치 의존성을 잘 응용한다. 또한, 문장 길이에 영향을 받지 않으며, 토큰 간 거리가 멀어질수록 토큰 간 의존성이 서서히 감소하는 성질을 보이고, linear self attention에 상대적 위치 인코딩을 적용할 수 있는 능력을 갖는다. 

 

Background and Related Work

Preliminary

Self attention은 먼저 내용 임베딩에 위치 정보를 포함시키고, 그 다음에 queries, keys, values로 분해시킨다.

(1)

이후에 쿼리, 키, 벨류를 이용하여 attention weights를 계산하고, output은 value 벡터들에 대해 가중치를 곱한 가중합으로 표현된다.

(2)

기존의 많은 위치 인코딩 연구들은 위치 정보가 포함된 토큰 표현을 바탕으로 Q, K, V를 생성하는 함수(1)에 대해 연구한 것이었음.

Absolute position embedding

전형적인 (1)번 함수의 형태는 다음과 같다.

(3)

단순히 내용 임베딩에 위치 정보를 더한 후 가중치를 곱하는 형태.

Vaswani는 이 위치 정보 $p_i$를 sinusoidal 함수를 통해 생성했음.

(4)

RoPE는 sinusoidal function을 곱함으로써 상대적 위치 정보도 포함함.

 

Relative position embedding

Shaw는 (1)의 함수를 다음과 같이 변형

(5)

 

쿼리는 가중치 x 내용 임베딩, 키와 벨류는 가중치 x (내용 임베딩 + 상대적 위치 정보) 형태.

Dai는 (3)의 내용 임베딩 + 절대적 위치 정보 형태를 유지하면서 (2)의 형태를 분해함.

(6)

그리고 key와 value의 절대 위치 정보인 $p_n$을 상대 위치 정보인 $\tilde{p}_{m-n}$로 대체하고, query의 절대 위치인 $p_m$은 query의 위치와 독립적인 u와 v의 벡터로 대체시킴(query와 상관 없이 key인 $x_n$에 대해 동일하게 적용됨). $W_k$도 내용 임베딩에 관한 가중치와 위치 임베딩에 관한 가중치를 분리하여 각각 $W_k$, $\tilde{W}_k$가 됨. 

(7)

이렇게 표현하면 첫번째 항은 content-content, 두번째 항은 content-position, 세번째 항은 global content bias, 네번째 항은 global position bias가 됨.

  • 세번째 항이 global content bias가 되는 이유: query의 위치 임베딩인 $p_m$이 query와 무관한 벡터 u로 변환되면서 쿼리의 영향력을 계산하는 것이 아니라, key의 내용 임베딩인 $x_m$의 전반적인 content 선호도가 계산됨.
  • 네번째 항이 global position bias가 되는 이유: 쿼리나 키의 내용 임베딩인 $x_m$, $x_n$이 없고, 단순히 토큰 간 상대거리에 따른 중요도를 학습하는 항이 됨. 

(7) 식은 query와 key를 이용해 attention score를 계산하는 부분인데, 이 부분에서는 key에 상대적인 위치를 주입하지만, 이후 output을 계산하는 부분에서는 굳이 relative distance 정보를 주입하지 않아도 됨. key는 어디를 볼 지를 결정하는 것이기에 위치가 중요하지만, value는 key로 찾은 값을 가져오는 것이기에 value에도 위치 정보를 주입할 필요는 없음.

 

Raffel은 (6)의 식에서 첫번째 항인 content-content 부분만 남기고 학습가능한 bias를 더하는 형태로 재구성함.

(8)

 

이후 Raffel은 내용 임베딩과 위치 임베딩을 서로 다른 projection matrices pair를 이용해 계산하는 방법도 고안해냄.

(9)

 

He는 두 토큰의 상대적 관계는 (6)의 두번째, 세번째 항을 이용해서만 완전히 모델링 할 수 있다고 주장하며, $p_m$과 $p_n$를 상대적 위치인 $\tilde{p}_{m-n}$으로 대체함. -> 다른 방법들 중 가장 효과적임.

(10

위의 모든 상대적 위치 인코딩 방식들은 (3)의 공식을 (6)으로 분해한 것에서 도출되었다. 

(3)
(6)

그러나 RoPE는 몇 가지 제약 조건 하의 (1)의 식에서 상대적 위치 인코딩 방식을 도출해냄. 

(1)

 

 

Proposed approach

쿼리와 키의 내적은 다른 위치에 존재하는 토큰 간의 정보를 담을 수 있게 한다. 이때, 상대적인 위치 정보를 포함하려면 쿼리와 키의 내적이 내용 임베딩 $x_m$과 $x_n$, 상대 위치 $m-n$만을 입력 변수로 갖는 함수 g로 구성되어야 한다.

(11)

 

이를 만족하는 f 함수를 찾는 것이 목표.

 

Rotary position embedding

A 2D case

2차원 평면에서 벡터의 기하학적 성질과 벡터의 복소수 형태를 이용하여 다음과 같이 (11)의 식을 재구성.

(12)

$W_qx_m$은 projected 내용 임베딩, $e^{im\theta}$는 위치에 따른 복소수 회전

세번째 줄은 쿼리와 키의 내적(attention score)을 설명하는 부분이고, 이를 복소수 내적의 형태로 적으면 다음과 같음.(복소수 공간에서의 내적: $ \langle z, w \rangle = \sum_i z_i w_i^{\ast}$ -> 복소수 내적에서 켤레 복소수로 곱하는 이유는 같은 복소수의 내적이 양수가 되어야 하는 성질을 만족시켜야 하기 때문.)

$\langle f_q(x_m,m), f_k(x_n,n) \rangle=(W_q x_m)e^{im\theta} \cdot \left((W_k x_n)e^{in\theta}\right)^*$

이때, $(e^{in\theta})^* = e^{-in\theta}$이므로 $e^{im\theta} e^{-in\theta} = e^{i(m-n)\theta}$와 같아짐.

*의 의미는 켤레복소수(complex conjugate)

덕분에 두 토큰의 위치 차이 $m-n$에 따라 회전하는 형태를 띠게 됨.

마지막으로, 복소수 내적의 결과는 주로 복소수가 되므로, attention 계산을 위해서 실수 부분만 취함(Re[] 함수는 실수부분만 취하겠다는 뜻).

$\theta$는 미리 정의한 0이 아닌 상수.

 

$f_{q,k}$를 행렬 곱으로 나타내면 다음과 같아짐. 쿼리든 키든 아래 행렬 곱으로 연산됨.

(13)

$x_m$을 2차원 좌표로 나눈 형태.

유사하게, g는 행렬로 볼 수 있고, 2D 조건 하에서 (13)의 형태를 가능하게 한다.

복소수 곱의 형태: $\phi = (m-n)\theta)$일 때, $e^{i(m-n)\theta} = \cos\phi + i\sin\phi$. 

이를 실수 2D 공간으로 바꾸면 다음과 같이 됨.

$R(\phi) = \begin{pmatrix} \cos\phi & -\sin\phi \\ \sin\phi & \cos\phi \end{pmatrix}$(R은 회전 행렬).

결국 복소수 공간의 임의의 벡터 $z e^{i\phi}$는 실수 공간에서 다음과 같은 형태로 표현할 수 있음.

$R(\phi) \begin{pmatrix} x_1 \\ x_2 \end{pmatrix}$

 

RoPE의 핵심 아이디어는 토큰 벡터를 선형 변환한 후, 이를 위치에 따라 일정한 각도로 회전시키면 상대적 위치 정보가 반영된다는 것임. 

 

 

General Form

2D에서 더 넓은 차원으로 확장시키기 위해서, d-dimension을 d/2 부분 공간으로 나누고, 내적의 선형성을 이용해 결합함.

(14)
(15)

 

$\theta$는 이미 정의된 변수로, 다음과 같은 값을 가짐. sinusoidal positional encoding과 동일한 주파수 스케줄 사용.

($x_1, x_2$)i가 작으면 $\theta$는 커서 회전이 빠름. -> 고주파, 짧은 거리 차이에 민감

($x_{m-1}, x_m$)i가 크면 $\theta$는 작아서 회전이 느림. -> 저주파, 긴 거리 관계 포착

 

Self attention에 RoPE를 적용하면 다음과 같은 식을 얻을 수 있음.

(16)

 

그러나 회전 행렬의 sparsity 때문에 (16)의 식에 있는 행렬 연산을 바로 수행하는 것은 효율적이지 않기 때문에, 다른 방식을 사용함.(Section 3.4.2에서 설명)

 

RoPE는 additive하게 위치 정보를 주입하는 다른 방식들과 달리 multiplicative하게 위치 정보를 주입하고, 회전 행렬을 사용하기 때문에 additive 방식으로 위치 정보를 주입하는 방식들이 상대적 위치 정보를 인코딩 하기 위해 전개된 항을 조절해야 하는 것과 달리 자연스럽게 상대적 위치 정보를 인코딩한다.

 

Properties of RoPE

Long-term decay

Vaswani가 transformer에서 처음 적용했던 sinusoidal function을 RoPE에도 적용하기 때문에 long-term decay 현상이 일어난다. Long-term decay는 상대적 위치가 증가할 수록 내적이 감소할 것이라는 뜻이다. 이 특성은 먼 상대 거리를 가지는 쌍의 토큰들은 더 적은 연결을 가지도록 한다.

 

RoPE with linear attention

Self attention의 general form 공식은 다음과 같음.

(17)

이때, original self attention은 query와 key간 similarity를 다음과 같이 계산함.

따라서 모든 토큰 쌍에 대해서 query와 key 내적을 계산해야 함. 이는 O(N^2)의 계산 복잡도를 가짐.

 

Katharopoulos는 계산 효율성을 개선하고자 이 식을 변형하여 linear self attention 형태로 만듦.

(18)

이를 통해서 모든 토큰 쌍에 대해서 query와 key 내적을 하는 것이 아니라, key와 value의 내적의 합을 전부 계산한 후 마지막으로 query와 한 번만 내적하면 되므로 계산 효율성이 O(N)이 됨.

 

Linear self attention에 RoPE를 적용하면 다음 식이 됨.

(19)

0으로 나누는 일이 없게끔 분모는 rotation을 적용하지 않고, 분자에만 rotation을 적용함.

그래도 괜찮은 이유는 rotation이 직교 변환이기 때문에 norm이나 scale 자체를 변환시키지 않고, linear attention에서의 분모는 단순한 정규화 항이기 때문에 softmax에서처럼 확률분포 형태가 되어야 하는 것은 아님.

 

3.4 Theoretical Explanation

3.4.1 Derivation of RoPE under 2D

계산 과정의 전개이므로 설명 생략.

3.4.2 Computational efficient realization of rotary matrix multiplication

회전 행렬의 희소성을 이용하여 다음과 같은 식으로 재정리.

(34)

3.4.3 Long-term decay of RoPE

RoPE의 내적을 복소수 형태로 표현하면 다음과 같음.

(35)

$h_i=q_{[2i:2i+1]}k*_{[2i:2i+1]}e^{i(m-n)\theta}$, $S_j=\sum_{i=0}^{j-1}e^{i(m-n)\theta_i}$일 때, Abel transformation을 이용하여 식을 재구성.

(36)

 

(37)

attention score는 사실상 $|S_{i+1}|$로 결정되는데, 상대 거리인 m-n의 값이 커지면 i가 조금만 커져도 벡터의 방향이 급격하게 변하기 때문에 벡터의 합이 점차 작아짐. 따라서 상대 거리가 먼 토큰은 약한 연결을 갖는다고 말할 수 있는 것.

 

Experiments and Evaluation

1. Machine Translation task에 대해서 성능 측정

2. Pre-training 단계에서 BERT에 RoPE를 적용한 것 성능 측정

3. GLUE benchmark의 다양한 downstream task에 대해서 성능 측정

4. Linear attention에 RoPE를 적용하여 실험

5. 중국어 데이터로 추가 시험

 

Machine Translation

4.5 million 문장 쌍으로 구성된 WMT 2014 English-German dataset을 이용.

WMT 2014 English-German

Vaswani의 transformer based baseline과 성능 비교.

Baseline 모델에서 self-attention layer에 RoPE를 적용.

Pre-training Langauge Modeling

문맥에 따라 달라지는 단어 표현 벡터의 성능을 측정하기 위한 실험. BERT의 sinusoidal position encoding을 RoPE로 대체.

BookCorpus(영어 소설 모음)와 Wikipedia Corpus Foundation(위키피디아 전체 문서를 텍스트로 추출) 데이터셋 사용.

BERT Devlin 모델을 baseline 모델로 사용.

학습 중 Masked Language Modeling(MSM) loss를 평가 지표로 삼음.

RoPE를 사용한 버전이 더 수렴이 빠름.

 

 

Fine-tuning on GLUE tasks

Downstream tasks에 대해 일반화 성능을 보기 위해서 GLUE tasks에 대해서도 실험 수행.

MRPC(두 문장이 의미적으로 같은지), SST-2(문장의 감정 분석), QNLI(질문과 문장이 주어졌을 때, 문장이 질문의 정답을 포함하고 있는지), STS-B(두 문장이 얼마나 의미적으로 비슷한지, regression), QQP(두 질문이 같은 의미를 갖는지), MNLI(전제와 가설이 어떻게 관계되어 있는지 3 class classification) 데이터셋에 대해 실험.

3/6개의 task에서 상당한 성능 향상이 있었음.

 

Performer with RoPE

PerFormer는 linear attention을 활용하여 연산속도를 개선한 Transformer 모델.

Enwik8 dataset(Wikipedia 덤프에서 추출한 첫 100MB 텍스트를 그대로 사용하는 character-level modeling dataset)에서 test.

 

수렴이 더 빨랐으며, 같은 train step에서 더 낮은 loss를 기록함.

 

Evaluation on Chinese Data

추가적으로 중국어 데이터에 대해서도 실험.

 

먼저, Long context에 대한 RoFormer의 성능을 측정하기 위해 단어 길이가 512가 넘는 긴 문장에 대해서 실험을 수행.

Baseline 모델인 WoBERT에서 absolute position embedding을 RoPE로 대체.

BERT Devlin, WoBERT, NEZHA 모델들과 비교.

 

Chinese Wikepdia, news, forums에서 모은 34GB의 데이터로 pre-train.

Max Sequence Length를 늘릴 수록 정확도가 더 올라갔음. 따라서 RoFormer는 긴 문장을 잘 다룬다는 것을 알 수 있음.

 

중국어 downstream tasks에 대해서도 실험.

Chinese AI and Law 2019 Similar Case Matching 데이터셋 사용.

Case가 A, B, C 주어졌을 때 A와 B가 유사한지, A와 C가 유사한지 맞히는 문제.

Long context RoFormer가 더 좋은 성능을 보여줬음.

Limitations

1. 수학적인 증명을 통해서 2D sub space에서 상대적 위치 관계를 회전으로 정리하기는 했지만, 왜 다른 베이스라인 모델보다 빠르게 수렴하는지 증명하지 못했음.

2. RoPE는 long-term decay을 갖는다는 것을 증명했지만, 비슷한 현상을 보여주는 다른 위치 임베딩 모델보다 왜 더 나은 성능을 보여주는지 증명하지 못했음.

3. Transforme 베이스로 만들어졌기에 사전학습 떄 큰 하드웨어 자원이 필요함.

Conclusions

명시적인 상대적 위치 의존성을 포함하는 새로운 위치 임베딩 방식 개발. 절대적 위치 임베딩의 회전 변환을 통해서 self attention에서 상대 위치 정보를 인코딩할 수 있다는 사실을 밝혀냄. 영어와 중국어 데이터에서 RoPE를 사용한 결과 더 빠른 수렴과 몇몇 task에서 더 나은 성능을 보임. 또한, RoFormer가 긴 문장을 다루는 문제들에서 더 좋은 성적을 보였음.

 

 

 

참고 자료

https://blog.eleuther.ai/rotary-embeddings/

 

Rotary Embeddings: A Relative Revolution

Rotary Positional Embedding (RoPE) is a new type of position encoding that unifies absolute and relative approaches. We put it to the test.

blog.eleuther.ai