
2015년에 발표한 Attention 매커니즘을 처음으로 소개한 논문이다.
기계 번역 분야에서 신경망 기계 번역(Neural Machine Translation)은 해당 논문이 발표된 2015년 즈음에는 새로운 기술이었다. 그전까지 보편적으로 사용된 phrase-based translation 또는 statistical machine translation으로 불리우는 통계 기계 번역은 여러 개의 독립적인 서브 모듈로 구성된다. 번역(translation), 언어(language), 정렬(alignment), 재정렬(reordering) 등이 이에 해당한다. 이러한 방법은 각 서브 모듈을 따로 설계, 학습 그리고 튜닝을 해야만했다. 따라서 신경망 기계 번역은 하나의 거대한 신경망으로 통합하여 학습을 하기위한 방법으로 도입되었다.
해당 논문이전에 제안되었던 방법은 LSTM과 GRU로 대표되는 인코더-디코더 기반의 작동 방식으로 인코더를 통해서 입력 문장을 고정된 길이의 벡터로 맵핑하고 디코더는 반대로 벡터에서 출력 문장을 생성한다. 이러한 방법에서 가장 큰 문제는 고정된 길이의 벡터로 변환하는 과정에서 중요한 정보들이 압축이 되면서 손실이 일어난다는 문제인데 특히 문장의 길이가 길어질수록 더욱 대처하기가 어려워진다. 해당 논문의 같은 저자가 속해있는 GRU 논문에서도 입력 문장이 길어짐에 따라 성능의 저하가 심해진다는 것을 확인하였다.
위의 문제를 해결하기 위해서 기존의 인코더-디코더 모델에 정렬(align)과 번역(translate)을 동시에 하도록 학습한다. 디코더 과정에서 새로운 단어를 생성하는 과정에서 입력 문장의 어떤 부분이 생성할 단어와 연관이 있는지를 계산하여 가중치를 디코더에 넘겨준다. 따라서 context vector에 입력 문장의 위치와 이전 생생한 모든 단어를 참고한다.
이전의 방법들과의 차이점을 비교를 해보자면 다음과 같다.
-이전 방법: encoder에서 전체 문장을 하나의 고정된 길이의 벡터로 변환함
-제안하는 방법: decoder에서 매 스텝마다 새로운 벡터를 만들어서 alignment score와 계산을 함
이렇게 정렬과 번역을 동시에 하는 방법을 도입을 하면서 향상된 번역 성능을 보여주고 특히 길어진 문장에서도 강한 성능을 보여주면서 비교를 하면서 양질의 분석을 아래에서 보여줄 것이다.
Learning To Align And Translate
기존 RNN에서 새로운 단어를 생성을 하면서 다음의 식을 최대화하면서 학습을 한다.

$y_1$부터 $y_{t-1}$까지 이전의 생성한 단어들에 해당하며 이를 참고한다. 또한 c는 context vector에 해당하며 이를 조건부 확률로 새로운 $y_t$에 확률을 계산한다. g()는 비선형 함수이고 $s_t$는 RNN의 hidden state이다.
이와 달리 해당 논문에서는 새로운 조건부 확률을 도입한다.

바뀐점에 대해서 살펴보면 고정된 c 대신 입력 x를 조건부로 대체하며 g()안에서도 c대신 $c_i$로 바꾸었다. $s_i$는 i번째 타임 스텝에서 RNN의 은닉 상태이다.

그 다음으로 확인을 해보아야하는 것은 context vector의 변화이다. 먼저 기존 RNN에서 정의한 c는 다음과 같다.

입력의 모든 hidden state를 비선형함수 q()를 거쳐서 고정된 길이의 벡터로 변환한다. 그리고 본 논문의 c는 다음과 같다.

$\alpha_{ij}$는 j 위치 주위의 입력 문장과 출력 시퀀스의 i 위치가 얼마나 매칭이 되는지에 대한 가중치로 0~1사이에 값이며 모두 합치면 합이 1이다. 이 알파는 입력 문장의 어느 부분에 집중할지를 정해주면 연관이 높은 단어일수록 높은 가중치가 부여된다.
Encoder: Bidirectional RNN For Annotating Sequences
RNN을 이전 단어뿐만아니라 이후의 단어들에 대해서도 요약하는 양방향 RNN을 도입한다. 정방향과 역방향의 hidden state를 결합하여 이전의 단어와 이후의 단어를 요약한 hidden state를 정의한다.

Experiments
Dataset
WMT 데이터셋을 사용하여 영어-프랑스어 번역 데이터셋 총 8억5천만개의 단어를 이용한다. 토큰화를 마친뒤 3만개의 빈출 단어만을 축약해서 학습을 하였고 이에 해당하지 않는 단어들은 unknown(UNK)처리를 하였다.
Models
2개의 버전의 모델을 학습시켰다. 비교를 위한 인코더-디코더 RNN과 본 논문이 제안하는 attention 모듈 기반의 RNN 모델이다. 그리고 각 모델 별로 단어의 최대 학습 길이를 30개와 50개로 나누어서 실험을 진행하였다.
Results
아래 표는 평가를 위해 번역이 잘 될었는지를 평가하는 BLEU 점수의 결과이다.

제안한 attention 모델이 인코더-디코더 기반 모델보다 더 뛰어난 모습을 보여주었고 기존 SMT에 해당하는 Moses와 비교하여도 비슷한 성능을 보여주었는데 Moses가 attention 모델보다 4억 1800만개의 단어를 추가 학습하였음을 생각해보았을 때 뛰어난 성능을 보여준다는 것을 확인할 수 있다.
본 연구의 동기 중 하나인 고정된 크기의 context vector가 긴 문장을 입력으로 받았을 때 성능을 떨어질 것이라 추측하였던 연구진은 아래 그래프를 통해서 가설이 맞았다는 것을 확인할 수 있었다.

인코더-디코더는 문장의 길이가 20을 기점으로 BLEU 점수가 급격하게 하락하는 것을 확인할 수 있다. attention기반 50문장까지 학습을 한 RNN만이 문장의 길이가 길어저도 성능을 유지하는 모습을 보여주었다.
다음으로 attention 메커니즘을 활용하여 입력과 출력 문장의 각 단어에 대한 alignment를 시각화하여 연관이 높을수록 하얀색으로 나타난다.

위의 그림과 같이 단어와 매칭이 되는 alignment 점수가 시각화되어있다. 위의 두 문장에 있는 각 단어의 위치가 같아서 대각선의 형태로 높은 연관성을 갖으며 번역된다는 것을 확인할 수 있다. 그러나 다음 문장에서는 조금 다르게 나타나는 것을 확인할 수 있다.

영어에서 European Economic Area가 프랑스어에서 zone économique européenne로 번역되는 과정에서 형용사와 명사의 위치가 뒤집혀있기 때문에 alignment score가 뒤집혀서 나타난 것을 확인할 수 있다.
Conclusion
기존에 인코더-디코더 기반의 신경망 기계 번역 모델이 갖고 있는 고정된 길이의 context vector의 문제점을 제기하여 입력 문장과 출력 문장의 관계, 즉 연관도를 나타내는 alignment score를 추가하여 긴 문장에 대해서도 성능 저하가 없었으며 이전 방식의 SMT와 비슷한 수준이거나 향상되었다는 것을 실험에서 확인할 수 있었다. 추가로 unknown이나 희소한 단어들을 다뤄야하는 문제를 언급하여 이후의 연구 방향성을 제시한다.