[Paper Review] Sequence to Sequence Learning with Neural Networks
-
▮ Introduction
Deep Neural Network는 input과 target size가 고정된 크기의 벡터라는 한계점이 존재하기 때문에 음성인식이나 기계번역 같은 길이가 고정되지 않는 sequential problem에 대해서는 어려움이 존재한다.
본 논문에서는 LSTM(Long Short Term Memory)으로 input sequence를 하나의 고정된 크기의 벡터 표현으로 만들고(Encoder), 다른 LSTM에 그 벡터를 통해 output sequence를 추출하는 방식을 적용하였다.(Decoder)
LSTM은 long term dependency 문제를 해결하기 위해 만들어진 모델로 길이가 긴 문장에 대해서도 좋은 성능을 보였다. 또한 input단어를 역순으로 배치하는 방식을 사용하여 성능을 향상시킬 수 있었다.
▮The Model
RNN은 아래와 같은 수식을 반복하여 input sequence (x1,...,xT)를 output sequence (y1,...,yT)로 매핑한다. 수식을 통해 현재 timestep t에서 입력 xT와 이전 timestep의 hidden state인 hT-1를 함께 고려하여 최종적으로 yT를 계산함을 알 수 있다.
그러나 RNN은 input size와 output size가 다른 경우에는 좋은 성능을 보이지 못하였다.
따라서 본 논문에서 제시하는 모델은 Encoder LSTM을 통해 하나의 context vector를 생성하고 Decoder LSTM에서 context vector를 통해 output sentence를 생성하는 방식으로 input과 output의 size가 다른 경우 성능이 좋지 않은 RNN의 문제점을 해결하고자 하였다.
또한 본 논문은 2가지 방법으로 모델의 성능을 향상시켰다.
첫번째는 Single layer로 LSTM보다 Deep LSTM layer가 성능이 더 좋았으며 해당 논문은 4개의 LSTM layer를 사용하였다고 한다.
두번째는 input sequence를 뒤집어서 입력하는 방법이다.
예를 들어 (나는, 점심을, 먹었다.) → (I, ate, lunch) 에서 input을 (먹었다, 점심을, 나는)으로 바꾸어 입력한다는 뜻이다.
▮Experiments
Decoding and Rescoring
Training 과정에서는 source sentence를 S라고 하고 target sentence를 T라고 한다면, S가 주어졌을 때 T가 일어날 확률의 log liklihood를 최대화 하는 방향으로 모델을 학습시킨다.
training
Inference 과정에서는 beam search 방식으로 가장 큰 확률의 output sequence를 출력한다.
해당 논문에서는 Beam size=2일 때 성능이 가장 좋았다고 한다.
inference
Reversing the Source Sentences
위에서 설명하였듯이 본 논문은 input sequence를 뒤집어서 입력함으로서 모델의 성능을 향상시켰다.
Perplexity : 5.8 → 4.7
BLEU : 25.9 → 30.6
보통 source sentence를 구성하는 각 단어는 target sentence의 대응되는 단어로부터 멀리 떨어져 있는 경우가 많다.
Long term dependency 문제를 생각해보면 초반에 입력된 단어들은 timestep이 증가하면서 그 영향이 점차 흐려진다는 문제점이 존재한다. 따라서 역순으로 입력한다면 초반의 단어들이 최종 hidden state에 미치는 영향이 증가할 것이다.
training details
parameter 초기값 : -0.8 ~ 0.8
optimizer : SGD without momentum
batch size : 128 dataset 대부분이 short sentence여서 batch마다 아주 적은 수의 long sentence가 포함되어 padding을 주었을 때 긴 문장에 맞추게 되다보니 계산 낭비가 발생한다는 문제점이 존재하였다. 따라서 batch마다 비슷한 길이를 가진 문장들로 구성되도록 하였다.
Experimental Result
실험 결과 5개의 LSTM을 앙상블을 한 모델이 가장 좋은 성능을 보였으며
input으로 reverse sequence를 넣었을 때가 forward sequence를 넣었을 때 보다 성능이 더 좋다는 것을 나타내고 있다.
또한 SOTA 모델에 비해서는 BLEU score가 0.5 정도 낮지만 대규모 번역 task에서 딥러닝 모델로는 처음으로 phrase-based SMT를 뛰어넘었다는 것에 의의를 두고 있다.
아래 그래프를 보면 유사한 문장 사이의 거리가 의미가 전혀 다른 문장과의 거리에 비해 더 가까운 것을 확인할 수 있다.
또한 단어의 주어/동사별 의미단위로 조밀하게 모여있어 단어의 순서에는 영향을 많이 받지만, 수/능동태 단위의 영향도는 거의 없음을 확인할 수 있다.
▮Conclusion
LSTM을 쌓아 만든 Encoder를 통해 context vector를 만들고 이 context vector가 LSTM을 쌓아 만든 decoder를 통해 번역 문장이 나오도록 모델을 설계하여 기존의 DNN의 한계점인 input, output size가 고정되어야 한다는 문제점과 long term dependency 문제를 개선할 수 있도록 하였다.
또한 reversed order input sequence를 사용하여 long term dependency 문제를 개선하였다.