Attention Is All You Need

오늘 살펴볼 논문은 현대 딥러닝의 기반이 된 Transformer 아키텍처를 처음 제안한 “Attention Is All You Need”입니다. 2017년 NeurIPS에서 발표된 이 논문은 recurrence와 convolution을 완전히 제거하고 attention mechanism만으로 시퀀스 변환(sequence transduction) 문제를 풀어냈습니다. 오늘날 BERT, GPT, T5 등 대부분의 Large Language Model (LLM)이 이 구조를 기반으로 하고 있습니다.

Motivation: RNN의 한계

2017년 이전의 sequence-to-sequence 모델들은 Recurrent Neural Network (RNN), 특히 Long Short-Term Memory (LSTM)와 Gated Recurrent Unit (GRU)에 기반하고 있었습니다. 이들은 입력 시퀀스를 시간 순서대로 순차(sequential) 처리합니다. 즉, 위치 $t$의 hidden state $h_t$는 반드시 이전 상태 $h_{t-1}$이 계산된 후에야 구할 수 있습니다.

이러한 순차적 특성은 두 가지 근본적인 문제를 낳습니다.

  1. 병렬화 불가: 시퀀스 길이 $n$에 비례하는 순차 연산이 필요하여, 긴 문장일수록 학습 속도가 크게 저하됩니다.
  2. 장거리 의존성 학습의 어려움: 두 위치 사이의 신호가 $O(n)$개의 순차 연산을 통과해야 하므로, 문장이 길수록 먼 위치 간의 dependency를 학습하기 어렵습니다.

Attention mechanism은 이미 RNN과 함께 쓰이며 긴 시퀀스에서의 성능을 향상시켰지만, 항상 recurrent layer와 결합되어 사용되었습니다. 저자들의 핵심 질문은 단순합니다. “Recurrence 없이 attention만으로 충분하지 않을까?”

Model Architecture

Transformer는 encoder-decoder 구조를 따릅니다. Encoder는 입력 시퀀스 $(x_1, \ldots, x_n)$을 연속 표현 $\mathbf{z} = (z_1, \ldots, z_n)$으로 변환하고, Decoder는 $\mathbf{z}$를 바탕으로 출력 시퀀스 $(y_1, \ldots, y_m)$을 autoregressive(자기 회귀)하게 생성합니다.

Figure 1: Transformer 전체 구조
Figure 1. Transformer 전체 아키텍처. 왼쪽이 Encoder, 오른쪽이 Decoder입니다. (Vaswani et al., 2017)

Encoder

Encoder는 $N = 6$개의 동일한 층(layer)을 쌓은 구조입니다. 각 층은 두 개의 sub-layer로 구성됩니다.

  1. Multi-Head Self-Attention: 입력 시퀀스의 모든 위치가 서로를 참조합니다.
  2. Position-wise Feed-Forward Network (FFN): 각 위치에 독립적으로 적용되는 2층 완전연결 신경망입니다.

각 sub-layer의 출력에는 residual connection과 layer normalization이 적용됩니다.

\[\text{output} = \text{LayerNorm}(x + \text{Sublayer}(x))\]

모든 sub-layer와 embedding layer의 출력 차원은 $d_\text{model} = 512$로 통일하여 residual connection이 원활하게 동작하도록 합니다.

Decoder

Decoder 역시 $N = 6$층으로 구성되며, Encoder의 두 sub-layer에 더해 세 번째 sub-layer가 추가됩니다. 이 층은 Encoder의 출력에 대해 Multi-Head Attention을 수행하는 Encoder-Decoder Attention입니다.

Decoder의 self-attention에는 Masked Multi-Head Attention이 사용됩니다. Autoregressive 생성의 특성상, 위치 $i$에서의 예측은 $i$보다 앞선 위치의 출력에만 의존해야 합니다. 이를 보장하기 위해 softmax 입력에서 미래 위치($i$ 이후)를 $-\infty$로 마스킹하여 attention 가중치가 0이 되도록 강제합니다.

Methodology

Scaled Dot-Product Attention

Figure 2: Scaled Dot-Product Attention과 Multi-Head Attention
Figure 2. (왼쪽) Scaled Dot-Product Attention, (오른쪽) Multi-Head Attention 구조 (Vaswani et al., 2017)

Attention function은 Query, Key, Value 세 종류의 벡터를 받아 output을 계산하는 함수입니다. Output은 Value들의 가중합(weighted sum)이며, 가중치는 Query와 Key의 호환성(compatibility)으로 결정됩니다.

이 논문에서 제안하는 Scaled Dot-Product Attention은 다음과 같이 정의됩니다.

\[\text{Attention}(Q, K, V) = \text{softmax}\!\left(\frac{QK^T}{\sqrt{d_k}}\right)V\]

$QK^T$는 Query와 모든 Key 사이의 dot product를 한 번에 계산한 $n \times m$ 점수 행렬입니다. 이를 $\sqrt{d_k}$로 나누어 스케일링한 뒤 softmax를 취하여 attention 가중치를 얻고, 이 가중치로 Value를 가중합합니다.

스케일링의 이유: $d_k$가 커질수록 dot product의 분산이 $d_k$에 비례하여 커집니다. ($q$와 $k$의 각 성분이 평균 0, 분산 1의 독립 변수라면, $q \cdot k$의 분산은 $d_k$입니다.) 값이 커진 dot product는 softmax를 매우 작은 기울기 영역으로 밀어 넣어 gradient가 소실됩니다. $\sqrt{d_k}$로 나눔으로써 이를 방지합니다.

Multi-Head Attention

단일 attention function으로 $d_\text{model}$차원을 처리하는 대신, Query, Key, Value를 $h$번 서로 다른 선형 투영(linear projection)으로 줄인 뒤 각각 독립적으로 attention을 수행합니다. 이 방식이 Multi-Head Attention입니다.

\[\text{MultiHead}(Q, K, V) = \text{Concat}(\text{head}_1, \ldots, \text{head}_h) W^O\] \[\text{head}_i = \text{Attention}(QW_i^Q, KW_i^K, VW_i^V)\]

이 논문에서는 $h = 8$, $d_k = d_v = d_\text{model}/h = 64$를 사용합니다. 각 head의 차원이 $1/h$로 줄었으므로, 전체 계산 비용은 단일 full-dimensional attention과 유사합니다.

설계 의도: 단일 attention은 전체 표현 공간을 평균하여 참조합니다. 반면 여러 head를 두면, 각 head가 서로 다른 표현 부분공간(representation subspace)에서 서로 다른 위치 간의 관계를 동시에 학습할 수 있습니다. 예컨대 어떤 head는 통사적(syntactic) 관계를, 다른 head는 의미적(semantic) 관계를 포착할 수 있습니다.

Applications of Attention

Transformer는 Multi-Head Attention을 세 가지 방식으로 활용합니다.

위치 Query 출처 Key/Value 출처 역할
Encoder Self-Attention Encoder 이전 층 Encoder 이전 층 입력 내 모든 위치 간 상호 참조
Decoder Masked Self-Attention Decoder 이전 층 Decoder 이전 층 (현재 위치까지만) 이미 생성된 토큰만 참조
Encoder-Decoder Attention Decoder 이전 층 Encoder 최종 출력 입력 시퀀스 전체를 참조하며 디코딩

Position-wise Feed-Forward Networks

각 층의 attention sub-layer 뒤에는 위치별로 동일하게 적용되는 FFN이 따라옵니다.

\[\text{FFN}(x) = \max(0,\, xW_1 + b_1)W_2 + b_2\]

입력/출력 차원은 $d_\text{model} = 512$이고, 내부 차원은 $d_\text{ff} = 2048$입니다. 각 층은 서로 다른 파라미터를 가지지만, 같은 층 내에서는 위치에 무관하게 동일한 파라미터가 사용됩니다. 이는 커널 크기 1인 두 convolution으로 이해할 수도 있습니다.

Positional Encoding

Transformer에는 recurrence도 convolution도 없으므로, 시퀀스 내 토큰의 순서 정보를 별도로 주입해야 합니다. 저자들은 embedding에 Positional Encoding을 더합니다.

\[PE_{(pos, 2i)} = \sin\!\left(\frac{pos}{10000^{2i/d_\text{model}}}\right)\] \[PE_{(pos, 2i+1)} = \cos\!\left(\frac{pos}{10000^{2i/d_\text{model}}}\right)\]

각 차원은 서로 다른 주파수의 sinusoid에 대응합니다. 이 함수를 선택한 이유는 임의의 고정 offset $k$에 대해 $PE_{pos+k}$를 $PE_{pos}$의 선형 함수로 표현할 수 있어, 모델이 상대 위치(relative position)를 쉽게 학습할 수 있다는 가설 때문입니다. 학습된 positional embedding과 비교했을 때 거의 동일한 성능을 보였으며, sinusoidal 버전은 학습 시 보지 못한 더 긴 시퀀스에 대한 외삽(extrapolation) 가능성이 있어 채택되었습니다.

Why Self-Attention?

저자들은 Self-Attention을 Recurrent, Convolutional 층과 세 가지 기준으로 비교합니다.

층 유형 층당 복잡도 순차 연산 수 최대 경로 길이
Self-Attention $O(n^2 \cdot d)$ $O(1)$ $O(1)$
Recurrent $O(n \cdot d^2)$ $O(n)$ $O(n)$
Convolutional (k) $O(k \cdot n \cdot d^2)$ $O(1)$ $O(\log_k n)$
Self-Attention (restricted, r) $O(r \cdot n \cdot d)$ $O(1)$ $O(n/r)$

Training

\[\text{lrate} = d_\text{model}^{-0.5} \cdot \min(\text{step\_num}^{-0.5},\ \text{step\_num} \cdot \text{warmup\_steps}^{-1.5})\]

처음 warmup_steps = 4000 스텝 동안 학습률을 선형으로 증가시키고, 이후 step number의 역제곱근에 비례하여 감소시킵니다. 초기에 너무 큰 학습률로 발산하는 것을 방지하고 이후 안정적으로 수렴하도록 유도합니다.

Label smoothing은 perplexity를 약간 높이지만, 모델이 과도하게 확신하지 않도록 만들어 accuracy와 BLEU 점수를 향상시킵니다.

Results

Machine Translation

모델 EN-DE BLEU EN-FR BLEU 학습 비용 (FLOPs)
GNMT + RL [Wu et al.] 24.6 39.92 $2.3 \times 10^{19}$
ConvS2S [Gehring et al.] 25.16 40.46 $9.6 \times 10^{18}$
MoE [Shazeer et al.] 26.03 40.56 $2.0 \times 10^{19}$
ConvS2S Ensemble 26.36 41.29 $7.7 \times 10^{19}$
Transformer (base) 27.3 38.1 $3.3 \times 10^{18}$
Transformer (big) 28.4 41.8 $2.3 \times 10^{19}$

Transformer (big)은 WMT 2014 EN-DE에서 기존 앙상블 모델들을 포함한 모든 선행 모델보다 2.0 BLEU 이상 높은 28.4 BLEU를 달성했습니다. EN-FR에서도 41.8 BLEU로 단일 모델 기준 state-of-the-art를 세웠으며, 이를 학습하는 데 8개의 P100 GPU로 단 3.5일이 소요되었습니다. 이전 최고 모델보다 1/4에 불과한 비용입니다.

Base 모델조차 기존의 모든 단일 모델과 앙상블을 능가했으며, 학습 비용은 경쟁 모델의 일부에 불과합니다.

Attention Visualization

Figure 3: Attention 시각화
Figure 3. 장거리 의존성을 포착하는 attention mechanism의 예시. "making"이 "more difficult"를 강하게 참조합니다. (Vaswani et al., 2017)

Attention head의 가중치를 시각화하면 각 head가 서로 다른 언어적 관계를 포착한다는 것을 알 수 있습니다. Figure 3에서 볼 수 있듯이, 특정 head는 문장 내 의미적으로 연관된 단어들, 특히 먼 거리에 있는 단어들 사이의 의존성을 명확하게 포착합니다. “making”이라는 단어가 “more difficult”와 강하게 연결되어 있음을 확인할 수 있습니다.

Model Variations (Ablation Study)

저자들은 다양한 하이퍼파라미터 변형 실험을 통해 설계 선택을 검증했습니다.

Limitations

Conclusion

“Attention Is All You Need”는 sequence-to-sequence 모델링에서 recurrence를 완전히 제거하고 attention만으로 전례 없는 성능과 학습 효율을 동시에 달성했습니다. Scaled Dot-Product Attention과 Multi-Head Attention이라는 간결하고 강력한 구성 요소, 그리고 sinusoidal positional encoding이라는 우아한 설계는 이후 딥러닝 전반의 패러다임을 바꾸었습니다.

오늘날 Transformer는 자연어 처리를 넘어 컴퓨터 비전(ViT), 음성 처리(Whisper), 단백질 구조 예측(AlphaFold2) 등 사실상 모든 딥러닝 분야에서 지배적인 아키텍처로 자리잡았습니다. 이 논문 한 편이 현대 AI의 모습을 얼마나 크게 바꾸었는지를 생각하면, “Attention Is All You Need”라는 제목이 단순한 기술적 주장을 넘어 하나의 선언처럼 느껴집니다.