다시 이음

Transformer 논문 (Attention Is All You Need) 본문

Pre_Onboarding by Wanted(자연어 처리)

Transformer 논문 (Attention Is All You Need)

Taeho(Damon) 2022. 3. 9. 17:23

개인적으로 논문에서 중요하다고 생각되는 부분을 번역하여 작성하였고 마지막에 전체적으로 정리하는 순서로 진행하겠습니다.

 

 

들어가며(Abstract)

 

현재 지배적인 기술은 인코더와 디코더를 포함하는 합성곱 신경망 혹은 RNN이다.

 

best 퍼포먼스 모델은 attention 메카니즘을 적요하여 인코더와 디코더를 연결한 모델입니다.

 

기계독해에 있어서 우세하게 병렬화 작업 및 시간 감축을 이뤄냈습니다.

 

1. Introduction

 

Attention 메커니즘은 다양한 작업에서 강력한 시퀀스 모델링 및 변환 모델의 필수적인 부분이 되었으며, 거리에 관계없이 종속성을 모델링할 수 있습니다.

 

2. Background

 

순차적 계산을 줄이는 목표를 위해서 Extended Neural GPU, Byte Net, ConvS2S를 기반으로 합니다.

 

Transformer에서는 Multi-Head Attention 가중치를 평균화 함으로써  계산의 비용을 줄입니다.

 

Self-Attention 은 문장의 표현을 계산하기 위해서 다른 위치의 문장과 관련되어있습니다.

 

Transformer는 순차적으로 정렬된 RNN 또는 컨볼루션을 사용하지 않고 입력 및 출력의 표현을 계산하기 위해 전적으로 self-attention 을 사용합니다.

 

3. Model Architecture

 

대부분의 경쟁력있는 모델들은 인코더-디코더 구조를 가집니다.

 

Transformer는 인코더 디코더 구조에 self-attention을 쌓습니다.

3.1 Encoder & Decoder stacks

 

Encoder : 인코더는 6개 층으로 이루어져있습니다. 각 층은 2개의 sub layer로 구성됩니다. 

첫번째는  Multi-Head Attention , 두번째는 Feed Forward 로 구성됩니다.

이 sub layer들은 각각  LayerNorm을 적용합니다.

이 모든 연결을 원활히 하기 위해 embedding dimention은 512 차원을 가집니다.

 

Decoder : 디코더또한 6개 층으로 이루어져 있습니다. 디코더의 각 층은 3개의 sub layer로 구성됩니다.

단어 전체를 병렬화 하여 입력하였던 encoder의 self-attention과 다르게 타깃 단어 이후 단어를 보지 않고(Masking) 단어를 예측해야 합니다.

 

3-2. Attention

 

Attention 의 기능은 query, key, value pair 값을 output에 매핑합니다.

이 값들(출력)은 가중 합계로 계산됩니다.

 

 

3.2.1. Scaled Dot- Product Attention

 

dot-product는 쿼리를 키로 나눕니다.

 

Query와 Key를 행렬 계산을 먼저 해주는데, Key 행렬은 Query행렬의 Transpose 된 형태로 만들어 행렬곱을 해주면 결국 내적 연산과 같은 과정으로 각 단어에 대한 어텐션 스코어를 구함을 알 수 있다

 

행렬 연산(내적 연산)을 한 후, 벡터의 차원이 커지면 학습이 잘 안될 수 있기에 softmax로 스케일링을 해준다.

 

3.2.2. Multi - Head Attention

 

독립적인 Attention 기능을 사용하는 것보다 더 좋은 h time에 따라 다르게 키,쿼리,밸류를 다른 값들을 이어붙입니다.

 

3.2.3. Applications of Attention in our Model

 

트랜스포머는 멀티-헤드 attention을 3가지 다른 방식으로 사용합니다.

 

encoder-decoder attention layer에서 쿼리는 이전의 디코더 레이어에서 옵니다. 키,밸류값은 인코더 output에서 나옵니다.

이 방법은 모든 디코더의 위치를 ​​입력 시퀀스의 모든 위치에 적용합니다. 

 

encoder는 self-attention layer을 가지고 있습니다. self-attention 내의 키,쿼리,밸류 값은 모두 같은 인코더의 이전 레이어에서 output입니다. 각각의 위치는 인코더의 이전 레이어의 위치를 인식합니다.

 

유사하게 디코더 안의 self-attention layer는 해당 위치까지 포함하는 모든 디코더의 위치를 파악합니다. 

 

 

3.3 Position - wise Feed-Forward Networks

 

attention sub layer는 feed-forward network를 가지고 있습니다.

 

활성화함수로 relu를 사용하는 간단한 신경망입니다. 

 

 

3.4 Embedding and Softmax

 

다른 모델들과 같이 적용됩니다.

 

두 개의 임베딩 레이어와 pre-softmax 사이에 동일한 가중치 행렬을 공유합니다.

 

3.5. Positional Encoding

 

모델은 반복과 컨볼루션을 포함하지 않기 때문에 모델이 다음을 사용하려면 시퀀스의 순서에 따라 시퀀스에서 토큰의 상대 또는 절대 위치에 대한 정보를 주입해야 합니다.

 

그를 위해 input embedding에 positinal encoding을 인코더,디코더 하부에 위치시킵니다.

 

 

4. why Self-Attention

 

가변길이 시퀀스의 representation 를 동일한 길이의 다른 시퀀스  (hidden state 등)의 표현으로 매핑하는데 전형적으로 사용되는 recurrent, convolution layer들과 우리가 제안하는 self-attetion을 다양한 관점에서 비교해봅니다.

 

1. 레이어당 총 계산 복잡도

2. 병렬화 될 수 있는 계산량

3. long-range 의존성 간의 경로 길이

 

n은 문장길이, d는 representation dimension

self-attention은 같은 길이(n)이 representation dimensionality(d)보다 짧을 때(가장 자주있는 케이스) RNN layer보다 빠릅니다.

계산 퍼포먼스를 향상시키기 위해 

single conv layer는 커널이 k<n 일 경우, 모든input,output위치 pair를 연결하지 않습니다.

그렇게 하려면 인접 커널의 경우 O(n/k) 컨볼루션 레이어 스택이 필요하고 확장된 컨볼루션의 경우 O(logk(n)) 스택이 필요합니다.

확장된 컨볼루션의 경우 네트워크의 두 위치 사이의 가장 긴 경로의 길이 증가합니다.

Conv layer의 경우 k요인 때문에 RNN보다 더 비용이 많이 듭니다.

 

그러나 separable conv의 경우에는 k=n인 경우에도 복잡도가 줄어들게 됩니다.

그러나 separable conv의 복잡도는 self-attention layer와 point-wise feed forward layer의 혼합과 같은 복잡도를 가집니다.

 

 

5.Train

 

5.1 Training Data and Batching

 

논문에서는 45만개의 문장 pair로 구성되어 있는 WMT 2014 English - German dataset를 사용했습니다.

 

문장은 BPE 알고리즘을 사용하여 인코딩되었습니다.

 

English-French 번역 task를 위해서는 360만개의 문장으로 구성된 WMT 2014 English-French dataset을 사용했습니다.

 

Sentence pair는 각각의 문장의 근사치 길이로 batch 되었습니다.

 

5.2. Hardwar and Schedule

 

생략

 

5.3 Optimizer

 

Adam optimizer를 사용합니다. parameter = warmup-steps = 4000

 

 

5.4 Regularization (정규화)

 

Dropout, Label Smoothing 을 사용했습니다.

 

 

6. Result

6.1 Machine Translation

6.2 Model Variations

 

6.3 English Constituency Parsing

 

 

7. Conclusion

 

Translation task에서 Transformer은 RNN, Conv layer 보다 상당하게 빠르게 훈련되었습니다.

논문은 여기서 SOTA를 달성했다고 합니다.

 

attention based 모델의 미래에 대해 기대하고 있으며 이를 다른 작업(이미지,비디오)에 적용할 계획입니다.