1. 연구 주제
이 논문의 핵심 주제는 시퀀스 변환(sequence transduction) 문제를 RNN이나 CNN 없이, 오직 attention만으로 처리할 수 있는가이다. 저자들은 기존 번역 모델들이 인코더-디코더 구조 위에 RNN이나 CNN을 두고 attention을 보조적으로 붙이던 방식에서 벗어나, attention 자체를 모델의 중심 연산으로 삼는 Transformer를 제안했다.
문제의식은 분명하다.
- RNN은 순차적으로 계산해야 해서 병렬화가 어렵다.
- 시퀀스가 길어질수록 장거리 의존성을 학습하기 어렵다.
- 학습 시간과 연산 비용이 커진다.
논문은 이 제약을 해결하기 위해 recurrence와 convolution을 제거하고, self-attention과 feed-forward layer만으로 encoder-decoder를 구성한다. 그 결과 번역 품질은 더 좋아졌고, 학습도 훨씬 빠르게 진행되었다. 영어-독일어 번역에서는 28.4 BLEU, 영어-프랑스어 번역에서는 41.8 BLEU를 기록했다.
2. 이 연구를 진행하는 데 필요한 배경지식
2.1 Sequence-to-Sequence와 Encoder-Decoder

기존 기계번역 모델은 보통 입력 문장 $x_1, x_2, \dots, x_n$을 인코더가 받아 내부 표현 $z_1, z_2, \dots, z_n$으로 바꾸고, 디코더가 이를 바탕으로 출력 문장 $y_1, y_2, \dots, y_m$을 한 토큰씩 생성하는 구조를 사용한다. 논문도 이 큰 틀은 유지하지만, 내부 연산을 전부 attention 중심으로 바꾼다.
2.2 RNN의 한계
RNN은 현재 상태 $h_t$를 이전 상태 $h_{t-1}$에 의존해서 계산한다. 이 구조는 시간축을 따라 순서대로 계산해야 하므로 병렬화가 어렵다. 또한 멀리 떨어진 단어 관계를 잡는 데 불리하다. 저자들은 이 점을 Transformer의 출발점으로 삼는다.
2.3 Attention의 기본 개념
attention은 어떤 쿼리(query)가 주어졌을 때, 여러 key-value 쌍 중에서 중요한 정보를 골라 가중합하는 방식이다. 즉, 현재 보고 있는 위치가 입력 전체 중 어디를 얼마나 참고해야 하는지를 직접 계산한다. 논문에서는 이 attention을 보조 장치가 아니라 모델의 핵심 연산으로 쓴다.
2.4 Self-Attention
self-attention은 같은 시퀀스 내부의 각 위치들이 서로를 참고하는 방식이다. 예를 들어 문장 안의 한 단어가 자신보다 앞이나 뒤에 있는 다른 단어들과의 관계를 직접 계산할 수 있다. Transformer의 인코더는 전부 self-attention 기반이고, 디코더도 masked self-attention을 사용한다.
2.5 Residual Connection, Layer Normalization, Feed-Forward Network
Transformer의 각 층은 attention만으로 끝나지 않는다.
각 sub-layer 뒤에는 다음 형태가 붙는다.
[
\mathrm{LayerNorm}(x + \mathrm{Sublayer}(x))
]
이 식은 세 가지 의미를 가진다.
- Sublayer(x): 실제 변환 연산이다. 예를 들어 multi-head attention이나 FFN이 들어간다.
- x + Sublayer(x): residual connection이다. 원래 입력을 더해 정보 손실과 학습 불안정을 줄인다.
- LayerNorm: 정규화를 통해 학습을 안정화한다.
이 구조가 encoder와 decoder 전체에 반복된다.
2.6 Positional Encoding
attention만 쓰면 단어의 순서를 자연스럽게 알 수 없다. RNN은 순서대로 처리하므로 순서 정보가 구조 안에 묻어 있지만, Transformer는 병렬 처리하므로 순서를 따로 주입해야 한다. 이를 위해 positional encoding을 임베딩에 더한다.
3. 논문 내용 설명
3.1 전체 구조
Transformer는 encoder 6층, decoder 6층으로 구성된다.
논문 3페이지 Figure 1에는 이 구조가 시각적으로 정리되어 있다.

왼쪽은 encoder, 오른쪽은 decoder이며, 각 블록은 attention과 feed-forward, 그리고 Add & Norm으로 반복된다. 디코더에는 self-attention 외에 encoder output을 참조하는 attention이 하나 더 있다.
encoder의 한 층은 다음 두 부분으로 이루어진다.
- multi-head self-attention
- position-wise feed-forward network
decoder의 한 층은 다음 세 부분으로 이루어진다.
- masked multi-head self-attention
- encoder-decoder attention
- position-wise feed-forward network
여기서 masked attention은 미래 토큰을 보지 못하게 해서 autoregressive generation을 유지한다. 즉, $(i)$번째 단어를 예측할 때 $(i+1)$ 이후 정보는 쓰지 못하게 막는다.
3.2 핵심 수식 1: Scaled Dot-Product Attention
논문의 가장 핵심적인 식은 다음이다.
[
\mathrm{Attention}(Q, K, V) = \mathrm{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V
]
이 식을 구조적으로 나누면 다음과 같다.
1) 입력 행렬의 의미
- $Q$: Query matrix
- $K$: Key matrix
- $V$: Value matrix
각 토큰은 하나의 벡터로 표현되고, 여러 토큰을 한꺼번에 행렬로 묶는다.
예를 들어 입력 문장 길이가 $n$, 차원이 $d_k$라면:
- $Q \in \mathbb{R}^{n \times d_k}$
- $K \in \mathbb{R}^{n \times d_k}$
- $V \in \mathbb{R}^{n \times d_v})$
즉 각 위치는 “나는 무엇을 찾고 싶은가”라는 query와 “나는 어떤 정보를 가지고 있는가”라는 key/value를 동시에 가진다.
2) $QK^T$: 유사도 계산
[
QK^T
]
이 항은 각 query가 모든 key와 얼마나 잘 맞는지를 내적(dot product)으로 계산한 것이다.
결과는 $n \times n$ 행렬이 된다.
즉, 문장 내 각 단어가 다른 모든 단어를 얼마나 참고해야 하는지 점수표를 만든다.
3) $\sqrt{d_k}$로 나누는 이유
[
\frac{QK^T}{\sqrt{d_k}}
]
논문은 이 스케일링을 매우 중요하게 본다. $d_k$가 커지면 내적값의 분산이 커지고, softmax 입력값이 너무 큰 절댓값을 가지게 된다. 그러면 softmax가 지나치게 뾰족해져 gradient가 작아지고 학습이 불안정해질 수 있다. 이를 완화하려고 $\sqrt{d_k}$로 나눈다.
즉 이 항은 단순한 보정이 아니라, dot-product attention을 안정적으로 학습시키기 위한 분산 조절 장치다.
4) softmax: 확률적 가중치로 변환
[
\mathrm{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)
]
유사도 점수를 바로 쓰지 않고 softmax를 적용하면, 각 query에 대해 모든 key 방향으로의 가중치 합이 1이 된다.
이제 각 단어는 “어느 단어를 얼마나 참고할지”를 확률처럼 갖게 된다.
5) 마지막으로 $V$와 곱함
[
\mathrm{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V
]
이 단계에서 attention weight를 value에 적용해 가중합을 만든다.
즉, query는 어떤 정보를 볼지 결정하고, 실제 전달되는 내용은 value가 담당한다.
정리하면 이 수식은 다음 흐름이다.
- query와 key의 유사도 계산
- 스케일 조정
- softmax로 중요도 분포 생성
- value를 중요도만큼 섞어서 출력 생성
attention은 결국 입력 전체를 참조 가능한 메모리로 보고, 현재 위치가 필요한 정보만 골라 읽는 연산이라고 볼 수 있다.
3.3 핵심 수식 2: Multi-Head Attention
논문은 single attention보다 multi-head attention이 더 낫다고 본다.
[
\mathrm{MultiHead}(Q,K,V)=\mathrm{Concat}(head_1,\dots,head_h)W^O
]
[
head_i = \mathrm{Attention}(QW_i^Q, KW_i^K, VW_i^V)
]
이 식의 구조는 다음과 같다.
1) 입력을 여러 투영 공간으로 나눔
원래 $Q, K, V$를 그대로 attention에 넣지 않고, 각 head마다 다른 선형변환을 적용한다.
- $W_i^Q$
- $W_i^K$
- $W_i^V$
즉 head마다 서로 다른 관점으로 입력을 본다. 어떤 head는 문법 관계를 보고, 어떤 head는 장거리 의존성을 보고, 어떤 head는 대명사 참조를 볼 수 있다.
2) 각 head가 독립적으로 attention 수행
[
head_i = \mathrm{Attention}(QW_i^Q, KW_i^K, VW_i^V)
]
각 head는 작은 차원에서 attention을 수행한다. 논문 기본 설정에서는 $h=8$, $d_{model}=512$, 따라서 각 head의 $d_k=d_v=64$이다. 즉 512차원 전체를 한 번에 보는 대신, 64차원짜리 8개 시야로 나눠서 병렬적으로 관계를 본다.
3) concat 후 다시 선형변환
각 head 결과를 이어 붙인 뒤 $W^O$로 다시 투영한다.
[
\mathrm{Concat}(head_1,\dots,head_h)W^O
]
이 단계는 여러 관점에서 본 정보를 다시 통합해 하나의 표현으로 만드는 과정이다.
4) 왜 multi-head가 필요한가
논문은 single-head attention에서는 평균화 효과 때문에 다양한 관계를 동시에 잘 담기 어렵다고 본다. multi-head는 서로 다른 representation subspace와 위치 관계를 동시에 볼 수 있게 한다. 실제 부록의 attention visualization에서도 어떤 head는 장거리 의존성을, 어떤 head는 대명사 해석을 담당하는 식의 분화가 나타난다.


논문의 13~15페이지 그림들도 이를 보여준다.
3.4 핵심 수식 3: Position-wise Feed-Forward Network
attention 뒤에는 다음 식의 FFN이 들어간다.
[
\mathrm{FFN}(x)=\max(0, xW_1+b_1)W_2+b_2
]
이 식은 각 위치별로 독립적으로 적용된다.
구조 해석
- 첫 번째 선형변환
[
xW_1+b_1
]
입력 차원 $d_{model}=512$를 더 큰 차원 $d_{ff}=2048$로 확장한다. - ReLU
[
\max(0, \cdot)
]
비선형성을 넣어 단순 선형 변환만으로는 부족한 표현력을 보완한다. - 두 번째 선형변환
[
(\cdot)W_2+b_2
]
다시 2048에서 512로 줄여 원래 차원으로 복귀시킨다.
이 연산은 토큰 간 상호작용을 직접 만들지는 않는다. 토큰 간 관계는 attention이 담당하고, FFN은 각 토큰 표현을 더 풍부하게 변환하는 역할을 한다.
즉 Transformer 한 층은 대략 다음처럼 이해하면 된다.
- attention: 다른 토큰과 정보를 섞음
- FFN: 섞인 정보를 각 위치에서 비선형적으로 가공함
3.5 핵심 수식 4: Positional Encoding
Transformer는 순서 정보를 다음 식으로 넣는다.
[
PE(pos, 2i)=\sin\left(\frac{pos}{10000^{2i/d_{model}}}\right)
]
[
PE(pos, 2i+1)=\cos\left(\frac{pos}{10000^{2i/d_{model}}}\right)
]
이 수식은 처음 보면 복잡하지만 구조는 단순하다.
1) $pos$
토큰의 위치 인덱스다.
문장 첫 단어면 0, 둘째면 1, 셋째면 2처럼 들어간다.
2) $2i, 2i+1$
짝수 차원에는 sine, 홀수 차원에는 cosine을 넣는다.
즉 positional vector의 각 차원쌍이 하나의 주파수 성분을 이룬다.
3) $10000^{2i/d_{model}}$
차원이 커질수록 주기가 달라진다.
낮은 차원은 짧은 주기, 높은 차원은 긴 주기를 가진다.
그래서 한 위치는 여러 주파수 성분의 조합으로 표현된다.
4) 왜 이런 형태를 쓰는가
논문은 특정 거리 $k$만큼 떨어진 위치 관계를 모델이 선형적으로 다루기 쉬울 것이라고 본다. 즉 $PE_{pos+k}$가 $PE_{pos}$의 함수로 표현되므로, 절대 위치뿐 아니라 상대 거리 정보도 담기 쉽다. 또한 고정형 사인/코사인 방식은 학습 시 보지 못한 더 긴 길이의 시퀀스에도 외삽 가능성이 있다.
이 부분은 Transformer가 순서 개념을 잃지 않도록 해 주는 핵심 장치다.
3.6 핵심 수식 5: Learning Rate Schedule
학습률 스케줄도 논문에서 매우 유명하다.
[
lrate = d_{model}^{-0.5}\cdot \min(step_num^{-0.5},; step_num \cdot warmup_steps^{-1.5})
]
이 식은 두 구간으로 해석하면 쉽다.
1) 앞부분: warmup 구간
[
step_num \cdot warmup_steps^{-1.5}
]
초기에는 step이 커질수록 learning rate가 선형적으로 증가한다.
학습 시작 직후 너무 큰 학습률로 불안정해지는 것을 막으면서, 점차 적절한 크기로 끌어올린다.
2) 뒷부분: 감소 구간
[
step_num^{-0.5}
]
warmup이 끝난 뒤에는 학습률이 step의 역제곱근 비율로 감소한다.
즉 초반에는 빠르게 배우고, 후반에는 조금 더 안정적으로 수렴하도록 한다.
3) $d_{model}^{-0.5}$의 역할
모델 차원이 클수록 기본 스케일을 줄여준다.
즉 모델 크기에 따라 학습률 전체 크기를 보정한다.
이 스케줄은 이후 “Noam scheduler”로 널리 알려졌고, Transformer 학습 안정화의 핵심 요소 중 하나가 되었다.
3.7 왜 self-attention이 유리한가
논문은 self-attention, recurrent, convolution을 계산 복잡도와 경로 길이 측면에서 비교한다. 표 1에서는 self-attention이 한 층당 복잡도는 $O(n^2 \cdot d)$이지만, sequential operation은 $O(1)$, maximum path length도 $O(1)$임을 강조한다. 반면 recurrent는 sequential operation과 path length가 모두 $O(n)$이다.
이 비교가 의미하는 바는 다음과 같다.
- 병렬화가 쉽다
모든 위치를 한 번에 계산할 수 있다. - 장거리 의존성 학습에 유리하다
멀리 떨어진 두 토큰도 attention 한 번으로 직접 연결된다. - 해석 가능성이 있다
어떤 토큰이 다른 토큰을 참고했는지 attention map으로 어느 정도 볼 수 있다.
즉 Transformer의 장점은 단지 성능만이 아니라, 구조적으로도 시퀀스 처리에 더 직접적인 경로를 제공한다는 점이다.
4. 전체적인 결과
논문 결과는 크게 세 가지로 정리할 수 있다.
4.1 기계번역 성능 향상
WMT 2014 English-to-German에서 Transformer(big)은 28.4 BLEU를 기록했고, 이는 기존 최고 성능보다 2 BLEU 이상 높았다. English-to-French에서는 41.8 BLEU를 기록해 단일 모델 기준 새로운 최고 성능을 달성했다.
4.2 학습 비용 절감
영어-프랑스어 실험에서 Transformer(big)은 8개의 GPU로 3.5일 학습해 높은 성능을 냈다. 논문은 기존 모델 대비 훨씬 적은 훈련 비용으로 더 좋은 결과를 냈다고 강조한다. base model도 경쟁 모델들보다 낮은 비용 대비 강한 성능을 보였다.
4.3 다른 태스크로의 일반화
영문 constituency parsing에서도 Transformer는 WSJ only setting에서 91.3 F1, semi-supervised setting에서 92.7 F1을 기록했다. 이는 번역뿐 아니라 다른 구조적 시퀀스 문제에도 잘 일반화된다는 뜻이다.
5. 이러한 결과가 나온 이유
5.1 장거리 의존성을 직접 연결할 수 있었기 때문
RNN에서는 멀리 떨어진 정보가 여러 단계를 거쳐 전달된다. 하지만 self-attention에서는 어떤 두 위치든 직접 연결된다. 이 덕분에 문장 내 먼 거리의 문법 관계나 의미 관계를 더 효율적으로 학습할 수 있다. 논문 부록의 attention visualization도 이런 현상을 보여준다. 예를 들어 특정 head가 멀리 떨어진 의존 관계를 추적하거나, 대명사의 참조 대상을 강하게 보는 모습이 나타난다.
5.2 병렬화가 가능했기 때문
Transformer는 recurrence를 제거했기 때문에 학습 중 각 위치의 연산을 병렬로 처리할 수 있다. 이는 단순히 속도만 빠르게 한 것이 아니라, 같은 시간 안에 더 많은 실험과 더 큰 모델 학습을 가능하게 했다. 결과적으로 성능 향상에도 직접적으로 연결되었다.
5.3 Multi-Head Attention이 다양한 관계를 분리해서 학습했기 때문
한 개의 attention만 쓰면 관계 정보가 평균화되기 쉽다. 하지만 여러 head로 나누면 서로 다른 표현 공간에서 다른 유형의 관계를 동시에 학습할 수 있다. 실제 실험에서도 head 수를 너무 줄이거나 너무 늘리면 성능이 떨어졌고, 적절한 수의 head가 가장 좋은 결과를 냈다.
5.4 Attention만으로 끝내지 않고 FFN, Residual, LayerNorm, Positional Encoding을 함께 설계했기 때문
이 논문의 성공은 단순히 attention 하나를 넣은 데서 끝나지 않는다.
- attention이 토큰 간 관계를 섞고
- FFN이 각 위치 표현을 비선형적으로 가공하고
- residual이 깊은 학습을 돕고
- layer normalization이 학습을 안정화하고
- positional encoding이 순서 정보를 보완한다
즉 Transformer는 “attention만 있으면 된다”가 아니라, attention을 중심으로 한 전체 아키텍처 설계가 완성도 있게 결합된 모델이라고 보는 편이 맞다.
5.5 학습 기법도 잘 설계되었기 때문
Adam optimizer, warmup 기반 learning rate schedule, dropout, label smoothing 같은 학습 전략이 함께 쓰였다. 이런 요소들이 큰 모델을 안정적으로 학습시키는 기반이 되었다. 특히 learning rate schedule은 이후 Transformer 계열 학습의 표준처럼 자리 잡았다.
6. 느낀점
이 논문은 단순히 성능이 좋았던 모델 소개가 아니라, 시퀀스 모델링의 중심 연산을 바꾼 논문이라고 느껴졌다.
기존에는 시퀀스라고 하면 거의 당연하게 RNN 계열을 떠올리게 된다. 그런데 이 논문은 그 전제를 아예 뒤집는다. 순차성이 필요한 문제라도, 꼭 순차적으로 계산할 필요는 없다는 점을 보여준다. 이 발상이 이후 BERT, GPT, ViT 같은 거대한 흐름으로 이어졌다는 점에서 영향력이 매우 크다. 논문 결론에서도 저자들은 텍스트 외의 이미지, 오디오, 비디오 같은 다른 모달리티로 attention 기반 모델을 확장할 가능성을 직접 언급한다.
수식도 처음 보면 복잡해 보이지만, 하나씩 뜯어보면 전부 명확한 목적을 가진다.
- scaled dot-product는 유사도 계산과 안정화
- multi-head는 다양한 관계의 분리 학습
- positional encoding은 순서 정보 보완
- learning rate schedule은 학습 안정화
즉 이 논문은 복잡한 수식을 나열한 것이 아니라, 모델이 왜 이렇게 생겼는지 설계 의도가 수식 안에 드러나는 논문이었다.
개인적으로는 Transformer를 단순히 “어텐션 쓰는 모델” 정도로 알고 있을 때와, 이 논문을 직접 읽고 구조와 수식을 따라가며 이해할 때의 느낌이 꽤 달랐다. 특히 왜 $\sqrt{d_k}$로 나누는지, 왜 head를 여러 개 두는지, 왜 positional encoding을 사인/코사인으로 설계했는지를 이해하고 나면, 이후의 BERT나 GPT 구조를 볼 때도 훨씬 정리가 잘 된다.
결국 이 논문의 가장 큰 가치는, 복잡한 문제를 더 단순한 핵심 연산으로 재구성했다는 점에 있다고 생각한다. 그리고 그 단순화가 성능, 속도, 확장성까지 모두 가져왔다는 점에서 정말 강한 논문이라고 느꼈다.
'AI 공부' 카테고리의 다른 글
| GPT와 함께하는 A2C(Advantage Actor-Critic) 정리 (1) | 2026.03.16 |
|---|---|
| 내가 보려고 만든 사이킷런 정리 (0) | 2026.03.13 |
| 머신 러닝 (1) | 2026.03.13 |
| 논문 공부 과제 – End-to-End Object Detection with Transformers (DETR) (0) | 2026.03.02 |
| 논문 공부 과제 - Gradient-Based Learning Applied to Document Recognition (0) | 2026.01.02 |