LSTM을 사용하여 sequential problem을 해결하다!
주요 포인트는 다음과 같다.
1. RNN 대신 4-layered LSTM을 사용함
2. input/output용 LSTM을 사용해서 도메인에 자유로움
3. input sequence의 단어 순서를 바꿔서 성능을 높임
번역 task에서 비록 이전 SOTA 보다는 0.5 score 뒤처지기는 하지만
간단한 LSTM이 최적화된 SMT system을 뛰어넘었다는 점은 의미있는 발견이다.
가장 중요하다고 생각한 포인트는 2014년 이전 시점에서 DNN(Deep Neural Network)의 input size가 fixed된다는 한계점에 대해 2개의 LSTM을 각각 Encoder와 Decoder를 사용해 해결하였다는 점이다.
부가적으로, 단어를 역순으로 배치하는 트릭을 적용하여 성능을 개선시켰다고 하는데 정확히 왜 그런지 이해가 되질 않았다. 본 논문에서는 많은 short-term dependencies가 도입되었기 때문이라든데.. 좀 더 공부가 필요하다 ... (ノ`Д)ノ
기존 DNN의 한계점 : sequence와 sequence를 매핑하는데 사용할 수 없음
이 논문에서는 문장 구조에 대한 최소한의 가정만 하는 sequence learning에 관한 end-to-end approach를 제시한다.
Translation task (WMT-14 dataset)에서 34.8 BLUE score를 기록하였다. 이와 반대로, phrase-base SMT system에서는 33.3으로 보다 낮은 score를 보였다.
LSTM은 long sentences에 어려움 X, 능동태와 수동태에 변함 X, 순서에 민감하다.
입력 문장의 순서를 역순으로 바꾸어 학습하는 것이 성능이 훨씬 뛰어나다. 그렇게 함으로써 입력 문장과 target 문장 사이의 많은 short term dependencies를 도입하여 최적화 문제를 더 쉽게 만들었다.
하지만 이러한 flexibility와 power에도 불구하고, DNN은 고정된 크기의 차원인 벡터인 input과 target에 대해 encode할 수 있다. 미리 문장의 길이를 알지 못하는 많은 문제에 대해 적용할 수 없다는 심각한 한계가 있다. 그러므로, 도메인에 대해 독립적인 메소드가 필요한 시점이다.
본 논문에서는 위와 같은 한계점을 극복하기 위해 LSTM 아키텍처를 제시한다.
1 LSTM : input 시퀀스를 encode하기 위해 사용
→ large fixed-dimensional vector representation을 얻음
→ 1 LSTM : output 시퀀스를 decode하기 위해 사용
앞에서 언급했듯이 34.81 BLEU score를 기록하였다. 80k (80,000) 단어로 학습된 LSTM을 사용하여 이러한 결과를 획득하였는데, translation에 포함되지 않은 단어가 포함될 때마다 패널티를 받게되었다. 이를 통해 보통의 LSTM 구조가 최적화된 SMT system보다 더 뛰어나다는 사실을 알 수 있다.
마침내, 같은 task에 대해 공개된 최적화된 SMT baseline으로 재점수를 매기기 위해 LSTM을 사용하였는데 그 결과 이전보다 3.2 score가 향상된 36.5 BLEU score를 얻을 수 있었다.
실제 모델은 3가지 방법이 이전 RNN 방법과는 다르다.
WMT' 14 English to French dataset
프랑스어 348억개, 영어 340억개 단어로 구성된 12M (1,200만) 문장들로 모델을 훈련함
목적 함수 (objective function)
가장 확률이 높은 translation을 찾는데 간단한 left-to-right beam search decoder를 사용한다.
start
토큰이 입력되면 이를 바탕으로 나온 예측값의 확률 분포 중 가장 높은 확률 K개를 고른다. 이제부터 이 K개의 갈래는 각각 하나의 빔이 된다. K개의 빔에서 각각 다음 예측값의 확률 분포 중 가장 높은 K개를 고른다. K개의 빔에서 다음 예측값의 확률 분포 중 가장 높은 K개(자식 노드)를 고른다. 총 K^2
개의 자식 노드 중 누적확률 순으로 상위 K개를 뽑는다. <eos>
를 만난 빔이 K개가 될때까지 위의 과정을 반복한다. 입력 시퀀스의 순서를 바꿈으로써, 혼잡도는 낮아지고(5.8 → 4.7), BLEU score는 증가하였다(25.9 → 30.6).
Why? dataset의 많은 short term dependencies가 도입되었기 때문. 직관적으로 Gradient의 전파가 원활해지기 때문이라고 볼 수 있다.
4 layer로 구성된 deep LSTM을 사용하였고 각 layer은 1000개의 node로 구성되었다.
항목 | 내용 |
---|---|
parameter의 초기값 | -0.8 ~ 0.8 |
optimizer | stochastic gradient descent |
learning rate | 0.7 |
epochs | 7.5 |
batch size | 128 |
8-GPU를 사용하여 학습 시간은 10일이 소요되었다.
LSTM은 긴 시퀀스에도 잘 동작한다. 논문의 Table 3
와 Figure 3
참조.
아래의 figure에서 representations이 수동태/능동태 상관없이 단어 순서에 민감하다는 걸 명확히 보여준다.