2021년에 발표된 RoFormer: Enhanced Transformer with Rotary Position Embedding
논문을 바탕으로 작성된 리뷰입니다. (Jianlin Su, Yu Lu, Shengfeng Pan, Ahmed Murtadha, Bo Wen and Yunfeng Liu)
Abstract
효율적인 Transformer architecture을 위해 Position encoding이 중요하다. (sequence의 different position에 대한 의존성 modeling)
1) Transformer-based language models의 학습과정에 필요한 positional information에 대한 다양한 방법을 조사하였다.
2) Rotary Position Embedding(RoPE)라는 새로운 방법 제시 - rotation matrix를 활용해 absolute position을 encode하고, self-attention formulation에서 relative position 의존성도 포함한다. RoPE는 시퀀스 길이의 유연성, 상대적 거리 증가에 따른 토큰 간 의존성 감소, relative position encoding으로 linear self-attention 만족시키기 등의 valuable properties를 가능하게 한다.
3) RoPE를 반영한 Roformer를 다양한 long-text classification으로 평가하였다. 또한 이론적 분석을 통해 실험 결과를 설명할 수 있도록 하였다.
Introduction
RNN-based model : time dimension을 따라 반복적으로 hidden state를 계산하여 token의 순서를 encoding
CNN-based model : padding operation은 position information을 암묵적으로 사용한다.
Pre-trained language models : transformer 기반으로 context representation learning, machine translation, language modeling 등의 NLP tasks에서 좋은 성능을 보이고 있다.
- 이전 모델들과 다르게 self-attention mechanism을 활용하여 주어진 corpus의 contextual representation을 문맥적으로 capture한다. → parallelization & longer intra-token relations
- self-attention architecture은 position과 상관없어서 다양한 접근법으로 학습 과정에 position 정보를 encoding하고자 했다.
(trainable absolute position encoding, relative position encoding, Neural ODE 관점에서 position encoding의 의존성 등)
→ linear self-attention 구조에 적합하지 않았다.
Pre-trained language model의 학습 과정에 positional 정보를 제공하는 Rotary Position Embedding(RoPE) 방법 제안!
→ rotation matrix를 활용하여 absolute position encoding & self-attention formulation에서 relative position dependency 포함
[3가지 contributions]
- Context representations에 position encoding을 추가하는 분해 과정을 바탕으로 한 relative position encoding에 대한 선행 접근들을 조사하였다. RoPE라는 방법을 통해 PLM의 학습 과정에 positional 정보를 포함시키고자 하였는데, 핵심 아이디어는 rotation matrix를 활용한 context representation을 곱셈 연산을 통해 relative position을 encoding하는 것이다.
- RoPE의 relative distance 증가에 따른 decay 등의 특성들을 연구하였다.
- 다양한 long-text benchmark dataset에 대해 RoFormer을 평가하였다.
Background and Related Work
Preliminary
$\mathbb{S}N=\left{w_i\right}{i=1}^N$가 $w_i$로 구성된 N개의 input token들의 sequence이다.
$\mathbb{E}N=\left{x_i\right}{i=1}^N$은 sequence에 대응되는 word embedding이고, $x_i$는 position 정보 없이 $w_i$ token의 d-dimensional word embedding vector이다.
self-attention은 먼저 word embedding에 position 정보를 포함시키고, query, key, value 표현으로 변형시킨다. query와 key value는 attention weights를 계산하는데 사용되고, output은 value representation을 넘어서 weighted sum을 계산한다.
transformer-based position encoding 접근은 이를 만족하는 가장 적합한 함수를 찾는 것에 집중한다.
Absolute position embedding
$p_i$는 $x_i$ token의 position에 영향받는 d-dimensional vector이다.
Trainable vectors 집합에 속한 $p_i$를 sinusoidal function을 사용하여 생성한다.
$p_{i,2t}$ : d-dimensional vector $p_i$$p_{i,2t}$$2t^{th}$번째 원소
⇒ RoPE의 sinusoidal function 관점과 연관되어 있다.
⇒ RoPE는 position을 context representation에 바로 더하는 것 대신에 sinusoidal function을 활용한 곱셈으로 relative position 정보를 포함시킬 것을 제안한다.
- BERT, RoBERTa, GPT-1, GPT-2, ALBERT 등의 모델에서는 layer별로 position embedding 정보를 부여하는 것이 아니라 input embedding에 해당 position embedding 또는 encoding을 직접 더해주는 방식으로 구현되어있다.
- trainable vector을 사용하는 경우도 있고(BERT) sinusoid funciton과 같은 pre-defined function을 사용하는 경우(transformer)도 있다.
Relative position embedding
Key, Query, Value에 대하여, 아래와 같이 trainable positional embeddings를 정의하였다. Query와 Key의 내적 곱을 구할 때 relative positional 정보를 반영하여 model 에 적용한다.
- $\tilde{\boldsymbol{p}}_r^k, \tilde{\boldsymbol{p}}_r^v \in \mathbb{R}^d$ - trainable relative position embeddings
- $r$ = clip(m-n, $r_{min}, r_{max})$ - position m과 n사이의 relative distance를 나타낸다. 정확한 relative position 정보가 특정 거리 이상에서는 유용하지 않다는 가설을 바탕으로 clip했다. (Shaw_RPE) 참고로, T5 같은 경우에는 clip 하여 같은 값으로 두는 것이 아닌, 최대 offset 까지 log-scale 로 값을 증가시켰다.
위의 식은 $\boldsymbol{q}_m^{\top} \boldsymbol{k}_n$ 을 decompose한 식이다.
key idea : absolute position embedding $p_n$을 sinusoid-encoded relative counterpart인 $\tilde{\boldsymbol{p}}_{m-n}$로교체하는 것이다.
Trainable vectors인 u와 v는 query positions과 독립적이다.
$W_k$는 content-based key vectors($x_n$)와 location-based key vectors($p_n$)와 구별된다.
value항의 position 정보는 $f_v\left(\boldsymbol{x}_j\right):=\boldsymbol{W}_v \boldsymbol{x}_j$에 의해 제거된다. 이후에 relative position 정보를 attention weights로 encoding하는 것으로 설정하였다.
$b_{i,j}$ : trainable bias
위와 같이 다른 projection matrices를 사용하여 단어 쌍이나 position을 제공할 것을 제안하기도 하였다.
2개의 token의 relative position은 (6) 식의 가운데 2개의 항만 이용해서 fully modeling할 수 있다. 따라서 Absolute position embeddings은 relative position embedding $\tilde{\boldsymbol{p}}_{m-n}$으로 단순히 교체될 수 있다.
모델 layer마다 position embedding이 Self-Attention module에서 주입된다.
APE와 같이 Multi-head Self-Attention, Feed Forward에 position embedding이 주입되는 것이 아니라, Input 단계에서 position embedding을 변화시킨다.
RPE 예시
- Self-Attention with Relative Position Representations Music Transformer → 이후 skewing으로 RPE 메모리 효율 개선
- Transformer-XL : Self-Attention 수식을 분해하여 기존 RPE를 분석하고 새로운 RPE를 제안하였다. Query에는 별도 Position Encoding을 하지 않고 Value에서는 Position 정보를 활용하지 않는다.
content-to-content(일반적인 attention값) / content-to-position / position-to-content / position-to-position
- T5(Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer) : content-to-content 항 이외의 항들을 전부 다 trainable term으로 만들었다.
- TUPE(Transformer with Untied Positional Encoding): APE를 더하는 것은 불필요한 random만을 주입시켜 표현력에 한계를 부여하고 서로 다른 정보 resource에 mixed correlation만 발생한다. Word Embedding과 Position Embedding을 더하는 것은 이상하다고 주장한다.
- DeBERTa(Decoding-Enhanced BERT with dis-entangled attention) : Query에 대한 position-to-content 항도 중요하다.
Attention 계산 시 Content 와 Relative Position 둘 다 반영된disentangled matrices
를 사용하여 연산한다.
(Comparison of RPE)
Additive 기반 방식이다!
Proposed approach
Formulation
Transformer-based language modeling : 개별 token의 position 정보를 self-attention mechanism을 통해 포함시킨다.
최종 목표 : 함수 $f_q(x_m, m)$과 $f_k(x_n,n)$의 내적 곱과 동등한 encoding mechanism를 표현하는, position 정보를 넣지 않은 상태에서 상대 거리에 대한 함수 g를 찾는 것. 함수는 query, key tensor에 어떻게 position 정보를 줄 것인지에 대한 함수이다.
어떻게 g를 정의할까?
→ 이전 RPE 방식에서는 g 함수가 additive 기반!
→ 이 논문에서는 g 함수가 multiplicative 기반!
Rotary postiion embedding
2D plane의 Geometric property를 사용하였다. Token embedding을 complex form으로 mapping!
f를 위와 같이 Multiplication Matrix 형태로 바꿔서 써보면, 간단하게 각도 m 배 만큼 회전한 affine-transformed word embedding vector
로 해석할 수 있다.
Radial은 position에 따라 변하지 않고, Angular은 query와 key에 따라 변하지 않는다.
Rotation matrix는 orthogonal하기 때문에 안정적인 position 정보 encoding이 가능하다. 내적 곱의 최종 형태에서 알 수 있듯이 position 정보가 곱해졌다.
d-dimension을 d/2 sub space로 나눠 2개 dimension 마다 일정한 angle 만큼 회전 시켜서 Position 정보를 담는다.
RoPE는 additive position encoding의 확장된 formulation에서 항들을 대체하는 것 대신에 rotation matrix product를 사용한다.
RoPE의 역할
- token embedding → complex number로
- position → token embedding을 rotation시킨 값으로
Q : tensor를 회전시키면 좌표(절대 위치)가 달라진다. 회전시킨 두 tensor의 내적 값은 어떻게 달라질까?
→ query와 key를 같은 각도로 회전시키면 둘 사이의 각도(상대 거리)는 유지되지만 절대적인 위치 정보는 내적의 성질때문에 유지되지 않는다.
APE는 내적의 성질때문에 회전시킬 경우 절대적인 위치 정보가 유지되지 않지만, 각도라는 relative 정보를 이용하면 상대 거리가 유지된다. 이러한 방식으로 token embedding에 APE를 encode할 수 있다면 절대 위치 정보도 유지할 수 있다.
RPE 기반의 방법이지만, Additive 기법이 아닌 rotation matrix를 활용한 Multiplicative 기법을 사용하였다!
rotation matrix를 활용함으로써 Transformer의 sinusoid한 성질도 활용한다!
Sinusoidal Position Encoding은 내적을 사용하는 transformer 구조에서 position간 간격에 대한 패턴을 학습하기에 좋다. position끼리 가까우면 내적이 크고, 멀면 내적이 작아져서 내적으로부터 거리관계를 대략 유추해낼 수 있다.
Properties of RoPE
1) Long-term decay
- transformer와 동일하게 $\theta_i = 10000^{(-2i/d)}$선택
- relative position이 멀어질수록 내적 곱 값이 감소하는 효과(long-term decay)를 얻을 수 있다. (거리가 멀다 = 적은 유사도. clipping과 유사한 효과)
- 상대 거리 (m-n)가 증가 ↔ $\frac{1}{d / 2} \sum_{i=1}^{d / 2}\left|S_i\right|$ decay
2) RoPE with linear attention
- hidden stage를 rotate해도 norm이 변하지 않는다는 성질을 이용해 RoPE를 linear attention과 결합할 수 있다. (Efficient Transformer 연구 결과와 결합 가능!)
- T5-bias는 full attention matrix가 유지되어야 하므로 결합이 불가능하다.
Experiments and Evaluation
4 x V100 GPU를 가진 cloud server 2개를 활용하였다.
Machine Translation
sequence-to-sequence language translation task
standard WMT 2014 English-German dataset 사용 (거의 4.5 M 문장 쌍)
Transformer-based baseline인 Vaswani의 모델보다 더 나은 BLEU score를 기록하였다.
Pre-training Language Modeling
contextual representation 학습에 대한 성능을 검증하였다. Pre-training 과정동안 BERT의 sinusoidal position encoding을 RoPE로 대체하였다.
Huggingface datasets library(Apache License 2.0)에서 BookCorpus & Wikipedia Corpus 사용
masked language-modeling loss값을 평가 지표로 사용하였다.
왼쪽 그래프에서 더 빠르게 convergence에 이른다는 것을 확인해볼 수 있다.
Fine-tuning on GLUE tasks
pre-trained RoFormer을 다양한 GLUE tasks에 대해 fine-tuning하여 일반화 능력을 평가한다.
F1-score(MRPC, QQP) & Spearman correlation(STS-B) & Accuracy를 평가 지표로 사용하였다.
sequence length를 늘려도 accuracy가 떨어지지 않고 점점 증가한다.
Performer with RoPE
Performer은 input sequence 길이에 따른 quadratic computation cost를 방지하고자 linear attention을 제안하였다. RoPE는 Self-attention에서 선형적으로 scale된 복잡도를 유지하고자 하는 RPE를 Performer에서 쉽게 구현될 수 있다.
Enwik8 dataset 사용
Fig.3에도 나와있듯이 더 빠른 convergence & 낮은 loss
Evaluation on Chinese Data
512 characters를 넘는 긴 문서에 대해 성능을 평가하였다. WoBERT에서 APE를 RoPE로 대체하여 실험을 진행하였다.
Chinese Wikipedia, news, forums에서 얻은 34GB data로 pre-training
Chinese AI and Law 2019 Similar Case Matching (CAIL2019-SCM) dataset을 사용하여 long-text 처리 능력을 검증하였다.
위의 dataset에 대해 다른 input 길이들로 RoFormer 모델을 pre-training하였다.
최대 input text 길이를 1024까지 증가시켰을 때, RoFormer은 WoBERT를 1.5% 높은 성능을 보였다.
Limitations
1) 다른 position encoding strategies를 가진 baseline 모델들에 비해 왜 빨리 converge하는지에 대한 설명이 부족하다.
2) 우리 모델이 intern-token products에 대한 long-term decay라는 유리한 특성을 가지고 있고, long-text에 대해 다른 모델들보다 뛰어난 성능을 가짐에도 불구하고 이에 대한 설명이 부족하다.
Conclusions
새로운 position embedding 방법 제안 : explicit relative position dependency in self-attention
Relative position embedding은 self-attention에서 vector production을 사용해서 형성될 수 있다.
이와 함께 Absolution position embedding 정보는 rotation matrix를 통해서 encode될 수 있다.
Transformer에 적용할 때의 효과적 특성들에 대해서도 수학적으로 서술했다.
rotation matrix → orthogonal(안정적 encoding) & sparse(효율적 구현)
English & Chinese bench mark datasets을 통해 실험해본 결과, pre-training에서 더 빠른 convergence를 이루며 long-text task에 대해서도 더 나은 성능을 보였다.
References
https://www.youtube.com/watch?v=tRe2XHF6UbQ
https://www.slideshare.net/taeseonryu/roformer-enhanced-transformer-with-rotary-position-embedding
- 요약 -
- Transformer-based language models의 학습과정에 필요한 positional embedding 방법 조사(APE, RPE)
- Rotary Position Embedding(RoPE)라는 새로운 방법 제시
- RPE와 APE를 같이 사용하였다.
- rotation matrix를 활용한 multiplicative 기법을 통해 APE encoding + sinusoid한 성질을 반영하였다.
self-attention formulation에서 relative position 의존성을 포함시킨다. orthogonal(안정적 encoding) & sparse(효율적 구현) - RoPE의 역할 : token embedding을 complex number로, position을 token embedding을 rotation시킨 값으로 변환한다.
- 이후 EleutherAI에서 Positional Embeddings 으로 구현하여 사용하면서 더 유명해졌다.
https://blog.eleuther.ai/rotary-embeddings/
cf.) 추후에 ALiBi embedding(Train Short, Test Long: Attention with Linear Biases Enables Input Length Extrapolation)에 대해서도 공부해보면 좋을 것 같다.
'Paper Review > NLP' 카테고리의 다른 글
[Paper Review] Text clustering with LLM embeddings (2024.03) (6) | 2024.11.06 |
---|---|
[Paper Review] Efficient Estimation of Word Representations in Vector Space (2013.01) (5) | 2024.03.08 |