2017년 당시에 번역 task에 지배적인 모델들은 복잡한 RNN과 CNN을 포함한 Encoder, Decoder 구조였다. 또한 가장 좋은 성능의 모델은 이러한 Encoder와 Decoder를 attention mechanism
을 통해서 연결하고 있다.
본 논문에서는 Transformer
라는 간단하고 새로운 모델 구조를 소개 하는데, 이는 RNN과 CNN을 제거한 모델이다. 실험을 통해서 확인했듯이 우리의 모델은 병렬화에서 좋은 성능을 보였으며 train 시간이 기존 모델 보다 줄어들었고 괜찮을 성능을 냈다. 또한 다른 task에서도 괜찮은 성능을 보였다
LSTM고 GRU같은 RNN 모델들이 시퀀스 데이터 또는 기계 번역 task에서 SOTA의 성능을 보여왔으며 Recurrent 언어 모델과 encoder - decoder 구조의 경계안에서 많은 노력들이 진행되었다.
Recurrent 모델의 경우 일반적으로 input과 output의 위치에 대해서 연산을 한다. 연산 시간에 순차적으로 정렬된 위치는 일련의 은닉상태인 ht를 만들어낸다. (이전 은닉상태는 ht-1, 이는 t 위치의 인풋이 된다.) 이는 시퀀스가 길어지면 메모리의 제약으로 인해서 병렬 처리가 불가능하다. 최근 새로운 trick[21]과 조건 연산[32]을 통해서 어느 정도 효율적인 연산에 대한 증진이 있었지만 (모델 성능도 향상) 아직 이러한 제약은 해결되지 않은 문제이다.
Attention 방법은 시퀀스 데이터 모델과 번역 모델에서 중요한 방법이 되었으며 이는 input과 output에 대한 길이의 종속성 없이 모델링을 가능하게 하였다. 하지만 이러한 attention 방법은 몇몇 케이스를 제외하고 RNN과 함께 사용된다.
본 논문에서는 Transforemer를 제안한다. 해당 모델은 RNN을 제거하고 대신에 attention 방법에 의존한다. 해당방법은 병렬화를 가능하게 해주고 SOTA 성능을 달성하였다.
연속적인 연산을 감소시키기 위한 목표는 [16], [18], [9] 에서 시도 되었는데 해당 방법들은 Convolution 을 활용하여 인풋과 output의 대한 hidden representations를 병렬적으로 연산하려고 하였다. 하지만 이러한 방법은 단점이 존재했는데 ConvS2S는 선형적으로 ByteNet의 경우 대수적으로 input과 output의 거리가 증가하게 되면 신호를 연결하기 위해서 연산횟수가 증가한다. 이는 위치 거리에 따른 학습을 어렵게 만들었다.
본논문에서 제안하는 Transformer의 경우 연산횟수를 일정 수로 제한하는데, 평균 attention-weigted를 활용하여 해상도가 줄어들더라도 효율적인 연산을 한다.
이는 Multi-head attention에 대응된다.
종종 intra-attention이라고 불리는 Self-attention은 하나의 시퀀스에서 다른 위치에 있는 것에 대한 attention 방법으로 시퀀스의 표현을 연산하기위해서 사용된다.