현재 우세한 변환 모델은 복잡한 recurrent 또는 인코더와 디코더를 포함하는 합성곱 신경망(CNN)을 기반으로 하고 있다. 최고 성능의 모델도 Attention을 통해 인코더와 디코더를 연결한다.
recurrence와 convolution을 전부 제외하고 Attention 메커니즘에만 기반한 새로운 단순 네트워크 아키텍처인 Transformer를 제안한다.
※이 논문에서 Transformer는 크거나 한정된 train데이터를 가지고 일반적으로 다른 task에 성공적으로 적용될 수 있다는 것을 보여준다.
순환 모델의 연산 문제 : Recurrent 모델(RNN)은 일반적으로 입력 및 출력의 symbol position에 따라 계산을 고려한다.
(계산 시간의 단계의 위치를 정렬하면 이전 hidden state() 및 위치(t)에 대한 입력의 함수로 hidden state() sequence가 생성된다.)

→ 이러한 RNN의 순차적 특성은 training 예제 내에서 sequence가 길수록 병렬화를 배제하며, 이는 메모리 제한으로 예제 전체에서 batching이 어려워 지기 때문에 문제가 된다.
Attention 메커니즘은 다양한 작업에서 강력한 시퀀스 모델링 및 변환 모델의 중요한 요소가 되었으며, 입력 또는 출력 시퀀스에서 거리와 상관없이 모델링할 수 있게 한다. 하지만 대부분의 경우, 이러한 어텐션 메커니즘은 순환 신경망과 함께 사용됩니다
순차적 계산을 줄이려고 Extended Neural GPU, ByteNet, ConvS2S 모두 기본 블록으로 CNN을 사용한다. 이러한 모델에서는 두 개의 임의의 입력 또는 출력 위치에서 신호를 연결하는 데 필요한 작업의 수가 증가하고 원거리 위치 간의 종속성을 학습하는 것이 어렵다.
→ Transformer에서는 연산 수가 일정하게 줄어들지만, attention-weighted position의 평균화로 인해 효과적인 해상도가 감소하는 단점이 있으며 이것을 Multi-Head Attention으로 보완한다.


Attention
Attention은 query + [key-value] → output 으로의 변환을 수행한다. query, key, value, output은 모두 벡터이다. output은 value들의 가중합으로 계산되며, 그 가중치는 query와 연관된 key의 compatibility function에 의해 계산된다.
Scaled Dot-Product Attention
모든 key와 query의 내적을 계산
→ 각각 나누고
→ value에 대한 가중치를 얻기 위해 softmax 함수를 적용한다.
Multi-Head Attention
차원 key, value 및 query로 단일 Attention function을 수행하는 대신, 서로 다른 학습된 query, key, value을 h번 선형으로 학습하는 것이 낫다.
Attention sub-layer 외에도 encoder 및 decoder의 각 layer에는
연결된 feed-forward 는 각 위치에 개별적으로 동일하게 적용되고 이 사이에 ReLU가 있는 2개의 linear layer로 구성된다.
각 layer에서 이 부분은 독립적인 parameter를 사용한다.
다른 sequence 변환 모델처럼 학습된 임베딩을 사용하여 입력 token과 출력 token을 차원의 벡터로 변환한다.
또한 디코더 출력을 예측된 다음 토큰 확률로 변환하기 위해 일반적인 학습된 linear 변환과 softmax 함수도 사용한다.
모델에서는 두 개의 임베딩 layer와 softmax 이전의 linear 변환 사이에서 동일한 가중치를 공유하며, 임베딩 layer에서는 이 가중치에 을 곱합니다
이 모델에는 recurrence와 convolution이 없기 때문에 시퀀스의 순서를 활용하려면 시퀀스 안의 token의 상대적 또는 절대적 position 정보를 추가해야 합니다
이를 위해 input 임베딩에 'positional encodings'를 추가한다.
pos는 위치, i는 차원이다.

※ self-attention에서 장거리 종속성의 학습 속도가 가장 좋다.
WMT2014 English-German dataset(4.5 million sentence pairs)
WMT2014 English-French dataset(36M sentences and split tokens into a 32000 word-piece vocabulary)
Optimizer : Adam()
