기존의 Deep Learning의 Input size가 고정되 것을 극복하기 위해 LSTM을 활용했다는 것이 특징이다.
기존 DNN의 한계점 : sequence와 sequence를 매핑하는데 사용할 수 없음
이 논문에서는 문장 구조에 대한 최소한의 가정만 하는 sequence learning에 관한 end-to-end approach를 제시한다.
입력 문장을 고정된 차원의 벡터로 매핑하기 위해 multilayered LSTM을 사용함
벡터를 target 문장으로 decode하기 위해 multilayered LSTM을 사용함
Translation task (WMT-14 dataset)에서 34.8 BLUE score를 기록하였다. 이와 반대로, phrase-base SMT system에서는 33.3으로 보다 낮은 score를 보였다.
LSTM은 long sentences에 RNN에 비해 좋은 성능을 보여준다.
입력 문장의 순서를 역순으로 바꾸어 학습하는 것이 성능이 훨씬 뛰어나다. 그렇게 함으로써 입력 문장과 target 문장 사이의 많은 short term dependencies를 도입하여 최적화 문제를 더 쉽게 만들었다.
자세한 설명은 다음 링크를 참조하도록 한다.
프랑스어 348억개, 영어 340억개 단어로 구성된 12M (1,200만) 문장들로 모델을 훈련함
- Beam search이란?
Greedy Decoding 방식은 단순하게 해당 시점에서 가장 확률이 높은 후보를 선택하는 것이다. 예를 들어, 특정 시점 t에서의 확률분포 상에서 상위 1등과 2등의 확률 차이가 작든 크든, 무조건 가장 큰 1등에게만 관심이 있을 뿐이다. 이러한 예측에서 한 번이라도 틀린 예측이 나오게 된다면, 이전 예측이 중요한 디코딩 방식에서는 치명적인 문제가 된다.
Beam Search는 Greedy Decoding 방식의 단점을 보완하기 위해 나온 방식이다. 빔서치는 해당 시점에서 유망한 빔의 개수만큼 골라서 진행하는 방식이다.
start 토큰이 입력되면 이를 바탕으로 나온 예측값의 확률 분포 중 가장 높은 확률 K개를 고른다. 이제부터 이 K개의 갈래는 각각 하나의 빔이 된다. K개의 빔에서 각각 다음 예측값의 확률 분포 중 가장 높은 K개를 고른다. K개의 빔에서 다음 예측값의 확률 분포 중 가장 높은 K개(자식 노드)를 고른다. 총 K^2개의 자식 노드 중 누적확률 순으로 상위 K개를 뽑는다.