심화 스터디/논문 리뷰 스터디

[논문 리뷰 스터디] Attention Is All You Need

hwangmina 2023. 3. 30. 18:41

작성자: 17기 황민아

1 Introduction & Background

RNN, LSTM, gated RNN은 language modeling과 machine translation과 같은 sequence 모델링에서 자주 사용된다. 하지만 Recurrent 모델은 이전 결과를 입력으로 받는 순차적 특성 때문에 입력문장의 길이가 길어질수록 중요해지는 병렬처리를 배제한다. 이러한 근본적인 제약을 해결하고 입력과 출력 사이의 전역 의존성을 이끌어내기 위해 이 논문에서는 attention 메커니즘만을 사용하는 Transformer 모델을 제안한다. Transformer는 병렬화가 가능하고 높은 성능을 갖는다.

 

2 Model Architecture

성능이 뛰어난 Neural sequence transduction model들의 대부분은 encoder-decoder 구조를 가지고 있다. 이 논문에서 제시된 transformer 모델도 동일한 구조를 가지며, 내부는 self-attention과 point-wise, fully connected layer로 구성된다.

2.1 Encoder and Decoder Stacks

Encoder

  • Encoder는 N=6개의 동일한 층으로 구성되어 있다. 처음 input이 첫 번째 층에 들어가고, 그 다음 층의 input으로는 이전 층의 결과값이 들어가는 방식이다.
  • 각 층은 2개의 sub-layer로 이루어져 있는데, 첫번째는 multi-head self-attention이고 두번째는 position-wise fully connected feed-forward network이다.
  • 이 논문에서는 2개의 sub-layers 주위에 residual connection을 사용하고 있으며, layer normalization으로 이어진다. 즉, 각 sub-layer의 출력은 LayerNorm(x+Sublayer(x))이다. 이러한 residual connection을 용이하게 하기 위해 모델의 모든 layer은 d=512 차원으로 결과를 생성한다.

Decoder

  • Decoder도 N=6개의 동일한 층으로 구성되어 있다.
  • 2개의 sub-layer 이외에도 decoder는 encoder stack의 출력에 multi-head attention을 수행하는 3번째 layer를 포함한다.
  • 마찬가지로 각 sub-layer 주위에 residual connection과 layer normalization을 적용시킨다.
  • Masking을 통해 position i의 예측이 i 이전의 output에만 의존할 수 있게 한다.

2.2 Attention

Scale Dot-Product Attention

이 논문에서 사용하는 attention을 “Scale Dot-Product Attention”이라고 부른다.

입력으로는 dimension dk의 query와 key, dimention dv의 value들이 있다. 다음과 같은 식으로 attention을 구할 수 있다. Q와 K의 dot product를 루트 dk로 나눈 후 softmax 함수를 적용한 값이 각 value에 대한 weight, 즉 attention이 된다.

Multi-Head Attention

하나의 attention function을 사용하는 것 보다는 query, key, value를 linear projection하여 매핑해주어 각기 다른 값들을 입력으로 하는 여러개의 attention function을 사용하는 것이 더 효과적이다. 각 벡터들의 크기를 줄이고 병렬처리가 가능해지기 때문이다. 다음과 같이 각각의 query, key, value 를 h개로 나눈 값들의 attention을 구하고 concat해준다.

2.3 Point-wise Feed Forward Networks

Sub-layers 외에도 encoder와 decoder의 각 layer는 fully connected feed-forward network를 포함하고 있으며, 이는 ReLU 활성함수로 사용하는 두 번의 linear transformations으로 구성된다.

2.4 Emeddings and Softmax

다른 sequence transduction model과 같이 학습된 embedding을 통해 입력, 출력 토큰을 dmodel의 차원과 같은 차원의 벡터로 변환한다. 마찬가지로 같은 linear transforamtion과 softmax function을 이용하여 decoder output을 다음 토큰의 예측 확률로 반환한다.

2.5 Positional Encoding

논문에서 제안하는 모델은 RNN, CNN과는 다르게 순서에 따라 시퀀스의 위치에 관한 정보를 주입해야한다. 오직 attention mechanism만을 사용하여 만들기 때문에 sequence 정보를 담아낼 수 없기 때문디ㅏ. 이를 위해 인코더와 디코더 스택 하단에 positional encoding을 추가한다. Positional encoding은 dmodel과 동일한 차원을 갖기에 이를 더하는 작업을 수행할 수 있다. 다음과 같은 식을 통해 positional encoding이 이루어진다.

3 Why Self-Attention

Scaled → I가 student와 99%의 유사도가 있다면 다른 단어와의 유사성 찾기 어려움. → 비율을 낮추게끔 루트dk로 나눠준다.

CNN 효과 WHY?

convolution은 O(log n )에 가깝긴 함.

 

4 Results

Machine Translation

Model Variations

English Constituency Parsing