[논문 리뷰] Seq2Seq Learning with Neural Networks

JEEWOO SUL·2022년 1월 10일
3

🧠 ML/DL

목록 보기
9/17

💁🏻‍♀️ My Review

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가 도입되었기 때문이라든데.. 좀 더 공부가 필요하다 ... (ノ`Д)ノ


Abstract

  • 기존 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에 어려움 X, 능동태와 수동태에 변함 X, 순서에 민감하다.

  • 입력 문장의 순서를 역순으로 바꾸어 학습하는 것이 성능이 훨씬 뛰어나다. 그렇게 함으로써 입력 문장과 target 문장 사이의 많은 short term dependencies를 도입하여 최적화 문제를 더 쉽게 만들었다.

1. Introduction

  • Deep Nerual Networks의 특징
    • DNN은 speech recognition 등 어려운 문제에 대해 뛰어난 성능을 보이는 ML model이다.
    • step에서의 병렬 계산, 오직 2개의 은닉층을 사용하여 NxN bit 수 계산 등 강력한 힘을 보여줌
    • labeled training dataset이 network 매개변수를 지정하는데 충분하다면, large DNN은 supervised backpropagation으로 학습시킬 수 있다.

하지만 이러한 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를 얻을 수 있었다.

  • LSTM은 긴 시퀀스에 영향을 받지 않는다. 학습과 테스트 시에 입력 시퀀스의 순서를 뒤바꾸었기 때문이다.
  • 또하나의 LSTM 장점은 가변길이의 입력 시퀀스를 고정된 크기의 벡터로 변화하는 걸 학습한다. 번역 task에서 paraphrasing되는 걸 고려해볼때 이 task의 목표는 LSTM이 의미를 정확히 담아내는 시퀀스 표현을 찾는 데에 있다.

2. The model

실제 모델은 3가지 방법이 이전 RNN 방법과는 다르다.

  1. 입력 시퀀스와 출력 시퀀스에 대한 2개의 LSTM을 사용
    → 사소한 cost 정도의 model parameter 수가 증가함
    → 동시에 다양한 언어 문장들에 대한 LSTM을 학습시킬 수 있음

  2. 4-layered LSTM을 사용
    얕은 LSTM보다 깊은 LSTM이 상당히 우수한 성능을 보임

  3. 입력 문장의 단어 순서를 바꾸는 것이 엄청난 영향을 끼치는 점을 발견

3. Experiments

3.1 Dataset details

WMT' 14 English to French dataset
프랑스어 348억개, 영어 340억개 단어로 구성된 12M (1,200만) 문장들로 모델을 훈련함

3.2 Decoding and Rescoring

목적 함수 (objective function)

  • T : a correct Translation, S : source sentence
  • log probability를 높이도록 학습시킨다

가장 확률이 높은 translation을 찾는데 간단한 left-to-right beam search decoder를 사용한다.

  • Beam search이란?
    • Greedy Decoding 방식은 단순하게 해당 시점에서 가장 확률이 높은 후보를 선택하는 것이다. 예를 들어, 특정 시점 t에서의 확률분포 상에서 상위 1등과 2등의 확률 차이가 작든 크든, 무조건 가장 큰 1등에게만 관심이 있을 뿐이다. 이러한 예측에서 한 번이라도 틀린 예측이 나오게 된다면, 이전 예측이 중요한 디코딩 방식에서는 치명적인 문제가 된다.
    • Beam Search는 Greedy Decoding 방식의 단점을 보완하기 위해 나온 방식이다. 빔서치는 해당 시점에서 유망한 빔의 개수만큼 골라서 진행하는 방식이다.
    • start 토큰이 입력되면 이를 바탕으로 나온 예측값의 확률 분포 중 가장 높은 확률 K개를 고른다. 이제부터 이 K개의 갈래는 각각 하나의 빔이 된다. K개의 빔에서 각각 다음 예측값의 확률 분포 중 가장 높은 K개를 고른다. K개의 빔에서 다음 예측값의 확률 분포 중 가장 높은 K개(자식 노드)를 고른다. 총 K^2개의 자식 노드 중 누적확률 순으로 상위 K개를 뽑는다. <eos>를 만난 빔이 K개가 될때까지 위의 과정을 반복한다.
    • PyTorch Beam Search Decoding code

3.3 Reversing the Source Sentences

입력 시퀀스의 순서를 바꿈으로써, 혼잡도는 낮아지고(5.8 → 4.7), BLEU score는 증가하였다(25.9 → 30.6).

Why? dataset의 많은 short term dependencies가 도입되었기 때문. 직관적으로 Gradient의 전파가 원활해지기 때문이라고 볼 수 있다.

3.4 Training details

4 layer로 구성된 deep LSTM을 사용하였고 각 layer은 1000개의 node로 구성되었다.

항목내용
parameter의 초기값-0.8 ~ 0.8
optimizerstochastic gradient descent
learning rate0.7
epochs7.5
batch size128

3.5 Parallelization

8-GPU를 사용하여 학습 시간은 10일이 소요되었다.

3.6 Experimental Results

3.7 Performance on long sentences

LSTM은 긴 시퀀스에도 잘 동작한다. 논문의 Table 3Figure 3 참조.

  • 시퀀스 길이가 35까지는 BLEU score가 상승되지만, 그 이후로는 저하된다.
  • 등장 빈도가 높은 단어를 가진 문장일 수록 BLEU score가 높게 측정되었다.

3.8 Model Analysis

아래의 figure에서 representations이 수동태/능동태 상관없이 단어 순서에 민감하다는 걸 명확히 보여준다.

Conclusion

  • 입력 문장 순서를 바꾸는 트릭으로 성능을 더 높였다. 본 논문에서 직접 실험을 하지는 않았지만, RNN도 이 트릭으로 쉽게 학습될 수 있다고 생각한다.
  • 간단하고 최적화하지 않은 deep LSTM이 이미 성능이 뛰어난 SMT system을 뛰어넘었다는 것이 중요한 발견이다.
profile
느리지만 확실하게 🐢

0개의 댓글