2025. 2. 28. 11:44ㆍ친해지기, 논문
* 원문 논문 아카이브
https://arxiv.org/abs/1706.03762
Attention Is All You Need
The dominant sequence transduction models are based on complex recurrent or convolutional neural networks in an encoder-decoder configuration. The best performing models also connect the encoder and decoder through an attention mechanism. We propose a new
arxiv.org
0. Abstract
- 주요 시퀀스 변환 모델은 복잡한 순환 신경망이나 합성곱 신경망을 기반에 두고 인코더와 디코더를 포함.
- Attention 매커니즘만을 기반으로해 순환과 합성곱을 완전히 배제한 간단한 네트워크인 Transformer를 제안.
- 작은 훈련만으로 최상의 성능.
1. Introduction
- 순환 신경망(LSTM, GRU)은 언어 모델링과 기계 번역에서 최고의 성능으로 자리 잡음.
- 순차 모델의 근본적 제약 : 이전 hidden state와 위치 입력에 따라 현재 hidden state의 시퀀스를 생성. -> 병렬 처리 불가능.
- Attention 매커니즘은 입출력 시퀀스에서의 거리와 관계없이 의존성 모델링 가능.
=> Transformer는 순환을 배제하고 입출력 간의 전역 의존성을 Attention 매커니즘에 의존.
2. Background
- 순차 계산 줄이려는 목표는 Extended Neural GPU, ByteNet, ConvS2S에서 기초를 형성.
- 이들 모두 합성곱 신경망 사용해 병렬 연산.
- ConvS2S는 선형적, ByteNet은 로그적, Transformer은 상수로 연산량 증가.
=> Multi-Head Attention이 해상도 감소 문제를 보완.
- Self-Attention(Intra-Attention)이라 불리는 매커니즘은 단일 시퀀스의 서로 다른 위치를 연관시켜 시퀀스 표현 계산.

3. Model Architecture
- 대부분 경쟁력 있는 시퀀스 모델은 인코더-디코더 구조를 가지고 있음.
- 입력 시퀀스를 인코더가 연속 시퀀스로 매핑 후 디코더가 출력 시퀀스를 한번에 하나씩 생성.
3.1 Encoder and Decoder Stacks
- Encoder
- N = 6개의 동일한 레이어로 구성된 스택.
- 각 층은 (Milti-Head Attention, 위치별 완전 연결 Feed Forward 네트워크) 이 두 개의 서브 레이어로 이루어짐.
- 각 서브 레이어 주위에 잔차 연결을 사용하고, 그 뒤에 레이어 정규화 적용.
- => 각 서브 레이어의 출력은 LayerNorm(x + Sublayer(x))
- Decoder
- 디코더 또한 N = 6개의 동일한 레이어로 구성된 스텍.
- 각 층은 두 개의 서브레이어 외에 인코더 스택의 출력을 대상으로 하는 Multi-Head Attention 서브레이어를 추가.
- 잔차 연결 및 레이어 정규화도 동일.
- Self-Head Attention 서브 레이어를 수정해 위치가 이후 위치를 Attention 하는 것을 방지.
- => 마스킹.

3.2 Attention
- Attention 함수는 Query와 Key-Value 쌍의 집합을 출력으로 매핑하는 것.
3.2.1 Scaled Dot-Product Attention
- 이 논문에서 사용된 Attention을 " Scaled Dot-Product Attention" 이라고 부르고 수식은 다음과 같음.

3.2.2 Multi-Head Attention
- Multi-Head Attention 은 모델이 서로 다른 위치의 서로 다른 표현 서브스페이스에서 정보를 동시에 주의 깊게 살펴 보게 함.

3.2.3 Applications of Attention in our Model
- 인코더-디코더 : Query는 이전 디코더 레이어, Key와 Value는 인코더의 출력. => 디코더의 모든 위치가 입력 시퀀스의 모든 위치를 살펴볼 수 있다.
- 인코더 : Self-Attention 레이어를 포함 하므로 Query, Key, Value가 모두 동일한 위치. => 즉, 이전 레이어의 출력 이므로 인코더의 각 위치는 인코더의 이전 레이어의 모든 위치를 살펴본다.
- 디코더 : 인코더와 유사하지만 정보 흐르는 것을 방지하기 위해 마스킹을 설정.
3.3 Position-wise Feed-Forward Networks
- 인코더와 디코더의 각 레이어는 Fully Connected Feed Foward Networks 가 포함.
- 두 개의 선형 변환과 ReLU 활성화를 포함.
- 선형 변환은 서로 다른 위치에서 동일하지만 레이어 간에 서로 다른 매개변수 사용.

3.4 Embeddings and Softmax
- 사전 학습된 임베딩을 사용해 입출력 토큰을 벡터로 변환.
- 디코더 출력은 예측된 다음 토큰 확률로 변환하기 위해 일반적으로 학습된 선형 변환과 소프트맥스 함수를 사용.
3.5 Positional Encoding
- 이 모델은 순환 구조나 합성곱 구조가 없어 시퀀스의 순서를 활용할 수 있도록 토큰의 상대적 혹은 절대적 위치 정보를 주입해야함. => Positional Encoding
- 서로 다른 주파수의 사인 및 코사인 함수를 사용.

- 실험을 통해 사전 학습된 위치 임베딩과 비교 했을 때 거의 동일한 결과 도출.
- 그래도 이 사인-코사인을 사용하는 이유는 모델이 훈련 중 접하는 시퀀스 길이보다 긴 시퀀스 길이에 대해 외삽할 수 있도록 할 수 있기 때문.
4. Why Self-Attention
- Self-Attention을 사용하는 세 가지 이유는 다음과 같다.
1. 레이어 당 계산 복잡성.
2. 병렬화 할 수 있는 계산량.
3. 네트워크 내에서 장기 의존성을 위한 경로.
감상
- 워낙 자주 읽었던 논문이라 익숙하지만 볼 때마다 재미있고 대견하다는 느낌.
- 자주 읽었지만 사전 학습된 위치 임베딩에 대한 정보는 처음 보는 내용이라 유익.
- Query, Key, Value 위치에 대한 추억을 생각나게 해준 논문.
- 언제 한번은 정리해야지 하다가 이렇게 정리할 수 있는 기회가 생겨서 뿌듯.