Paper Details
Title: Attention is All You Need
Authors: Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, Łukasz Kaiser, Illia Polosukhin
Conference: 2017 NeurIPS (31st Conference on Neural Information Processing Systems)
Year of Publication: 2017
Link: https://arxiv.org/abs/1706.03762
Key Focus: The Transformer replaces traditional RNN and CNN-based sequence models with a fully attention-based architecture, enabling parallelization and more efficient training. It achieves state-of-the-art results in tasks like machine translation, with BLEU scores of 28.4 (English-to-German) and 41.8 (English-to-French) on the WMT 2014 dataset. By combining positional encoding and multi-head attention, the model effectively captures long-range dependencies. The Transformer has since become the foundation for many generative and multimodal AI models.
💡 Key point: Self-Attention 과 Multi-Head Attention으로 입력 시퀀스 전체를 병렬적으로 처리
📚 Background
딥러닝 기반의 시퀀스 변환 모델의 발전
시퀀스(Sequence)란 순서가 있는 데이터의 나열을 의미하며, 데이터 간의 순서와 관계가 중요하게 여겨진다. 자연어 처리에 쓰이는 단어 시퀀스(ex. "I am a student")나 시계열 데이터(ex. 주식 가격 데이터, 날씨 데이터), 음성 데이터 등이 이에 해당한다.
일반적인 데이터와 달리 데이터간의 관계가 고려되어야 하는 시퀀스를 처리하기 위해 개발된 모델이 바로 시퀀스 변환 모델이다. 대표적인 시퀀스 변환 모델로는 RNN(순환 신경망, Recurrent Neural Network), LSTM(Long Short Term Memory), GRU(Gated Recureent Unit) 등이 있다.
기존의 RNN 계열 모델들은 순차 데이터를 처리하는 데 뛰어난 성능을 보이긴 했지만, 입출력 시퀀스의 길이와 관련하여 몇 가지 한계점을 보였다.
위의 RNN 구조를 통해 알 수 있듯이 RNN은 모든 timestep에 걸쳐 동일한 가중치($w_h$)를 공유하기 때문에 모든 시점에서 대응되는 출력이 생성되고, 결과적으로 출력 시퀀스의 길이가 입력 시퀀스의 길이와 동일하게 유지된다. 따라서 입력 시퀀스와 출력 시퀀스의 길이가 다른 경우 효율적인 처리를 하지 못했고, 입력 시퀀스를 고정된 크기의 벡터로 압축하는 과정에서 정보 손실이 발생하기도 했다. 또한, 데이터를 순차적으로 처리하기 때문에 시퀀스의 길이가 길어지면 학습 및 추론 속도가 느려진다는 단점을 가졌다.
이러한 RNN 계열 모델의 한계점을 개선하면서도 Attention 메커니즘을 적용시킨 모델이 바로 2017년 구글 연구팀의 "Attention is All You Need" 논문에서 처음 소개한 Transformer 모델이다.
📄 Summary of the Paper
1. Introduction
Transformer 모델은 시퀀스 변환 작업(= 기계 번역)에서 기존 RNN 계열 모델의 한계를 극복하기 위해 새롭게 설계된 신경망 구조다. 기존 모델들은 순차 계산에 의존해서 병렬 처리에 제약이 있었지만, Transformer는 Self-Attention 메커니즘을 활용하여 문제를 해결했다. 즉, 개별 토큰에서 정보를 추출하는 것을 넘어서 입력 시퀀스 전체에서 정보 추출이 가능해진 것이다.
2. Background
-
3. Model Architecture
Transformer는 Encoder-Decoder 구조를 기반으로 하며, 전체 모델 구조는 다음과 같다.
3.1. Encoder and Decoder Stacks
Encoder
인코더는 6개의 동일한 레이어로 구성되어 있으며, Attention과 Normalization을 반복하는 구조로 이루어져 있다. 각각의 레이어는 서로 다른 파라미터를 가지므로 다양한 표현 학습이 가능하다.
Positional Encoding은 Input Embedding과 함께 위치 정보를 전달하는 역할을 한다. 위치정보를 별도로 전달해야하는 이유는 RNN 이 사용되지 않기 때문으로, 문장이 입력 시퀀스로 주어진다고 가정한다면 문장 내에서 단어의 순서를 결정할 수 있도록 하는 것이다.
Embedding 이후에는 Query, Key, Value 값을 사용하여 Multi-Head Attention 이 수행된다. 여기에서 말하는 Multi-Head 는 독립적인 Query, Key, Value 가중치 행렬을 의미하며, Multi-Head Attention은 입력 데이터를 여러 개의 독립적인 Attention mechanism을 병렬적으로 처리 및 분석해서 다양하고 풍부한 정보를 추출하는 역할을 한다.
Multi-Head Attention의 결과값은 임베딩 벡터와 잔차 연결(residual connection)이 수행된 후 레이어 정규화가 적용된다. 정규화를 적용한 결과값에 Feed Forward → 잔차 연결 및 레이어 정규화를 적용한다.
마지막 인코더 레이어의 출력은 모든 디코더 레이어에 입력된다.
Decoder
디코더 역시 인코더와 동일한 구조로 구성되며, 6개의 동일한 레이어로 구성되어 있다. 다만 디코더의 경우에는 위치에 대한 마스킹이 적용되어 있는데, 이는 예측을 할 때 특정 위치의 이전 출력에만 의존하도록 하기 위함이다. (미래의 데이터를 사용하게 되면 "예측" 자체가 성립하지 않음!)
3.2. Attention
3.2.1. Scaled Dot-Product Attention
쿼리($Q$)와 키($K$)의 dot product를 스케일링한 후 softmax 함수를 적용하여 가중치 확률 값을 계산한다. dot product는 행렬곱을 사용하기 때문에 더 빠르고 공간 효율적인 계산이 가능하다.
$\text{Attention}(Q, K, V) = \text{softmax}(\frac{QK^T}{\sqrt{d_k}})V$
$d_k$ 값이 커지면 dot-product attention 이 작은 기울기 영역으로 softmax 함수를 밀어넣어 기울기 소실(gradient vanishing) 문제가 발생할 수 있다. 따라서 $d_k$ 값에 루트를 씌워 스케일링한다.
3.2.2. Multi-Head Attention
Linear projection 을 통해 병렬 처리를 수행하며, 앞서 언급한 바와 같이 여러 Head를 활용하여 단어 간의 다양한 관계를 병렬적으로 학습하여 더 풍부하고 일반화된 표현을 제공하는 역할을 한다. 동시에 병렬처리로 인해 순차적으로 처리하는 RNN 계열의 모델에 비해 효율적이고 빠른 학습이 가능하다.
$\text{MultiHead}(Q, K, V ) = \text{Concat}(\text{head}_1, ..., \text{head}_h)W^O \text{where } \text{head}_i = \text{Attention}(QW_i^Q , KW_i^K , VW_i^V )$
3.2.3. Applications of Attention in our Model
Transformers는 Multi-Head Attention을 다음과 같은 세 가지 방식으로 사용할 수 있다.
- Encoder Self-Attention: 각 위치가 이전 인코더 레이어의 모든 위치에 주의를 기울임
- Masked Decoder Self-Attention: 각 위치가 이전 디코더 레이어의 모든 위치에 주의를 기울임.
- Encoder-Decoder Attention: 디코더의 각 위치가 입력 시퀀스의 모든 위치에 주의를 기울임.
3.3. Position-wise Feed-Forward Networks
$FFN(x) = \text{max}(0, xW_1 + b_1)W_2 + b_2$
각각의 Encoder/Decoder 층은 Fully Connected FFN(Feed Forward Network)를 갖는다. FFN에서는 차원을 두 배로 확장하고 ReLU 활성화함수를 거친 뒤 다시 차원을 1/2배로 축소킨다. 이 과정을 통해 입출력 차원은 동일($d_{\text{model}} = 512$)하지만, 더 높은 차원의 특징 표현을 학습하여 더 복잡한 패턴 학습이 가능해진다.
3.4. Embeddings and Softmax
Decoder 의 결과값을 확률값으로 변환하기 위해서 Linear와 Softmax를 차례대로 통과시킨다.
3.5. Positional Encoding
RNN/CNN을 사용하지 않으므로 Representation을 벡터로 표현한 Positional Encoding을 사용해서 위치 정보를 제공한다. Transformer에서는 Sinusoid(정현파) Positional Encoding 을 사용한다. Sinusoid는 -1에서 1 사이의 값을 갖는 동시에 서로 겹치지 않아 이를 홀수와 짝수로 나누어 연산한 후 기존의 Embedding에 합산하면 서로 겹치지 않고, 상대적인 위치 정보를 가진 결과를 만들 수 있게 된다. 또한, 학습된 Embedding 대신 Sinusoid 를 이용하면 모델이 학습한 것보다 더 긴 시퀀스가 입력되더라도 더 많이 계산하여 구할 수 있어 해당 논문에서는 이 방법을 채택하였다.
4. Why Self-Attention
5. Training
5.1. Training Data and Batching
- 데이터셋:
- WMT 2014 영어-독일어 (4.5M 문장)
- WMT 2014 영어-프랑스어 (36M 문장)
- 토큰화:
- 영어-독일어: 약 37,000개의 서브워드 단위(Byte Pair Encoding)
- 영어-프랑스어: 약 32,000개의 워드피스(WordPiece)
- 배치 구성:
- 문장의 길이를 기준으로 유사한 문장들을 묶어 배치를 구성
- 배치당 약 25,000개의 소스 토큰과 25,000개의 타겟 토큰 포함
5.2. Hardware and Schedul
- 하드웨어: 8개의 NVIDIA P100 GPU 사용
- 학습 속도:
- Base 모델:
- 1 step당 약 0.4초
- 12시간(100,000 step) 동안 학습
- Big 모델:
- 1 step당 약 1.0초
- 3.5일(300,000 step) 동안 학습
- Base 모델:
5.3. Optimizer
- Adam Optimizer:
- 파라미터: β1=0.9, β2=0.98, ϵ=10⁻⁹
- 학습률 스케줄:
- Warm-up 단계에서 학습률을 선형적으로 증가
- 이후 학습률을 스텝 수의 역제곱근 비율로 감소
- 학습률 공식:
$lrate = d_{model}^{-0.5} \cdot \min(step\_num^{-0.5}, \text{step_num · warmup_steps}^{-1.5})$ - warm-up 스텝 수: 4000.
5.4. Regularization
- 드롭아웃 (Dropout):
- 모든 서브 계층의 출력에 드롭아웃 적용.
- 인코더 및 디코더 스택의 임베딩과 포지셔널 인코딩에도 사용.
- 드롭아웃 비율: Pdrop = 0.1.
- 레이블 스무딩 (Label Smoothing):
- 스무딩 값(ϵls): 0.1.
- 모델이 지나치게 확신하지 않도록 하여 일반화 성능 향상.
- BLEU 점수를 개선하는 데 기여.
6. Results
6.1. Machine Translation
- 영어-독일어 번역:
- Base 모델: BLEU 점수 27.3.
- Big 모델: BLEU 점수 28.4 (기존 최고 성능보다 2.0 이상 높음).
- 영어-프랑스어 번역:
- Base 모델: BLEU 점수 38.1.
- Big 모델: BLEU 점수 41.8 (단일 모델 기준 새로운 최고 성능 기록).
- 효율성:
- Transformer는 기존 RNN 및 CNN 기반 모델보다 학습 시간이 짧고, 병렬 처리로 인해 훈련 비용이 크게 절감됨.
- 예: Big 모델은 3.5일 동안 8개의 GPU로 훈련하여 최고 성능을 달성.
6.2. Model Variations
- 멀티헤드 어텐션:
- 어텐션 헤드 수를 변경(1, 4, 8, 16)하여 성능을 비교
- 최적의 헤드 수는 8로 나타났으며, 적거나 많을 경우 성능이 감소
- 모델 크기:
- 모델의 레이어 수(N), 피드포워드 차원(d_ff), 드롭아웃 비율(Pdrop) 등 다양한 파라미터를 조정.
- 모델 크기를 키울수록 성능이 향상되었으나, 과적합 방지를 위해 드롭아웃 비율이 중요.
- 포지셔널 인코딩:
- 사인 및 코사인 기반의 고정된 포지셔널 인코딩과 학습된 임베딩을 비교.
- 성능 차이는 거의 없었으나, 고정된 인코딩이 더 효율적이고 안정적.
6.3. English Constituency Parsing
- WSJ 데이터셋:
- Wall Street Journal(WSJ) 부분(약 40,000 문장)을 사용해 훈련.
- Transformer는 기존 RNN 기반 모델보다 높은 성능을 보이며, F1 점수 91.3을 기록.
- 반지도 학습(semi-supervised learning):
- Berkeley Parser의 약 17M 문장을 포함한 대규모 코퍼스를 사용하여 반지도 학습 수행.
- Transformer는 F1 점수 92.7로 최고 성능을 기록.
- 결과 요약:
- Transformer는 기존 RNN 기반 모델과 경쟁할 수 있는 성능을 보이며, NLP 작업에서의 일반화 가능성을 입증
7. Conclusion
Transformer는 Attention 메커니즘만을 사용해 RNN과 CNN의 한계를 극복하며, 장거리 의존성을 효과적으로 학습하고 병렬 처리로 학습 속도를 크게 향상시켰다. 여전히 많은 모델들의 베이스 모델로 사용되고 있으며, 이후 GPT와 BERT 같은 주요 모델의 기반이 되었으며, 딥러닝의 패러다임 전환을 이끌었다.