1. 논문 정보
- 제목: Attention Is All You Need
- 저자: Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, tukasz Kaiser, lllia Polosukhin
- 기관: Google Brain, Google Research, University of Toronto
- 출판: Proceedings of the 31st Conference on Neural Information Processing Systems (NeurIPS 2017)
- 링크: https://arxiv.org/pdf/1706.03762
2. 연구 배경 및 목적 (Introduction)
기존 시퀀스 변환 모델(Sequence Transduction Models)의 문제점
- 전통적으로 순환신경망(RNN, LSTM, GRU) 기반 모델이 사용됨.
- 이러한 모델들은 입력 및 출력 시퀀스의 기호 위치를 따라 연산을 수행하며, 이전 상태(hidden state)를 바탕으로 새로운 상태를 계산하는 방식
- 하지만 이러한 순차적인 계산 방식은 병렬 처리를 어렵게 만들고, 길이가 긴 시퀀스를 다룰 때 연산량 증가와 학습 속도 저하 문제를 초래함.
- CNN 기반 모델(ConvS25, ByteNet 등)도 병렬 처리가 가능하지만, 입력 간의 긴 거리 의존성을 학습하는데 한계가 있음.
Attention Mechanism의 중요성
- 어텐션 메커니즘(Attention Mechanism)은 기존의 RNN/CNN 모델에서 입력과 출력 간의 의존성을 효과적으로 학습하는 중요한 역할을 해왔음.
- 하지만 대부분의 연구에서는 어텐션을 RNN과 결합하여 사용하였으며, 독립적인 모델로써 연구된 사례는 거의 없음.
Transformer 모델 제안의 필요성
- 본 논문에서는 순환구조(RNN)를 완전히 제거하고, 오직 Self-Attention만을 활용하는 새로운 모델, Transformer를 제안함.
- Transformer는 더 높은 병렬 처리 성능을 제공하며, 기존 모델 대비 더 적은 연산량으로도 높은 성능을 달성할 수 있음.
3. 주요 기여 (Contribution)
본 논문에서 제시한 Transformer의 주요 기여는 다음과 같다.
- Self-Attention만을 활용하는 Transformer 모델 제안
- 기존 RNN 및 CNN 기반 모델 없이 Self-Attention만을 사용하는 시퀀스 변환 모델을 개발.
- 병렬 연산 가능하도록 설계
- 순차적인 RNN 구조를 제거하고, 모든 단어를 동시에 처리할 수 있는 구조로 변경하여 병렬 연산을 극대화.
- Scaled Dot-Product Attention 및 Multi-Head Attention 도입
- Attention을 최적화하여 연산 효율성을 개선하고, 더 풍부한 문맥 정보를 학습할 수 있도록 함.
- Positional Encoding을 통해 위치 정보 학습
- RNN 없이도 단어의 순서 정보를 학습할 수 있도록 Positional Encoding 기법 활용.
- 기계 번역(Machine Translation)에서 최고 성능 달성
- WMT 2014 번역 작업에서 기존 최고 모델 대비 더 높은 BLEU 점수 기록.
- Self-Attention의 구조적 장점 입증
- RNN 및 CNN과 비교하여, 계산량 대비 더 높은 성능과 병렬 연산 효율성을 가짐이 실험을 통해 검증됨.
Transformer는 이후 BERT, GPT 등 다양한 자연어 처리 모델의 기반이 되었으며, NLP의 패러다임을 변화시킨 중요한 연구로 평가받는다.
4. 방법론 (Methodology)
본 논문에서는 기존 RNN 및 CNN 기반 시퀀스 변환 모델을 대체하기 위해 Transformer 모델을 제안하였다. Transformer는 순환 구조 없이(Self-Attention) 전체 입력을 한 번에 처리하는 모델로, 인코더-디코더(Encoder-Decoder) 구조를 따른다.
4.1 Transformer 모델 아키텍처
Transformer는 기존 Seq2Seq(Sequence-to-Sequence) 모델과 유사하게 인코더와 디코더(Decoder)로 구성되며, 각각 6개의 동일한 층(Stacked Layers)으로 이루어져 있다.
(1) 인코더 (Encoder)
- 입력 시퀀스를 처리하여 고차원적인 연속 벡터 표현으로 변환하는 역할.
- 각 인코더 레이어는 두 개의 주요 서블 레이어(sub-layer)로 구성됨:
- Multi-Head Self-Attention Layer: 입력 시퀀스 내 모든 단어 간의 관계를 학습.
- Position-wise Fully Connected Feed-Forward Layer: 각 단어 벡터에 독립적으로 적용되는 완전 연결 층.
(2) 디코더 (Decoder)
- 인코더의 출력을 바탕으로 출력 시퀀스를 생성하는 역할을 수행.
- 인코더와 동일하게 6개의 동일한 층(Stacked Layers)으로 구성되며, 추가적으로 세 번째 서브 레이어가 포함됨:
- Masked Multi-Head Self-Attention Layer:
- 디코더의 입력에서 오른쪽의 단어를 참조하지 않도록 마스킹하여, 순차적인 단어 생성이 가능하도록 함.
- Multi-Head Attention Layer:
- 인코더에서 생성된 출력 벡터를 활용하여, 입력 시퀀스와 출력 시퀀스 간의 연관성을 학습.
- Position-wise Fully Connected Feed-Forward Layer
- Self-Attention 후 각 단어 벡터에 독립적으로 적용되는 두 개의 Fully Connected Layer로, 표현력을 강화하는 역할을 함.
- Masked Multi-Head Self-Attention Layer:
4.2 Self-Attention 메커니즘
Transformer의 핵심은 Self-Attention 메커니즘이다.
(1) Scaled Dot-Product Attention
- Self-Attention은 입력 시퀀스 내 모든 단어가 서로 어떻게 관련되는지를 학습하는 과정.
- 주어진 입력을 Query(Q), Key(K), Value(V)로 변환한 후, 입력 단어 간의 유사도를 기반으로 가중 평균을 계산하여 최종 출력을 생성.
- Attention Score 계산 수식:
$$Attention(Q, K, V) = softmax(\frac{QK^T}{\sqrt{d_k}})V$$
- \(QK^T\)는 Query와 Key 간의 내적(dot product) 결과로 유사도를 계산.
- \(\sqrt{d_k}\)로 나누어 값이 너무 커지는 것을 방지하고, 학습 안정성을 증가.
- Softmax를 적용하여 각 단어가 다른 단어에 얼마나 집중할지를 결정.
- 최종적으로 Value(V)와 결합하여 최종 Attention 결과를 출력.
(2) Multi-Head Attention
- Attention을 여러 개의 Head로 나누어 다양한 시점에서 문맥 정보를 학습할 수 있도록 함.
- Query, Key, Value를 각각 h개(논문에서는 h=8)로 선형 변환한 후, 개별적으로 Attention 연산을 수행하고 최종적으로 병합함.
- 수식:
$$MultiHead(Q, K, V) = Concat(head_1,...,head_h)W_0$$
$$head_i = Attention(QW^i_Q, KW^i_K, VW^i_V)$$
- 다양한 서브공간에서 Attention을 수행하여 모델이 단일 Attention보다 풍부한 문맥을 학습할 수 있도록 함.
4.3 Position-wise Feed-Forward Networks (FFN)
Transformer 모델에서는 각 단어의 표현을 개별적으로 변환하기 위해 Position-wise Feed-Forward Network (FFN)를 사용한다.
(1) FFN의 구조
- 인코더와 디코더의 각 레이어에서 Self-Attention 층 뒤에 위치하며, 각 단어 벡터에 독립적으로 적용됨.
- 두 개의 선형 변환(fully connected layer)과 비선형 활성화 함수(ReLU)로 구성.
- 모든 단어 벡터에 동일한 변환이 적용되지만, 개별적으로 수행되므로 CNN과 유사한 특징을 가짐.
(2) 수식
$$FFN(x) = max(0, xW_1 + b_1)W_2 + b_2$$
- 첫 번째 선형 변환에서 차원을 확장한 후(ReLU 활성화 함수 적용),
- 두 번째 선형 변환에서 다시 원래 차원으로 축소하는 방식으로 동작함.
- 여기서 \(W_1\)과 \(W_2\)는 학습 가능한 가중치 행렬이고, \(b_1\)과 \(b_2\)는 편향값(bias)이다.
(3) FFN의 역할
- 비선형 변환을 통해 더 복잡한 표현을 학습할 수 있도록 함.
- 각 단어 벡터에 독립적으로 적용되므로, 위치에 관계없이 동일한 변환을 수행.
- CNN처럼 모든 단어에 동일한 가중치를 사용하면서도, 단어별로 독립적인 연산이 가능함.
4.4 Positional Encoding (위치 정보 인코딩)
Transformer는 순차적인 구조(RNN)가 없기 때문에, 단어의 순서를 고려할 수 있도록 별도의 위치 정보(Positional Encoding)을 추가해야함.
(1) Positional Encoding의 필요성
- RNN은 시간 순서대로 데이터를 처리하여 단어의 순서를 자연스럽게 반영할 수 있음.
- 하지만 Transformer는 Self-Attention을 기반으로 병렬 연산을 수행하므로, 단어의 순서를 고려하는 내재적인 구조가 없음.
- 이를 해결하기 위해, 각 단어의 위치 정보를 임베딩 벡터에 추가하는 Positional Encoding 기법을 적용.
(2) Positional Encoding 공식
논문에서는 위치 정보를 나타내기 위해 주기적인 사인(sin) 및 코사인(cos) 함수를 사용함.
$$PE_{(pos, 2i)} = sin(pos/10000^{2i/d_{model}})$$
$$PE_{(pos, 2i+1)} = cos(pos/10000^{2i/d_{model}})$$
여기서:
- \(pos\)는 단어의 위치(index)
- \(i\)는 임베딩 차원의 인덱스
- \(d_{model}\)은 임베딩 벡터의 전체 차원
이 방식은 각 차원에서 다른 주기를 가지도록 설계되어 있으며, 단어의 상대적 위치를 학습할 수 있도록 도와줌.
(3) 왜 사인 및 코사인 함수를 사용하는가?
- 연속적인 패턴을 생성하여 단어 순서를 학습할 수 있도록 함
- 사인 및 코사인 함수는 주기성을 가지므로, 단어 간의 상대적인 위치를 자연스럽게 인코딩 할 수 있음.
- 위치 정보가 모델 크기에 독립적임
- 모델이 더 긴 문장을 처리할 때도 확장 가능하도록 절대적인 위치 값을 사용하지 않고 상대적인 위치를 고려함.
- 학습 없이 사용할 수 있음
- 위치 정보가 학습되지 않고 사전 정의되므로, 추가적인 파라미터 없이 모델에 적용 가능.
(4) Positional Encoding 적용 방식
- 입력 임베딩 벡터에 Positional Encoding 값을 더해(position-wise addition) Transformer에 전달.
- 이를 통해 모델이 단어의 순서를 인식할 수 있도록 학습함.
5. 실험 및 결과 (Experiments & Results)
본 논문에서는 Transformer의 성능을 검증하기 위해 기계 번역(Machine Translation) 및 문법 분석(Parsing) 실험을 수행하였다. 실험에서는 Transformer 모델을 기존의 RNN 기반 및 CNN 기반 모델과 비교하였으며, 모델의 성능을 평가하기 위해 BLEU(Bilingual Evaluation Understudy) 점수를 사용하였다.
5.1 기계 번역 성능 평가 (Machine Translation Performance)
(1) 데이터셋 및 실험 환경
- 데이터셋:
- WMT 2014 English-German (EN-DE): 약 450만 개의 문장 쌍
- WMT 2014 English-French (EN-FR): 약 3600만 개의 문장 쌍
- 토큰화(Tokenization):
- Byte-Pair Encoding (BPE)을 사용하여 37,000개(EN-DE) 및 32,000개(EN-FR)의 서브워드 단위 토큰 생성.
- 배치 크기(Batch Size):
- 한 배치당 약 25,000개의 소스 토큰 및 25,000개의 타겟 토큰을 포함하도록 구성.
- 하드웨어 및 학습 시간:
- NVIDIA P100 GPU 8개에서 학습 진행.
- Base 모델: 100,000 step 학습 (~12시간 소요)
- Big 모델: 300,000 step 학습 (~3.5일 소요)
(2) BLEU 점수 비교
Transformer는 WMT 2014 EN-DE 및 EN-FR 번역 작업에서 기존 최고 성능을 기록하였다.
- Transformer (Big) 모델이 기존 모델을 뛰어넘는 BLEU 점수를 기록함.
- 특히, Transformer는 기존 모델 대비 적은 연산량으로 더 높은 성능을 달성.
(3) 번역 품질 분석
- Transformer는 보다 자연스러운 문장 생성이 가능하며, 긴 문장에서의 의존 관계를 더 잘 유지함.
- 기존 RNN 기반 모델은 긴 문장에서 정보 손실이 발생하는 반면, Self-Attention을 활용하는 Transformer는 장기 의존성을 더 효과적으로 모델링함.
5.2 모델 변형 실험 (Ablation Study)
본 논문에서는 Transformer 모델의 여러 구성 요소를 변경하여, 각각이 모델 성능에 미치는 영향을 분석하였다.
(1) Attention Head 수에 따른 성능 변화
- Multi-Head Attention에서 Head 수를 조정하여 실험한 결과, 8개가 최적임을 확인.
(2) Feed-Forward 네트워크의 차원 변화
- Position-wise Feed-Forward network(FFN)의 차원을 변경한 결과, 2048 차원이 최적임을 확인.
(3) Dropout 및 Label Smoothing의 효과
- Dropout 및 Label Smoothing을 적용한 경우 BLEU 점수가 향상됨.
5.3 영어 문법 분석 (English Constituency Parsing) 실험
Transformer가 기계 변역 외에도 다른 NLP 작업에서도 우수한 성능을 보이는지 평가하기 위해 Penn Treebank의 Wall Street Journal (WSJ) 데이터셋에서 구문 분석(Constituency Parsing) 실험을 수행하였다.
(1) 실험 조건
- 4개 층(layer), d_model=1024인 Transformer 모델을 사용.
- 학습 데이터: WSJ 약 40,000 문장.
- 학습된 모델을 WSJ 23번 섹션에서 평가.
(2) F1 Score 비교
- Transformer 모델은 기존 RNN 기반 및 semi-supervised 모델을 능가하는 성능을 보임.
- Transformer 모델이 구문 분석에서도 RNN 기반 모델보다 더 높은 성능을 기록.
- Semi-supervised 학습에서는 Transformer가 기존 최고 성능을 갱신함.
6. 결론 (Conclusion)
본 논문에서는 기존 RNN 및 CNN 기반 시퀀스 변환 모델의 한계를 극복하기 위해 Self-Attention 기반의 Transformer 모델을 제안하였다. Transformer는 순차적 연산을 제거하고, 병렬 처리가 가능한 구조를 채택하여 학습 속도를 크게 향상시키면서도 높은 성능을 달성하였다.
- Self-Attention 기반의 새로운 시퀀스 변환 모델을 제안
- 기존 RNN 및 CNN의 한계를 극복하고, 전적으로 Self-Attention을 활용하는 Transformer 모델을 개발
- 병렬 연산이 가능하여 학습 속도가 빠르고, 긴 문장에서의 장기 의존성을 효과적으로 모델링함.
- 기계 번역 및 NLP 작업에서 최고 성능 기록
- WMT 2014 EN-DE 및 EN-FR 번역 작업에서 기존 모델을 뛰어넘는 BLEU 점수 기록.
- RNN 및 CNN 기반 모델 대비 더 적은 연산량으로 높은 성능을 달성.
- 다양한 실험을 통해 모델의 효율성과 일반화 가능성을 검증
- 모델 변형 실험(Ablation Study)에서 Multi-Head Attention, FFN 차원, Dropout 등이 성능에 미치는 영향 분석.
- 구문 분석(Parsing) 작업에서도 Transformer가 기존 RNN 기반 모델보다 높은 성능을 기록.
Transformer는 기존 시퀀스 변환 모델을 뛰어넘는 혁신적인 모델로, 이후 BERT, GTP 등의 발전에 큰 영향을 미쳤다. 병렬 연산이 가능하고, 장기 의존성을 효과적으로 학습할 수 있는 Self-Attention 기반 구조는 NLP의 새로운 패러다임을 형성하였다.