논문 원본 : 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
Abstract
- 지배적인 시퀀스 변환 모델은 인코더와 디코더를 포함하는 RNN 또는 CNN 신경망을 기반으로 함
- 최고의 성능을 발휘하는 모델은 또한 attention mechanism을 통해 인코더와 디코더를 연결
- 본 논문에서는 recurrence(순환)와 convolution을 완전히 배제하고 attention mechanisms만을 기반으로 하는 새로운 네트워크 아키텍처인 Transformer 제안
- WMT 2014 영어-독일어 번역 작업에서 28.4 BLEU를 달성(기존 최고 결과보다 2 BLEU 이상 개선)
- 영어-프랑스어 번역에서도 단일 모델로 최고 기록(41.8 BLEU)을 세움 -> 기존 모델보다 적은 학습 시간 (3.5일)
1. Introduction
- RNN, LSTM, GRU는 언어 모델링과 기계 번역과 같은 순서 모델링 및 변환 문제에서 가장 우수한 방법(State of the Art)으로 자리 잡음
- 그러나 RNN은 데이터를 하나씩 순서대로 처리해야 하므로 병렬 처리가 어렵고, 긴 시퀀스를 다룰 때 학습 효율이 떨어짐
- Attention 메커니즘은 입력과 출력 시퀀스 간의 의존성을 거리와 상관없이 모델링할 수 있는 방법으로, 점점 더 중요한 역할을 하게 됨
- 하지만 기존 모델들은 Attention을 사용하더라도 RNN과 함께 사용해 병렬화의 제약이 여전히 존재
- Transformer는 RNN을 완전히 배제하고, 오직 Attention 메커니즘만 사용하는 새로운 아키텍처
- 이를 통해 RNN보다 훨씬 더 병렬화가 쉬워졌고, 학습 시간도 크게 단축됨
2. Background
- 기존 모델들 (CNN 기반)
- 기존 모델들(예: ByteNet, ConvS2S)은 데이터를 병렬로 처리할 수 있지만, 단어 간의 거리가 멀수록 연산이 더 많이 필요
- ConvS2S: 거리에 비례(선형적 증가)
- ByteNet: 거리의 로그에 비례(느리게 증가)
- 따라서 멀리 떨어진 위치 사이의 종속성을 학습하기 더 어려워짐
- 기존 모델들(예: ByteNet, ConvS2S)은 데이터를 병렬로 처리할 수 있지만, 단어 간의 거리가 멀수록 연산이 더 많이 필요
- Transformer에서는 Attention 메커니즘(정확히 말하면 Self-Attention)을 사용해 연산 수를 상수로 줄임
- 두 단어가 얼마나 멀리 떨어져 있는 계산에 필요한 연산이 항상 일정
- Self-Attention
- 하나의 문장(시퀀스) 안에서 모든 단어가 서로 어떤 관계가 있는지 계산하는 메커니즘
- 하지만 Attention 메커니즘은 모든 단어 간 관계를 평균화하기 때문에, 일부 중요한 단어의 정보가 희석될 수 있음
- 이에 따라 Transformer는 단일 Attention 대신, Multi-Head Attention을 사용하여 보완
- Transformer는 RNN이나 CNN 없이 오직 Self-Attention만으로 동작하는 최초의 모델
- 이를 통해 계산 효율성이 높아졌으며, 다른 기존 모델보다 뛰어난 성능을 보임
3. Model Architecture
3.1 Encoder and Deocder Stacks
- Encoder
- 6개의 동일한 layer로 구성 (N=6)
- 각 레이어는 서로 다른 파라미터
- 각 layer에는 두 개의 sub layer 존재
- 첫 번째는 multi-head self-attention mechanism
- 두 번째는 feed-forward network
- 두 개의 sub layer 뒤에는 residual connection이 사용되고, 그 뒤에 Layer Normalization 적용
- 완전히 새로운 출력을 학습하기보다는, 이전 출력과 비교해 필요한 잔차만 학습하면 되므로, 학습 난이도가 크게 줄어 더욱 안정적인 학습
- 즉, 각 sub layer의 출력은 LayerNorm(x+Sublayer(x))
- 잔차 연결을 위해, 모델 내 모든 sub layer 와 embedding layer는 512 차원의 출력을 생성
- 6개의 동일한 layer로 구성 (N=6)
- Decoder
- 디코더도 6개의 동일한 layer로 구성 (N=6)
- 각 디코더 layer에는 인코더 layer의 두 sub layer 외에 세 번째 sub layer가 추가됨
- 마지막 인코더 레이어의 출력에 대해 multi-head attention을 수행 (모든 디코더 레이어에 입력됨)
- 인코더와 마찬가지로 각 sub layer마다 residual connection 및 layer normalization 사용
- 또한, 디코더의 Self-Attention sub layer는 미래의 위치를 참조하지 못하도록 masking
- Masked Multi-Head Attention
- 마스크 행렬을 이용 (마스크 값으로 무한의 값을 넣어 softmax 함수의 출력이 0%에 가까워지도록 함)
3.2 Attention
3.2.1 Scaled Dot-Product Attention
- Query: I (물어보는 주체)
- Key: I love her (입력 문장의 모든 단어에 대해 미리 계산된 특징 벡터)
- Value: Key가 갖고 있는 실제 값
- 모든 단어들에는 Query, Key, Value 버전이 존재
- 세 버전들을 만들기 위한 Weight(W)를 학습
- Query와 Key의 차원은 , Value의 차원은 dv
계산 과정
- Query와 Key의 dot product을 계산해 유사도를 구함
- 계산된 값들을 √dk 로 나눠 스케일링
- 이 값을 Softmax에 통과시켜 가중치를 만듦
- 가중치를 Value에 곱해 최종 출력 값을 계산
- 여러 Query를 동시에 계산하기 위해, Query, Key, Value를 각각 행렬
3.2.2 Multi-Head Attention
- Query, Key, Value를 단순히 하나의 어텐션 함수로 처리하는 대신, 이를 h번 선형 변환하여 각각 다른 dk, dv 차원으로 projection
- 투영된 Query, Key, Value를 사용해 병렬로 h개의 어텐션 계산을 수행
- 결과를 병합하고 다시 투영하여 최종 출력을 만듦
- 아래 그림에서 단어 it은 중의적인 의미를 가질 수 있음
- 그래서 여러 개 Head를 두어 모델이 Head 개수만큼의 Scaled dot product Attention 연산을 수행할 수 있게 하여 모델이 다양한 관점의 Attention Map을 만들도록 함
- 본 논문의 경우 dmodel=512, num_head=8이므로 dk=dv=64로 설정됨
3.2.3 Applications of Attention in our Model
- transformer에서는 multi-head attention을 3가지 방식으로 활용
- Self-Attention in Encoder
- Query, Key, Value가 모두 같은 곳(즉, 이전 인코더 층의 출력)에서 가져옴
- encoder의 각 위치에서 이전 encoder layer의 전체를 참조할 수 있음
- Encoder-Decoder Attention
- query는 이전 decoder layer에서 오고, key와 value는 encoder의 output
- 이로 인해 decoder의 모든 위치에서 input sequence 전체를 참조할 수 있음Self-Attention in Encoder
- Self-Attention in Decoder
- Attention 가중치를 구할 때 대상 토큰의 이후 시점의 토큰은 참조하지 못하도록 masking
- scaled dot-product attention에서 masking을 추가하여 구현
- Self-Attention in Encoder
3.3 Position-wise Feed Forward Networks
- 인코더와 디코더의 각 layer에는 attention sub layer 외에도 FNN(Feed Forward Network)이 포함되어 있음
- 이 네트워크는 두 개의 선형 변환과 그 사이에 ReLU 활성화로 구성
- FFN의 파라미터(W,b)는 같은 layer 내에서는 동일한 값을 지님
- 마지막 layer의 결과값 차원이 Input 값의 차원과 동일
3.4 Embedding and Softmax
- 입력 임베딩 층과 출력 임베딩 층, 그리고 소프트맥스 이전의 선형 변환에서 같은 가중치 행렬을 사용
- 트랜스포머 모델의 어휘 크기(vocabulary size)가 매우 클 경우, 임베딩 층과 소프트맥스 선형 변환은 많은 가중치를 필요
- 가중치를 공유하면 이 중복된 파라미터를 제거해 모델 크기를 줄이고 계산 효율성을 높일 수 있음
- 임베딩 층에서 가중치 행렬에 √ 를 곱해 학습을 안정화
- 이는 학습 초기 단계에서 임베딩 벡터의 크기(값의 크기)가 너무 작거나 너무 크지 않도록 조정하기 위함
3.5 Positional Encoding
- Transformer 모델에는 Recurrence와 Convolution이 없기 때문에 시퀀스의 순서를 활용하기 위해서는 시퀀스에서 토큰의 상대적 또는 절대적 위치에 대한 정보를 주입해야 함
- 이를 위해 인코더와 디코더 스택의 하단에 있는 입력 임베딩에 Positional Encoding을 추가하여 Embedding Vector에 더해줌
- 논문에서는 Sine과 Cosine 함수를 조합하여 만들어 냄(pos는 position이며, i는 dimension)
4. Why Self-Attention
- 계산 복잡도:
- 병렬 처리가 가능하기 때문에 의 순차적 연산만 필요
- 순차적 연산:
- 모든 단어 간의 관계를 동시에 계산하므로 병렬 처리가 가능
- 최대 경로 길이:
- 입력의 모든 단어가 출력의 모든 단어와 직접 연결되어 있기 때문에, 입력과 출력 간 경로 길이는 항상 1단계
- 장거리 의존성을 쉽게 학습
6. Result
6.1 Machine Translation
- WMT 2014 English-to-German 번역
- Transformer (big) 모델: BLEU 점수 28.4 → 이전 최고 성능 모델보다 2.0 BLEU 이상 높음
- 훈련 소요 시간: 8개의 P100 GPU로 3.5일
- Base 모델도 이전 모든 모델/앙상블을 초과하는 성능을 훈련 비용의 일부만 사용하여 달성
- WMT 2014 English-to-French 번역
- Transformer (big): BLEU 점수 41.0 → 이전 단일 모델 최고 성능 초과
- 훈련 비용: 이전 최고 모델 대비 1/4
- 드롭아웃 비율 0.1 사용 (English-to-German은 0.3 사용)
6.2 Model Variations
- Attention Head 수 변화 (표 3, A열)
- Single-head attention: 다중 헤드보다 0.9 BLEU 낮음
- 하지만 너무 많은 헤드는 성능 하락을 초래
- Key 크기 감소 (표 3, B열)
- Key 차원을 줄이면 성능 하락 → Dot product로 호환성을 계산하는 데 어려움이 있음
- 더 정교한 호환성 함수 필요 가능성
- 모델 크기와 드롭아웃 영향 (표 3, C, D열)
- 모델이 클수록 성능이 향상
- 드롭아웃은 과적합 방지에 효과적
- Positional Encoding 실험 (표 3, E열)
- 학습된 위치 임베딩과 사인/코사인 기반 positional encoding의 성능 차이 없음
6.3 English Constituency Parsing
- 문제 특성
- 출력이 입력보다 훨씬 길고, 강한 구조적 제약을 가짐.
- 기존 RNN 모델은 소규모 데이터 상황에서 최고 성능을 달성하지 못했음
- 결과
- 소규모 데이터와 장거리 의존성이 필요한 작업에서도 Transformer는 뛰어난 성능을 발휘
- 기존 RNN 모델을 대체할 수 있는 가능성 확인
7. Conclusion
- 트랜스포머는 Attention만을 기반으로 한 최초의 시퀀스 변환(sequence transduction) 모델
- 기존 인코더-디코더 아키텍처에서 사용되던 순환층을 Multi-Head Attenion으로 대체
'논문 리뷰 > NLP' 카테고리의 다른 글
[X:AI] ELMo 논문 리뷰 (1) | 2024.03.25 |
---|---|
[X:AI] BERT 논문 리뷰 (0) | 2024.02.15 |
[X:AI] GPT-1 논문 리뷰 (0) | 2024.02.11 |
[X:AI] Attention 논문 리뷰 (0) | 2024.02.04 |
[X:AI] Seq2Seq 논문 리뷰 (0) | 2024.02.02 |