Transformer: Attention Is All You Need

논문 원본 : https://arxiv.org/abs/1706.03762
논문 간단 요약: 순수 어텐션 메커니즘만으로도 기존 RNN 기반 모델을 대체하며 병렬성과 성능을 모두 확보한 새로운 딥러닝 아키텍처인 Transformer를 제안
Introduction
기존의 자연어 처리(NLP) 모델은 주로 RNN, LSTM, GRU와 같은 순환 신경망 구조 또는 CNN을 기반으로 구성되어 있었다.
이러한 구조는 입력 순서에 따라 단어를 순차적으로 처리하므로 병렬 처리에 제약이 있고, 긴 문장 내 장거리 의존성(long-range dependency)을 다루는 데 비효율적이라는 문제가 있었다.
Transformer는 이러한 한계를 극복하기 위해 제안된 모델로, 어텐션 메커니즘만을 사용해 순차 구조 없이도 문맥 정보를 효과적으로 학습할 수 있도록 설계되었다.
제안된 모델은 복잡한 recurrence나 convolution 없이도 기계 번역에서 기존 모델보다 더 나은 성능을 보이며, 연산 효율성까지 확보하였다.

특히 이후 등장한 대표적인 대규모 언어 모델들인 GPT와 BERT는 각각 Transformer의 디코더, 인코더 구조를 채택하며 아키텍처의 강력함을 입증했다.
2021년을 기준으로 대부분의 최신 고성능 NLP 모델은 Transformer 아키텍처를 기반으로 하고 있으며, Attention 메커니즘 이후 더 이상 RNN 기반 구조를 사용할 필요가 없어졌다는 평가도 나오고 있다.
주요 기술 요소
- Transformer는 self-attention 메커니즘을 기반으로 입력 문장 내 단어들 간의 상호 연관성을 한 번에 계산한다.
- 입력의 순서 정보를 보존하기 위해 Positional Encoding을 사용하며, 이로써 순환 구조 없이도 문장의 순서를 인식할 수 있다.
- 모든 단어에 대한 attention 연산이 병렬로 수행되기 때문에 학습 속도가 빠르고, GPU 자원을 효율적으로 활용할 수 있다.
Background
- 기존 접근 방식의 한계
자연어 처리에서 대표적으로 사용되던 순환 신경망(RNN) 기반 모델들은 문장의 단어를 시간 순서대로 처리해야 하는 구조였다.
이 때문에 병렬 처리가 불가능하고, 긴 문장에서 앞뒤 단어 사이의 장거리 의존성(long-range dependency)을 효과적으로 반영하지 못한다는 단점이 있었다.
이후 등장한 LSTM, GRU 같은 구조는 장기 기억 문제를 어느 정도 완화했지만, 근본적인 순차 처리 구조는 여전히 남아 있었다.
이를 보완하기 위해 Sequence-to-Sequence (Seq2Seq) 모델이 등장했고, 인코더와 디코더 구조를 도입했다. 하지만 여전히 RNN에 기반해 있어 처리 속도와 성능에 제약이 있었다.

- 어텐션 메커니즘의 등장
2015년에 등장한 Bahdanau Attention과 Luong Attention은 인코더의 모든 hidden state를 참조해 디코더가 더 중요한 단어에 집중할 수 있도록 도와주는 구조였다.
이는 문장의 중요한 부분에 집중함으로써 번역 품질을 높이는 데 기여했지만, 여전히 RNN 기반 구조 안에 포함된 보조 메커니즘이었다.
즉, 어텐션은 성능을 높이는 데 효과적이었지만, 모델의 기본 골격은 RNN에서 벗어나지 못했다.
- Transformer를 위한 기반 정리
Transformer는 이러한 문제 의식을 바탕으로 "그렇다면 어텐션만으로 시퀀스를 처리할 수 있지 않을까?"라는 질문에서 출발했다.
기존 어텐션 메커니즘의 강점을 전면에 내세우고, RNN이나 CNN 없이 어텐션만으로 시퀀스를 변환할 수 있는 모델을 구축하고자 했다.
이러한 구조는 계산 병렬화를 가능하게 하며, 전체 문맥을 한 번에 고려하는 구조로 장거리 의존성 문제도 자연스럽게 해결할 수 있었다.
Architecture

- 전체 구조 개요
Transformer는 전통적인 RNN이나 CNN을 사용하지 않고, 순수하게 어텐션 메커니즘과 포지셔널 인코딩만으로 구성된 모델이다.
기본적으로 인코더-디코더 구조를 따르며, 인코더는 입력 문장을 받아 문맥 정보를 인코딩하고, 디코더는 이를 바탕으로 출력 문장을 생성한다.


인코더와 디코더는 각각 6개의 동일한 층(layer)으로 구성되어 있으며, 각 층은 다음과 같은 하위 블록으로 구성된다.
- Transformer에서 사용되는 세 가지 Attention 종류
Transformer 아키텍처에는 총 세 가지 종류의 Attention이 사용되며, 위치에 따라 목적과 동작 방식이 달라진다.
| Attention 종류 | 위치 | Query, Key, Value의 출처 |
| Encoder Self-Attention | 인코더 | Query = Key = Value = 인코더 입력 벡터 |
| Masked Decoder Self-Attention | 디코더 | Query = Key = Value = 디코더 입력 벡터 |
| Encoder-Decoder Attention | 디코더 | Query = 디코더 벡터, Key = Value = 인코더 벡터 |
- Self-Attention은 Query, Key, Value가 동일한 벡터에서 나온 경우를 의미하며, 한 문장 내 단어들 간의 관계를 학습하는 데 사용됨.
- Masked Decoder Self-Attention은 미래 단어를 보지 못하게 마스킹을 적용한 Self-Attention이다. 즉, 현재까지 생성된 단어만 보고 다음 단어를 예측하도록 학습됨.
- Encoder-Decoder Attention은 디코더가 인코더의 출력에 집중하도록 돕는 메커니즘으로, 디코더의 벡터(Query)가 인코더의 벡터(Key, Value)를 참고하여 출력 문장을 생성함.
- 인코더 구성 (Encoder)

각 인코더 층은 다음 두 가지 서브 레이어(sub-layer)로 구성됨:
- Multi-Head Self-Attention
Multi head attention에서 head란 Scaled Dot-Product Attention을 의미하며 h개의 head를 갖기 때문에 Multi head라고 표현한다.
- 입력 문장 내 단어들이 서로 어떤 관계를 갖는지 계산함.
- Self-attention을 통해 각 단어는 다른 모든 단어와 상호작용하며 문맥을 반영할 수 있음.
- Position-wise Feed-Forward Network (FFN)
- 각 위치의 벡터에 독립적으로 적용되는 2층 fully-connected 신경망.
- ReLU 활성화 함수를 사용하며, 비선형 변환을 적용.
각 서브 레이어 뒤에는 Residual Connection과 Layer Normalization이 적용됨.
인코더에서 가장 마지막 레이어에서 나온 출력값은 디코더에 들어가게 된다.
이유는 디코더 파트에서 매번 출력할때마다 소스 문장에서 어떤 단어에게 초점을 둬야하는지 알려주기 위함이다.
따라서 각 레이어는 인코더의 마지막 레이어에서 나온 출력값을 입력으로 받게된다.
디코더의 마지막 레이어에서 나온 값이 바로 실제로 우리가 번역을 수행한 결과(출력 단어)가 되는 것이다.
- 디코더 구성 (Decoder)

디코더는 인코더보다 한 층(sub-layer)이 더 많으며, 총 3개의 서브 레이어로 구성됨:
- Masked Multi-Head Self-Attention
- 현재 시점까지 생성된 단어까지만 보고 다음 단어를 예측할 수 있도록 마스킹(masking) 적용.
- Multi-Head Attention over Encoder Output
- 인코더 출력과 디코더의 현재 상태를 연결해, 인코딩된 입력 정보에 집중(attend)함.
- Position-wise Feed-Forward Network (FFN)
- 인코더와 동일하게 각 위치별로 독립적인 fully-connected 신경망 적용.
디코더 또한 각 서브 레이어 뒤에 Residual Connection과 Layer Normalization을 사용함.
- 핵심 기술 요소 정리
- Multi-Head Attention
- 하나의 attention이 아닌 여러 개의 head로 분산해 다양한 시각에서 관계를 학습함.
- 각 head는 다른 query, key, value projection을 갖고 독립적으로 attention 수행 후 합침.
- Scaled Dot-Product Attention
- Attention(Q, K, V) = softmax(QKᵀ / √dₖ)V
- Q: query, K: key, V: value
- √dₖ로 스케일링해 softmax의 gradient vanishing 문제 완화.
- Positional Encoding
- RNN이 자연어 처리에서 유용했던 이유는 단어의 위치에 따라 단어를 순차적으로 입력받아서 처리하는 RNN의 특성으로 인해 각 단어의 위치 정보(position information)를 가질 수 있다는 점에 있었음.
- 하지만 트랜스포머는 단어 입력을 순차적으로 받는 방식이 아니므로 단어의 위치 정보를 다른 방식으로 알려줄 필요가 있음. 트랜스포머는 단어의 위치 정보를 얻기 위해서 각 단어의 임베딩 벡터에 위치 정보들을 더하여 모델의 입력으로 사용하는데, 이를 포지셔널 인코딩(positional encoding)이라고 함.
- 사인(sin), 코사인(cos)을 기반으로 각 위치와 차원에 따라 고정된 값을 부여.

- 구조 요약
- 인코더-디코더는 각각 6층의 반복 블록으로 구성됨.
- 각 블록은 어텐션 → FFN 구조로 구성되며, 레지듀얼 연결과 정규화를 포함함.
- Self-attention 기반 구조로 전체 문맥을 한 번에 학습할 수 있고, 병렬화가 가능하여 학습 속도 향상.
Experiments
성능 비교 (BLEU score 기준)
| Model | En-De BLEU | En-Fr BLEU |
| GNMT + RL | 24.6 | 39.92 |
| ConvS2S | 25.16 | 40.46 |
| Transformer (base) | 27.3 | - |
| Transformer (big, 4 GPUs) | 28.4 | 41.0 |
- BLEU score는 기계 번역의 정밀도를 측정하는 대표적인 평가지표이며, 점수가 높을수록 번역 품질이 우수함을 의미함.
- Transformer는 특히 속도와 성능의 균형 측면에서 SOTA 모델들을 능가함.
- Transformer는 기존 RNN 및 CNN 기반 기계 번역 모델보다 더 높은 BLEU 점수를 달성함.
- 특히 병렬 처리에 강해, 속도와 정확도 모두 우수한 성능을 보임.
- 모델이 커질수록 성능 향상이 명확하게 나타나며, 이는 이후 BERT, GPT처럼 대형 모델 설계의 근거가 됨.
Conclusion
- 복잡한 recurrence나 convolution 없이도 고성능 시퀀스 모델링 가능함을 입증함
- Multi-head self-attention과 positional encoding을 통한 문맥 파악 구조 설계
- 기계 번역에서의 실험을 통해 높은 BLEU 점수와 빠른 학습 속도 입증
- 이 구조는 이후 거의 모든 최신 NLP 모델의 기반이 되었으며, 특히 BERT와 GPT 시리즈가 이를 계승함
Transformer는 논문 발표 이후 NLP뿐 아니라 음성, 시각, 생물정보학 등 다양한 분야로 확장되며 딥러닝 아키텍처의 새로운 패러다임을 제시했다.
이제는 "어텐션은 단순한 부속 기능이 아니라, 전체 모델의 중심이 될 수 있다"는 개념을 정착시킨 논문으로 평가된다.
Reference
https://bruders.tistory.com/97
[논문리뷰] Transformer (Attention Is All You Need)
해당 글은 wikidocs의 16 - 01 트랜스포머(Transformer)에 대한 글을 정리한 글입니다. 기존 Seq2Seq 모델의 한계Seq2Seq2 모델은 위와 같은 모습을 가진다. 인코더 파트에서는 입력 문장의 모든 단어들을 순
bruders.tistory.com
[최대한 쉽게 설명한 논문리뷰] Attention Is All You Need(Transformer 논문)
- Reference The Illustrated Transformer The Positional Encoding 를 어떻게 하는 것인가? 딥 러닝을 이용한 자연어 처리 입문 트랜스포머 (어텐션 이즈 올 유 니드) [딥러닝 기계 번역] Transformer: Attention Is All You Ne
hyunsooworld.tistory.com