Transformer: Attention Is All You Need

2026. 1. 18. 21:51·ML&DL/논문리뷰

Abstract

기존의 시퀀스 변환 모델들은 주로 RNN이나 CNN 같은 구조에 의존해 왔습니다. 이런 모델들은 문장을 앞에서부터 순서대로 처리해야 했기 때문에, 계산이 느리고 한 번에 많은 단어를 동시에 처리하기가 어려웠습니다. 이에 비해 Transformer는 기존 방식과 달리, 어텐션만으로 문장을 처리하는 새로운 구조를 제안합니다. 이 구조에서는 문장 속 모든 단어가 서로를 한 번에 참고할 수 있어, 계산을 동시에 수행할 수 있고 그만큼 학습 속도와 효율이 크게 향상됩니다.

 

실제 실험 결과를 보면, Transformer는 WMT 2014 영어–독일어 번역에서 BLEU 28.4, 영어–프랑스어 번역에서 BLEU 41.8이라는 높은 성능을 기록하며, 기존 최고 성능 모델들을 넘어섰습니다. 특히 영어–프랑스어 번역의 경우, 8개의 GPU로 3.5일만 학습하고도 단일 모델 기준 최고 성능을 달성했다는 점에서, 효율성 측면에서도 큰 장점을 보여줍니다.

또한 Transformer는 번역뿐 아니라 영어 문장의 구조를 분석하는 구문 분석에도 잘 적용되며, 특정 문제에만 특화된 모델이 아니라 다양한 시퀀스 처리 문제에 활용할 수 있는 범용적인 아키텍처임을 입증합니다.

시퀀스 변환 모델이란?
길이가 일정하지 않은 입력 문장(시퀀스)을 받아, 또 다른 문장 형태의 출력 시퀀스(예: 번역문장, 요약문장)를 만들어내는 모델을 말합니다.

 

1 Introduction

기존의 번역이나 문장 생성 같은 시퀀스 처리 문제에서는 RNN, LSTM, GRU와 같은 순환 신경망 기반 모델이 오랫동안 사용되어 왔습니다. 이런 모델들은 문장을 앞에서부터 뒤로 차례대로 한 단어씩 처리하기 때문에, 이전 단어 계산이 끝나야 다음 단어를 처리할 수 있습니다. 이로 인해 문장이 길어질수록 계산이 느려지고, 여러 단어를 동시에 처리하는 병렬 계산이 어렵다는 한계가 있었습니다. 계산을 빠르게 하려는 여러 개선 시도들이 있었지만 순서대로 계산해야 한다는 근본적인 문제는 해결되지 않았습니다.

 

이후 등장한 어텐션 메커니즘은 단어 사이의 거리에 상관없이 서로의 관계를 직접 참고할 수 있게 해 주면서, 번역을 비롯한 다양한 분야에서 중요한 역할을 하게 되었습니다. 하지만 기존 모델에서는 어텐션이 어디까지나 순환 신경망을 보조하는 도구로 사용되었을 뿐 순환 구조 자체를 대체하지는 못했습니다.

 

이러한 배경에서 등장한 것이 Transformer입니다. Transformer는 기존과 달리 순환 신경망이나 합성곱을 전혀 사용하지 않고, 오직 self-attention만으로 문장을 처리하는 새로운 구조를 제안합니다. 이 구조에서는 문장 속 모든 단어가 서로를 한 번에 참고할 수 있기 때문에, 단어들을 동시에 계산하는 것이 가능해집니다. 그 결과 병렬 처리가 가능해지고 학습 속도와 효율이 기존 모델들에 비해 크게 향상됩니다.

 

2 Background

기존 연구에서는 CNN 기반 시퀀스 모델(Extended Neural GPU, ByteNet, ConvS2S 등)이 사용되어 왔습니다. 이런 모델들은 문장 안의 모든 단어를 동시에 처리할 수 있어 병렬 계산이 가능하다는 장점이 있습니다. 하지만 단어 사이의 거리가 멀어질수록, 그 관계를 연결하기 위해 더 많은 연산 단계가 필요해진다는 한계가 있습니다.

 

이에 비해 self-attention은 단어 사이의 거리와 상관없이, 멀리 떨어진 단어들 간의 관계를 한 번에 직접 계산할 수 있습니다. 다만 하나의 attention 연산은 여러 단어 정보를 가중 평균으로 섞는 방식이기 때문에, 서로 다른 관계 정보가 한 표현 안에 섞여 세밀한 정보가 흐려질 수 있는 문제가 있습니다. 이를 보완하기 위해 논문에서는 Multi-Head Attention을 도입합니다. 여러 개의 attention을 병렬로 수행해, 각기 다른 관점에서 단어 관계를 바라보도록 함으로써 더 풍부한 표현을 학습할 수 있게 합니다.

 

또한 self-attention은 이미 독해, 요약, 문장 표현 학습 등 다양한 자연어 처리 과제에서 효과가 입증된 기법이며, End-to-End 메모리 네트워크 역시 순환 구조 대신 어텐션을 활용해 좋은 성능을 보였습니다. 그럼에도 불구하고, 순환 신경망이나 합성곱을 전혀 사용하지 않고 오직 self-attention만으로 입력과 출력을 모두 처리하는 시퀀스 변환 모델은 이전까지 제안된 적이 없었습니다. 이 논문은 Transformer를 최초로 제안하며, self-attention만으로도 시퀀스 변환이 충분히 가능하다는 점을 보여줍니다.

 

3 Model Architecture

Transformer는 기존의 encoder–decoder 구조는 유지하면서, 기존에 사용되던 RNN이나 CNN을 완전히 제거하고 self-attention과 feed-forward network(FFN)만으로 인코더와 디코더를 구성한 모델입니다.

 

인코더는 입력 시퀀스 x1:n을 받아 각 토큰을 연속적인 벡터 표현 z1:n으로 변환합니다. 디코더는 이 인코더의 출력 전체를 참고하여, 출력 시퀀스 y1:m​을 한 토큰씩 순차적으로 생성합니다. 이미 생성된 토큰들만을 바탕으로 다음 토큰을 예측하는 일반적인 언어 생성 모델과 동일한 auto-regressive 방식입니다.

 

3.1 Encoder / Decoder Stacks

Encoder

인코더는 동일한 구조의 레이어 6개(N=6)를 차례대로 쌓아 구성됩니다. 각 레이어는 다음 두 개의 서브레이어로 이루어져 있습니다.

  • Multi-Head Self-Attention
  • Position-wise Feed-Forward Network(FFN)

각 서브레이어에는 Residual connection과 Layer Normalization이 적용됩니다. 이를 위해 모든 서브레이어의 출력 차원은 dmodel = 512로 통일되어 있으며, 이 덕분에 레이어를 깊게 쌓아도 학습이 안정적으로 이루어집니다. 이러한 구조를 통해 인코더는 문장 전체를 동시에 고려하면서, 각 단어가 문장 내 다른 단어들과 어떤 관계를 가지는지를 직접 학습할 수 있습니다.

 

Decoder

디코더 역시 6개의 레이어를 쌓아 구성하지만, 각 레이어는 인코더보다 하나 더 많은 3개의 서브레이어를 가집니다.

  • Masked Multi-Head Self-Attention
  • Encoder–Decoder Attention (Cross-Attention)
  • Feed-Forward Network(FFN)

디코더의 self-attention에는 masking이 적용됩니다. 이는 현재 위치 이후의 토큰, 즉 아직 생성되지 않은 미래 단어를 보지 못하도록 제한하며 위치 i에서의 예측은 항상 i보다 앞에 생성된 토큰들에만 의존하게 됩니다. 이러한 설계를 통해 디코더는 언어 생성에 필요한 auto-regressive 특성을 자연스럽게 유지하면서도, 인코더가 만든 입력 문장의 전체 정보를 효과적으로 활용할 수 있습니다.

auto-regressive란?
이전 출력(이미 만든 토큰들)을 입력으로 다시 넣어서, 다음 출력을 하나씩 생성하는 방식

 

3.2 Attention

Scaled Dot-Product Attention

 

논문에서는 Transformer의 핵심 연산으로 Scaled Dot-Product Attention을 사용합니다. attention은 기본적으로 쿼리(Query)와 키(Key)를 내적해, 이 단어가 다른 단어를 얼마나 참고해야 하는지를 계산하는 방식입니다. 문제는 쿼리와 키의 차원인 dk​가 커질수록 내적 값이 점점 커진다는 점입니다. 이 값이 너무 커지면 softmax가 거의 한쪽 값만 선택하게 되고, 그 결과 학습에 필요한 gradient가 거의 전달되지 않는 상황이 발생할 수 있습니다. 이를 방지하기 위해 논문에서는 쿼리와 키의 내적 결과를 √dk로 나누는 스케일링을 적용합니다. 이 스케일링을 통해 attention 값의 크기를 적절하게 유지할 수 있고, 전체 학습 과정도 보다 안정적으로 진행됩니다.

 

Multi-Head Attention

self-attention인 경우에만 Q=K=V=X 입니다. n은 문장의 토큰 수

 

Transformer는 하나의 attention만 사용하는 대신, 여러 개의 attention을 동시에 수행하는 Multi-Head Attention 구조를 사용합니다.

 

과정은 다음과 같습니다:
1. 입력으로 들어온 Q,K,V를 서로 다른 선형 변환을 통해 여러 개로 나눕니다.
2. 나눠진 각각의 Q,K,V에 대해 attention을 각각 따로 계산하고

3. 그 결과를 다시 하나로 이어 붙인 뒤(concat) 한 번 더 선형 변환을 적용합니다.

 

논문에서 사용한 기본 설정은 다음과 같습니다.

  • attention head 개수: 8개
  • 각 head의 차원: 64

이 방식의 장점은 계산량을 크게 늘리지 않으면서도, 각 attention head가 서로 다른 관점에서 단어 간 관계를 학습할 수 있게 만든다는 점입니다.

 

Attention이 사용되는 위치

Transformer에서는 attention이 한 곳에서만 사용되지 않고, 다음 세 가지 위치에서 각각 다른 역할을 수행합니다.

  • 인코더 self-attention
    → 입력 문장 안에서 단어들 사이의 관계를 학습합니다.
  • 디코더 masked self-attention
    → 이미 생성된 출력 토큰들만 참고하도록 제한된 attention입니다.
    미래 토큰을 보지 못하게 함으로써, 문장을 한 단어씩 생성하는 특성을 유지합니다.
  • 인코더–디코더 attention
    → 디코더가 다음 단어를 생성할 때, 입력 문장의 어떤 부분을 참고해야 할지를 결정합니다.

이처럼 Transformer는 attention을 중심으로 입력 내부 관계, 출력 내부 관계, 그리고 입력과 출력 사이의 관계까지 하나의 통일된 방식으로 처리하는 구조를 가지고 있습니다.

 

3.3 Position-wise Feed-Forward Network

Transformer의 각 인코더와 디코더 레이어에는 Position-wise Feed-Forward Network(FFN)가 포함되어 있습니다. 이 FFN은 각 토큰 위치에 독립적으로 적용되는 작은 신경망입니다. 구조는 2층 MLP로 이루어져 있으며, 선형 변환 → ReLU → 선형 변환 순서로 동작합니다.

말 그대로 선형 변환 → ReLU → 선형 변환 적용

 

논문에서 사용한 기본 설정은 다음과 같습니다.

  • 입력 및 출력 차원: dmodel = 512
  • 내부 은닉 차원: dff(FFN의 중간층의 차원) = 2048

FFN은 단어들 사이의 관계를 직접 다루지는 않습니다. 단어 간 상호작용은 이미 attention에서 처리되었고, FFN은 그 결과로 나온 각 토큰의 표현을 비선형적으로 변형합니다.

 

3.4 Embeddings and Softmax

Transformer에서는 입력 토큰과 출력 토큰을 모두 512차원 임베딩 벡터로 변환합니다. 디코더의 최종 출력은 선형 변환과 softmax를 거쳐, 다음에 등장할 토큰에 대한 확률 분포로 변환됩니다.

 

또한 Transformer는 입력 임베딩, 출력 임베딩, softamx 이전의 선형변환 세 가지에 같은 가중치를 공유합니다. 이러한 가중치 공유는 모델 파라미터 수를 줄이면서도 성능을 유지하는 데 도움을 줍니다. 또한 임베딩 벡터에는 √d_{model} 스케일을 곱해, 학습 초기에 값의 크기가 지나치게 작아지는 것을 방지합니다.

 

3.5 Positional Encoding

Transformer에는 RNN이나 CNN처럼 토큰의 순서를 자연스럽게 처리해 주는 구조가 없습니다. 따라서 단어의 순서 정보는 따로 명시적으로 넣어줘야 합니다. 이를 위해 논문에서는 입력 임베딩에 positional encoding을 더하는 방식을 사용합니다. 기본적으로는 사인과 코사인 함수로 만든 고정된 positional encoding을 사용합니다.

pos는 토큰의 위치, i는 차원 인덱스 (짝수 차원(0,2,4,…)에는 sin, 홀수 차원(1,3,5,…)에는 cos), i가 작을수록 분모가 작음 → 각도가 빨리 변하며, i가 클수록 분모가 큼 → 각도가 천천히 변함

 

논문에서 실험적으로 학습형 positional embedding을 사용해도 성능 차이는 거의 없으며, 고정 방식은 학습 시 보지 못한 더 긴 문장 길이에도 잘 일반화된다고 언급합니다.  이러한 이유로 사인/코사인 기반의 positional encoding을 기본 선택으로 사용합니다.

 

4. Why Self-Attention

self-attention이 기존 구조들(RNN, CNN)보다 어떤 점에서 유리한지를 비교하면서 설명합니다.

 

1) 병렬 처리

 

Table 1에서 Sequential Operations(순차 연산 수)를 보면,

  • RNN: O(n)
    → 토큰을 하나 처리해야 다음 토큰으로 넘어갈 수 있음
  • Self-Attention: O(1)
    → 모든 토큰을 한 번에 처리 가능
  • Convolution: O(1)

RNN은 문장이 길어질수록 계산을 순서대로 오래 기다려야 하지만, self-attention은 GPU에서 모든 토큰을 동시에 계산할 수 있습니다. 이 때문에 Transformer는 학습과 추론 모두에서 병렬화에 매우 유리한 구조를 가집니다.

 

2) 장거리 의존성

 

Table 1의 Maximum Path Length 항목은 멀리 떨어진 두 단어가 서로 영향을 주기까지 몇 단계를 거쳐야 하는지를 나타냅니다.

  • Self-Attention: O(1)
    → 어떤 두 단어든 한 번의 attention으로 직접 연결
  • RNN: O(n)
    → 앞에서 뒤로 순차적으로 전달
  • Convolution: O(log n) 또는 그 이상

self-attention에서는 문장 앞의 단어와 뒤의 단어가 바로 서로를 볼 수 있지만, RNN이나 CNN에서는 여러 단계를 거쳐야만 연결됩니다.

따라서 논문은 장거리 의존성을 학습하는 데 self-attention이 유리하다고 설명합니다.

 

3) 연산 복잡도

 

Table 1을 보면 self-attention의 복잡도는 O(n2⋅d)로 나타나 있어 처음에는 계산량이 꽤 클 것처럼 느껴질 수 있습니다. 하지만 논문에서는 실제 번역 모델에서 자주 쓰이는 설정을 기준으로 보면 문장 길이 n보다 표현 차원 d가 더 큰 경우가 많다고 설명합니다.

이 경우에 RNN의 O(n⋅d2) 연산이 더 부담될 수 있고 self-attention은 충분히 경쟁력 있는 선택이 됩니다. 즉, 단순히 이론적인 최악의 복잡도만 볼 것이 아니라, 실제 사용하는 환경에서는 self-attention이 효율적이라는 점을 강조합니다.

 

4) 긴 문장 대응

 

Table 1에는 restricted self-attention도 함께 나와 있습니다. restricted self-attention은 주변 r개 토큰만 보도록 제한되어, 연산량은 줄어들지만 path length는 O(n/r)로 늘어납니다. 논문은 이를 통해 self-attention이 단일 고정 구조가 아니라, 문제 상황에 맞게 조절 가능한 구조임을 보여줍니다.

 

5 Training

5.1 Training Data and Batching

논문에서는 표준 번역 데이터셋인 WMT 2014를 사용합니다.

  • 영어–독일어(EN–DE): 약 450만 문장 쌍
  • 영어–프랑스어(EN–FR): 약 3600만 문장 쌍

토큰화는 서브워드 단위로 진행합니다.

  • EN–DE: BPE(Byte-Pair Encoding), 약 37k vocab
  • EN–FR: WordPiece, 약 32k vocab

배치는 문장 개수 기준이 아니라, 토큰 개수 기준으로 묶습니다. GPU 메모리를 더 효율적으로 사용하기 위해, 한 배치에는 대략 입력 토큰 25,000개, 출력 토큰 25,000개 정도가 들어가도록 구성합니다.

 

서브워드란?
단어보다 작은 단위의 토큰으로, 번역에서 희귀 단어를 덜 깨지게 처리하고, vocab 크기를 과도하게 키우지 않기 위해 본 논문에선 입력을 서브워드(BPE/WordPiece) 단위로 쪼개 학습한다

 

5.2 Hardware and Schedule

모든 실험은 NVIDIA P100 GPU 8개를 사용해 진행합니다. 기존 RNN 기반 번역 모델들과 비교하면, 훨씬 짧은 시간 안에 높은 성능을 달성했습니다.

 

5.3 Optimizer


Optimizer는 Adam을 사용합니다. (β₁ = 0.9 β₂ = 0.98 ε = 1e-9)

 

Learning rate는 고정값이 아니라, warmup 스케줄을 사용합니다. 학습 초반에는 learning rate를 점점 키우다가, 일정 step 이후에는 천천히 줄이는 방식입니다. 이는 학습 초반 불안정한 업데이트를 막고 attention 기반 모델을 안정적으로 학습시키는 데 큰 역할을 합니다.

 

5.4 Regularization

(1) Residual Dropout

sub는 서브레이어 연산을 뜻함

 

Transformer에서는 과적합을 막기 위해 Residual Dropout을 사용합니다. 각 서브레이어의 출력에 먼저 dropout을 적용한 뒤, 그 결과를 입력과 더해(residual connection) Layer Normalization을 수행합니다. 이렇게 하면 서브레이어가 만들어낸 특정 특징에 과도하게 의존하지 않도록 학습을 유도하면서도, residual 연결 덕분에 기존 입력 정보는 안정적으로 유지할 수 있습니다. 또한 dropout은 attention이나 FFN 내부뿐만 아니라, 토큰 임베딩과 positional encoding을 더한 입력 단계에도 적용됩니다. 논문에서는 이러한 regularization을 위해 기본적으로 dropout 비율 0.1을 사용합니다.

 

(2) Label Smoothing

학습 과정에서는 Label Smoothing 기법도 함께 사용합니다. 일반적으로 다음 토큰 예측에서는 정답 토큰에 확률 1을 주지만, label smoothing은 정답을 약간 흐리게 만들어(1-ε) 모델이 지나치게 확신을 갖지 않도록 합니다. 논문에서는 ε = 0.1을 사용하며, 정답 토큰에만 과도하게 집중하는 학습을 완화하는 역할을 합니다. 이로 perplexity 기준 성능은 다소 나빠질 수 있지만, 번역 품질을 직접 반영하는 정확도와 BLEU 점수는 오히려 개선되는 효과를 보였습니다.

 

6 Results

6.1 Machine Translation

논문에서는 WMT 2014 번역 벤치마크를 사용해 Transformer를 평가합니다. 

  • 영어 → 독일어 (EN–DE)
  • 영어 → 프랑스어 (EN–FR)

 

영어→독일어 번역에서 Transformer (big) 모델은 BLEU 28.4를 기록합니다. 이는 기존 최고 성능이었던 모델들(앙상블 포함)보다 2 BLEU 이상 높은 수치입니다. 이 성능을 단일 모델로 앙상블 모델을 능가했습니다.

영어→프랑스어 번역에서도 Transformer (big)는 BLEU 41.8을 기록하며, 기존 최고 단일 모델보다 높은 성능을 보입니다. 동시에 학습 비용은 이전 모델 대비 약 1/4 수준으로 줄었습니다.

 

6.2 Model Variations

논문에서는 Transformer의 성능이 특정 설정에 우연히 의존한 것이 아님을 보이기 위해, 여러 구조적 요소를 바꿔가며 실험을 진행합니다. attention head 수, head 차원, 모델 크기, dropout 비율, positional encoding 방식 등을 각각 변화시켜 성능을 비교합니다.

 

 

 

(A)에서는 attention head 수를 조절한 결과, head가 너무 적으면 다양한 관계를 포착하지 못하고, 반대로 너무 많아도 성능이 떨어진다는 점이 확인됩니다. → Multi-Head Attention에서는 적절한 head 수 선택이 중요합니다.

(B)에서는 attention의 key와 value 차원을 줄일 경우 성능이 저하됨을 보이며, dot-product attention이 충분한 표현 차원을 필요로 한다는 점을 보여줍니다.

(C)에서는 레이어 수와 차원 크기를 키울수록 모델 성능이 전반적으로 향상되는 경향이 관찰됩니다.

(D)에서는 dropout이 과적합을 줄이고 성능을 높이는 데 중요한 역할을 한다는 점이 확인됩니다.

(E)에서는 사인/코사인 기반 positional encoding과 학습형 positional embedding 사이에 성능 차이가 거의 없다는 결과가 보여집니다.

 

6.3 English Constituency Parsing

Transformer가 번역에만 특화된 모델이 아님을 보여주기 위해, 논문에서는 영어 구문 분석(parsing) 실험도 수행합니다.

 

Penn Treebank(WSJ) 데이터를 사용한 실험에서, Transformer는 기존의 RNN 기반 파서들과 비교해 경쟁력 있는 성능을 보이며, 일부 설정에서는 더 나은 결과를 기록합니다. 특히 학습 데이터가 많지 않은 상황에서도 안정적인 성능을 보였다는 점에서, Transformer가 다양한 시퀀스 처리 문제에 일반적으로 적용 가능한 모델임을 보여줍니다.

 

7 Conclusion

Transformer는 RNN이나 CNN 없이 self-attention만으로 시퀀스 변환을 수행할 수 있음을 처음으로 보여준 모델입니다. 문장을 순차적으로 처리하지 않고, 전체를 한 번에 바라보며 토큰 간 관계를 직접 계산하는 방식이 핵심입니다.

 

해당 구조 덕분에 Transformer는 병렬화가 가능해 학습이 빠르고, 장거리 의존성을 효과적으로 처리할 수 있습니다. 실제 기계번역 실험에서도 기존 최고 성능 모델들을 능가하는 결과를 보이며, 성능과 효율 두 측면에서 모두 강점을 입증했습니다.

 

또한 Transformer는 번역에만 국한되지 않고, 다양한 시퀀스 처리 문제에 일반적으로 적용 가능한 구조임을 보여줍니다. 이 논문은 시퀀스 모델링에 반드시 순환이나 합성곱이 필요하지는 않다는 점을 명확히 제시하며, 이후 BERT와 GPT 같은 모델들의 기반이 되는 중요한 전환점을 만들었습니다.

 

Attention Visualizations

Encoder–Decoder Attention: 디코더의 encoder–decoder attention이 실제로 어떻게 동작하는지를 보여주는 예시

 

Self-Attention 패턴: self-attention이 문장 내부에서 어떻게 단어들을 연결하는지를 보여줌, 인접한 단어만 보는 것이 아니라 문장 전체에 걸쳐 다양한 위치를 동시에 참고한다.

 

Multi-Head Attention: 여러 attention head가 서로 다른 패턴을 학습한다는 점 을 보여줌

'ML&DL > 논문리뷰' 카테고리의 다른 글

SAM: Segment Anything  (0) 2026.03.09
ViT: Transformers For Image Recognition At Scale  (0) 2026.02.09
Mask R-CNN  (0) 2026.01.03
U-Net: Convolutional Networks for Biomedical Image Segmentation  (0) 2025.12.30
Faster R-CNN: Towards Real-Time ObjectDetection with Region Proposal Networks  (0) 2025.12.29
'ML&DL/논문리뷰' 카테고리의 다른 글
  • SAM: Segment Anything
  • ViT: Transformers For Image Recognition At Scale
  • Mask R-CNN
  • U-Net: Convolutional Networks for Biomedical Image Segmentation
minyoy
minyoy
  • minyoy
    MINYOY
    minyoy
  • 전체
    오늘
    어제
    • 분류 전체보기 (25) N
      • ML&DL (24) N
        • 논문리뷰 (24) N
      • 알고리즘 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
minyoy
Transformer: Attention Is All You Need
상단으로

티스토리툴바