들어가기 앞서, 본 논문의 리뷰를 한 번 더 하는 이유는 그 어떤 논문보다 중요한 논문인 것이 자명할 뿐더러, 스스로 돌아봤을 때 이전보다 더욱 밀도 높게 이해하여 좀 더 자세히 기록해보고자 한다.
배경과 문제의식
기존 sequence transduction 모델, 특히 기계번역 모델은 주로 RNN, LSTM, GRU 기반의 encoder-decoder 구조를 사용했다. 이러한 모델은 입력 문장을 순차적으로 읽고, 이전 hidden state를 다음 시점으로 전달하면서 문맥 정보를 축적한다. 여기에 attention mechanism을 결합하면 디코더가 출력 단어를 생성할 때 입력 시퀀스의 특정 위치를 선택적으로 참고할 수 있어 성능이 향상되었다.
그러나 RNN 기반 구조에는 근본적인 한계가 있었다. 첫째, 토큰을 순서대로 처리해야 하므로 병렬화가 어렵다. 입력 길이가 길어질수록 학습과 추론 속도가 느려진다. 둘째, 멀리 떨어진 토큰 사이의 의존 관계를 학습하려면 여러 recurrent step을 거쳐야 하므로 장거리 의존성 학습이 비효율적이다. 셋째, attention이 사용되더라도 대부분 RNN의 보조 구성요소로 사용되었기 때문에, 모델 전체의 계산 흐름은 여전히 순차 처리에 묶여 있었다.
본 논문은 이러한 문제의식에서 출발한다. 저자들은 recurrence와 convolution 없이 attention mechanism만으로 sequence transduction을 수행하는 Transformer를 제안했다.
핵심 아이디어

본 논문의 핵심 아이디어는 self-attention을 중심으로 encoder-decoder 구조를 설계하는 것이다. Self-attention은 하나의 시퀀스 안에서 각 토큰이 다른 모든 토큰을 직접 참고할 수 있게 한다. 이를 통해 토큰 간 거리에 상관없이 의존 관계를 한 번의 attention 연산으로 모델링할 수 있다.
Transformer는 다음 세 가지 아이디어를 중심으로 구성된다.

첫째, Scaled Dot-Product Attention을 사용한다. Query와 Key의 dot product를 통해 토큰 간 관련도를 계산하고, 이를 sqrt(d_k)로 나누어 값의 크기를 안정화한 뒤 softmax를 적용한다. 이후 attention weight를 Value에 곱해 문맥 정보가 반영된 표현을 만든다.
둘째, Multi-Head Attention을 사용한다. 하나의 attention만 사용하면 한 가지 관계에만 집중할 수 있지만, 여러 개의 head를 병렬로 사용하면 서로 다른 관점에서 토큰 간 관계를 학습할 수 있다. 예를 들어 어떤 head는 주어-동사 관계를 보고, 다른 head는 목적어-동사 관계를 볼 수 있다.

셋째, RNN이나 CNN이 없기 때문에 토큰의 순서 정보를 따로 넣어야 한다. 이를 위해 각 토큰 embedding에 Positional Encoding을 더한다. 논문에서는 sine과 cosine 함수를 이용한 고정 positional encoding을 사용하여 각 위치에 고유한 위치 정보를 부여한다.

아키텍처 구조

Transformer는 encoder-decoder 구조를 따른다. Encoder는 입력 시퀀스를 문맥 표현으로 변환하고, decoder는 encoder의 출력을 참고하여 출력 시퀀스를 생성한다.
Encoder는 동일한 layer를 여러 번 쌓은 구조이다. 각 encoder layer는 크게 두 부분으로 구성된다. 첫 번째는 Multi-Head Self-Attention이다. 입력 시퀀스의 각 토큰이 같은 시퀀스 안의 모든 토큰을 참고하여 문맥 정보를 반영한다. 두 번째는 Position-wise Feed-Forward Network이다. 이는 각 위치의 토큰 표현에 독립적으로 적용되는 완전연결 신경망이다. 각 sub-layer 뒤에는 residual connection과 layer normalization이 적용된다.
Decoder도 여러 개의 layer를 쌓은 구조이지만 encoder보다 한 가지 attention이 더 많다. Decoder layer는 세 부분으로 구성된다. 첫 번째는 Masked Multi-Head Self-Attention이다. 출력 시퀀스를 생성할 때 미래 토큰을 미리 보면 안 되므로, 현재 위치 이후의 토큰을 attention하지 못하도록 mask를 적용한다. 두 번째는 Encoder-Decoder Attention이다. Decoder의 Query가 encoder 출력의 Key와 Value를 참고하여 입력 문장과 출력 문장 사이의 관계를 학습한다. 세 번째는 encoder와 동일한 Position-wise Feed-Forward Network이다.
전체 흐름은 다음과 같다.
- 입력 문장은 token embedding으로 변환되고, 여기에 positional encoding이 더해진다.
- 이 값이 encoder stack에 들어가 self-attention과 feed-forward network를 반복적으로 통과한다.
- Decoder는 이전까지 생성된 출력 토큰을 입력으로 받고, masked self-attention을 통해 미래 정보를 차단한 상태에서 자기 자신 내부의 문맥을 만든다.
- 이후 encoder-decoder attention을 통해 입력 문장의 정보를 참고하고, 마지막으로 linear layer와 softmax를 거쳐 다음 토큰의 확률 분포를 예측한다.
직관적 이해
Transformer를 직관적으로 이해하면, 각 단어가 문장 안의 다른 단어들에게 “나를 이해하는 데 너희가 얼마나 중요한가?”를 묻는 구조라고 볼 수 있다.
예를 들어 “나는 사과를 먹었다”라는 문장에서 먹었다라는 단어는 나는과 사과를을 참고해야 의미가 분명해진다. Self-attention은 먹었다가 나는, 사과를, 먹었다 각각을 얼마나 참고할지 계산하고, 그 비율만큼 정보를 가져와 새로운 표현을 만든다.
Multi-head attention은 이 과정을 여러 관점에서 동시에 수행하는 것이다. 하나의 head가 “누가 먹었는가?”에 집중한다면, 다른 head는 “무엇을 먹었는가?”에 집중할 수 있다. 여러 head의 결과를 합치면 한 토큰의 표현 안에 다양한 문법적·의미적 관계가 반영된다.
또한 Transformer는 RNN처럼 단어를 왼쪽에서 오른쪽으로 하나씩 읽지 않는다. 모든 토큰을 한 번에 놓고 서로의 관계를 계산한다. 이 때문에 병렬 처리가 가능하고, 멀리 떨어진 단어 사이의 관계도 직접 연결할 수 있다.
예를 들어 문장 앞부분의 명사와 문장 뒷부분의 대명사가 관련되어 있다면, RNN은 여러 step을 거쳐야 하지만 Transformer는 attention을 통해 두 위치를 바로 연결할 수 있다.
결국 Transformer의 핵심 직관은 문장을 순서대로 읽는 것이 아니라, 모든 단어가 서로를 바라보며 관계를 계산하게 하는 것이다.
한계
Transformer는 RNN 기반 모델의 순차 처리 한계를 극복했지만 몇 가지 한계도 가진다.
첫째, self-attention은 모든 토큰 쌍의 관계를 계산하기 때문에 시퀀스 길이가 길어질수록 계산량과 메모리 사용량이 크게 증가한다. 입력 길이를 (n)이라고 하면 attention score matrix의 크기는 (n \times n)이 되므로, 긴 문서를 처리할 때 비용이 커진다.
둘째, Transformer는 RNN이나 CNN이 가지는 순서나 지역성에 대한 inductive bias가 약하다. RNN은 순차 구조를 자연스럽게 반영하고, CNN은 인접한 정보의 지역적 패턴을 잘 포착한다. 반면 Transformer는 이러한 구조적 가정을 줄이고 attention에 의존하기 때문에, 충분한 데이터와 학습이 중요하다.
셋째, positional encoding을 통해 위치 정보를 주입하지만, 위치 정보가 모델 구조 자체에 내재되어 있는 것은 아니다. 따라서 순서 정보를 어떻게 표현하느냐에 따라 성능과 일반화 능력이 달라질 수 있다.
넷째, attention weight가 토큰 간 관계를 보여주는 것처럼 보이지만, 이것이 항상 모델의 실제 추론 근거를 완전히 설명한다고 보기는 어렵다. Attention은 해석 가능성에 도움을 줄 수 있지만, attention score만으로 모델의 판단 과정을 완전히 설명하는 데에는 한계가 있다.
정리하면, Transformer는 recurrence와 convolution 없이 attention만으로 sequence modeling을 수행할 수 있음을 보인 혁신적인 구조이다. 병렬화, 장거리 의존성 학습, 확장성 측면에서 큰 장점을 가지지만, 긴 시퀀스에 대한 계산 비용, 위치 정보 표현, 데이터 요구량, 해석 가능성 측면에서는 여전히 한계를 가진다.