기존 sequence transduction(machine translation)에서 활용된 seq2seq 모델은 순차적으로 입력(sequence position $t$)을 받아 처리
seq2seq는 순차적으로 입력을 받아 간단하게 sequence를 표현할 수 있지만 long-range dependencies, parallelizable 문제가 발생
long-range dependencies를 해결하기 위해서 Attention을 도입했지만 fixed-encoder representation으로 context를 온전히 표현할 수 없는 seq2seq의 근본적인 문제는 해결 불가
2. 제안
입력을 순차적으로 처리하는 RNN을 버리고Attention만을 사용한 Encoder - Decoder 구조를 도입해 long-range dependencies와parallelizable문제를 해결. 이때 position을 반영할 수 있도록 sinusodal function을 활용한 Positional Encoding을 도입해 문장을 한꺼번에 입력
Parallelizable
병렬 처리 가능한 특성을 활용하면서 동시에 different representation sub-spaces를 얻기 위해서 Multi-Head Attention 사용
병렬 처리에 유용한 dot - product Attention을 큰 $d_k$에서도 빠른 속도로 활용할 수 있도록 Attention 값을 $\sqrt{d_k}$로 scaling
Long-range dependencies
encoder, decoder에서의 self-attention과 encoder - decoder 사이 attention 도입
decoder 시점에서 미래 단어(아직 모르는 단어까지 한꺼번에 입력)들을 참조하지 못하도록 look-ahead mask 도입
학습 관련
residual-connection과 layer-normalization 도입
ReLU를 가진 Position-wise Feed-Forward Network를 통해 비선형성 증가(1 x 1 conv와 비슷한 역할)
input, output을 통해 공유된 embedding representation 학습
scale variant한 $softmax$에서 gradient vanishing을 방지하기 위해서 Attention 값을 $\sqrt{d_k}$로 scaling