본문 바로가기

Paper Review

Paper Review #5 - Attention Is All You Need

Attention Is All You Need (2017.12.06) - 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

Research direction & Motivation


Main Purpose

 

Self-Attention Based Transformer to improve sequential computation cost & performance

 

 NLP 문제에 있어서 RNN기반의 LSTM이나 GRU를 사용한 모델, CNN 등을 통한 신경망 모델들은 향상을 거듭하며 발전해오고 있다. 하지만 sequential computation에 따른 근본적인 한계점이 존재했다. 'Attention' 은 input과 output sequence의 거리에 따른 의존성을 탈피함으로써 RNN과 함께 사용되고있다. 특히 self-attention은 독해, 문서 요약 등의 다양한 task에서 성공적으로 이용되는 추세이다. 본 논문에서는 CNN, RNN과 같은 구조를 사용하지않고 최초로 오로지 self-attention만을 사용한 'Transformer' 라는 모델을 제시함으로써 sequential computation cost를 개선하고 input과 output사이의 global dependecy를 추출해 성능의 향상까지 이끌어냈다.

 

Architecture of Transformer


  해당 모델은 Encoder와 Decoder, 두 part로 구성된다. Encoder는 input sequence를 continuous representation으로 변환하는 역할을 하고 이를 기반으로 Decoder는 output sequence를 순차적으로 생성한다. 각 step마다 이전의 step에서 생성된 symbol을 추가적인 input으로 활용해 결과를 생성하는, auto-regressive한 성질을 가지는 모델이다.

 

Encoder

 

 

 큰 그림에서 보면, Encoder는 동일한 6개의 layer로 구성되어있으며 각 layer는 두 개의 sub-layer를 가진다. 이는 각각 multi-head self attention layer와 position wise feed-forward network로 구성된다. Sub-layer는 residual connection을 통해 이전의 값을 전달받아 layer normalization을 적용하게된다.

 

 

 자세히 들어가보면, multi-head attention에서는 query, key, value로 3가지가 input값으로 입력된다. 이에 대한 특징값은 여러 개의 head로 분할한다. 이때 query와 key를 dot production후, dk1/2로 나누어 준 값에 softmax를 취해주어 key에 대한 query의 weight을 계산해 해당 weight에 value와 dot production을 통해 query와 key의 연관성을 얻는 scaled dot-product attention과정을 통해 feed-forward network로 전달한다. 여기에 위에서 언급한 residual connection을 시행한 값을 Decoder에 전달한다. 

 

 

Decoder

 

 Decoder도 동일하게 6개의 layer로 구성된다. 다만 encoder와는 달리 3개의 sub-layer를 가진다. 마찬가지로 multi-head attention을 거쳐 두 번째 multi-head attention layer에서 encoder로부터 전달된 값을 받아 feed-forward network로 연결한다. 해당 과정에서 이후 position에서의 정보가 이전위치에서의 학습에 관여하지 않도록 masking을 적용한 masked multi-head attention이 첫번째 sub-layer로 위치하는 구조를 가진다. 최종적으로 softmax 연산을 통해 가장 높은 확률값을 갖는 단어를 산출해낸다.

 

 

Multi-head attention

 

 Transformer 구조의 주축이되는 multi-head attention은 모델에서 크게 3가지 부분에서 작용한다.

 

1.  Decoder에서는 이전 decoder layer로 부터 오는 query와 encoder의 output인 key, value값이 사용된다. 이로 인해 decoder에서 산출하는 output에는 input sequence의 모든 position에 대한 정보를 포함하게된다.

 

2. Encoder의 self-attention layer에서 query, key, value는 모두 동일한 input값으로 이전 encoder로부터 기인한다. 따라서 Encoder에서는 주어진 같은 문장에서의 attention을 연산함으로써 스스로에 대한 연관성을 계산하며 이전 문장에 대한 모든 정보들을 활용한다. 

 

3. Decoder에서는 input sequence가 한번에 주어지는 것이 아닌 순차적으로 symbol을 계산한다. 하지만 attention을 계산할때, 하나의 sentence 전체를 한번에 계산하기 때문에 뒤쪽 sequence에 대한 attention이 포함될 수 있다. 이러한 이후 sequence에 대한 고려를 방지하기위해 scaled dot production에 포함된 masking을 통해 weight를 0으로 만들어 제어하게된다. 이를 통해 정보의 전달이 역방향(후->선)이 아닌 정방향으로 이루어질 수 있도록 설정해 auto-regressive property를 보존한다.

 

 

Positional Encoding & Regularization

 

 해당 모델에는 recurrence에 대한 정보들이 일절 사용되지 않기때문에 입력되는 요소간의 순서에대해 별도로 정보를 제공해주어야한다. 사전에 제시한 그림에서도 볼 수 있듯이, Encoder와 Decoder의 input과 output embedding에 대해 index의 위치 정보들을 학습시켜주기 위해 positional encoding이라는 방식을 사용했다.

 

 Regularization의 경우 batch를 기준으로 평균과 분산을 구해 normalization을 수행하는 Batch Normalization과 달리, input을 기준으로 normalization을 수행하는 Layer Normalization을 사용했다. 이는 데이터마다 각각 다른 평균과 분산을 갖게되므로 서로 다른 길이를 갖는 sequence가 input으로 사용되어도 적용이 가능해 RNN계열 모델에서 자주 사용되는 방법이다.

 

그리고 dropout과 label smoothing을 이용했다. 특히 dropout의 ration 조정은 과적합 방지를 통해 성능에 있어서 매우 중요한 역할을 수행했으며 label smoothing은 perplexity를 해치지만 BLEU score의 개선을 가져오는 효과가 있었다.

 

Experiments Result


Machine Translation

 

 

 결론적으로, 해당 모델은 English-to-German task와 English-to-French task에서 충분히 좋은 성능을 보여줬다. 두 가지 번역 문제에있어서 기존에 존재하는 다른 모델들과 비교했을때 base 모델도 높은 성능을 보였고, variation과정을 통해 정립한 big모델은 1/4에 해당하는 비용으로 SOTA를 달성했다. Training Cost 부분을 보면 거의 모든 타 알고리즘들에 비해 월등히 짧은 학습시간이 소요된 것을 볼 수 있다. 

 

 

Model Variation

 

논문에서는 적절한 hyper-parameter의 선정을 위해 다양한 조합들을 시도해 base모델과 big모델을 정립했다.

 

 

 Variation 과정에서 single head 또는 지나치게 많은 head의 수는 오히려 score에 좋지 않은 영향을 미쳤으며 이에따른 적절한 head수 산정의 중요성을 발견했다. 또한 모델의 dimension은 큰 것이 좋으며 dropout의 규제효과는 생각보다 크게 나타나 과적합 방지에 중대한 역할을 한다. 

 

 

 이렇게 정립된 Transformer 모델은 self-attention을 활용해 전체 계산량을 줄이고 병렬화를 가능하게 했으며, dependency 기반으로 정보간의 거리가 멀때 해당 정보를 충분히 활용하지 못하는 장거리 의존성 문제를 해결했다. 따라서 기존의 RNN, CNN 기반의 layer를 사용한 network 보다 더 빠른 시간내로 학습이 가능했으며 성능적인 측면에서도 SOTA를 달성했다. 본 논문은 추후 제시된 attention 기반의 여러 모델의 근간이 되는 논문이며 자연어 문제 뿐만아니라 vision의 문제에서 까지 활용되는 등 다양한 task에 폭넓은 영향을 미치고있다.