본문 바로가기
논문 리뷰/NLP

[X:AI] Transformer 논문 리뷰

by hyeon827 2024. 2. 10.

 

논문 원본 : 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: 거리의 로그에 비례(느리게 증가)
    • 따라서 멀리 떨어진 위치 사이의 종속성을 학습하기 더 어려워짐
  • 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 차원의 출력을 생성
  • 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을 만들도록 함 

https://myeonghak.github.io/recommender%20systems/RecSys-%EB%89%B4%EB%9F%B4%EB%84%B7-%EA%B8%B0%EB%B0%98-%EC%B6%94%EC%B2%9C%EC%8B%9C%EC%8A%A4%ED%85%9C-%EC%84%9C%EB%B2%A0%EC%9D%B4-%ED%8E%98%EC%9D%B4%ED%8D%BC-%EB%A6%AC%EB%B7%B0/

 

 

  • 본 논문의 경우 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을 추가하여 구현

   

   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