Sequence to Sequence

Sequence to Sequence Learning with Neural Networks (NIPS, 2014)

1. Abstract & Introduction

  1. Deep Neural Network(DNN)은 다양한 Task에서 훌륭한 성능을 내는 모델이지만 Seq to Seq Mapping은 할 수가 없었다.

  2. 본 논문에서는 LSTM을 사용한 Encoder와 Decoder를 구성함으로써 문제를 해소하고자 하였다.

  3. WMT-14 dataset에 대하여 영어를 불어로 변역하는 Task로 점수를 매겨본 결과 기존 기계번역에 사용하던 SMT 모델(33.3 BLEU Score) 보다 더 좋은 성능(34.8 BLEU Score)을 낼 수 있었다.

  4. LSTM을 활용하여 SMT 모델로 추론한 1000개의 가설을 재배열 하였더니 성능이 36.5까지 향상되었다. (현 최고점은 37점)

  5. 단어의 순서를 거꾸로 하였을 때 LSTM의 성능이 향상되었다. 단어의 순서를 거꾸로 함으로 만들어지는 많은 short term dependency는 source 와 target sentence의 최적화 문제를 쉽게 만들었기 때문이다.

기존 RNN 기반 모델의 경우 위와 같이 형성되어 하나의 input에 각각 결과하고 hidden state를 다음 layer로 전달하며 결과를 얻어낸다. 영어와 한글 사이의 문법으로 인해 x2,x3x_2, x_3y3,y2y_3, y_2로 매핑이 될 수 없는 한계를 가지고 있다. 이런 한계를 Encoder와 Decoder 두개의 RNN구조로 나누어서 학습할 수 있도록 한다.

즉, Input Data를 Encoder에 넣어 전체적인 문장의 의미를 가지는 Context Vector를 구하고, 이 구해진 Context Vector로 부터 Decoder가 번역결과를 추론합니다.

2. The Model

기존 RNN은 아래와 같이 입력값 (x1,...,xT)(x_1, ..., x_T)에 대해서 출력값 (y1,...,yT)(y_1, ..., y_T)을 가지는 수식을 갖는다.

ht=sigmoid(Whxxt+Whhht1)h_t = sigmoid(W^{hx}x_t + W^{hh}h_{t-1})

yt=Wyhht y_t =W^{yh}h_t

입력 문장의 크기와 출력 문장의 크기가 다르면 위와 같이 처리가 어렵다. check) RNN은 Long-Term Dependency를 처리하기 어렵다는 문제가 있어 LSTM 기법을 활용하였다.

p(y1,...,yTx1,...,xT)=t=1Tp(ytv,y1,...,yt1)p(y_1, ..., y_{{T}'}\mid x_1, ..., x_{{T}}) = \prod_{t=1}^{{T}'}p(y_t \mid v, y_1, ...,y_{t-1})

  • xtx_t: 현재까지의 입력단어

  • hth_t: 지금까지 입력된 문장에 대한 정보를 담은 벡터 표현

  • sts_t: 지금까지 출력된 문장에 대한 정보를 담은 벡터 표현

  • yty_t: 현재의 출력 단어

  • v:x1,...,xTv: x_1, ..., x_{T} 에 대한 정보를 담은 벡터표현

※ 특징

  • Encoder 파트와 Decoder파트는 서로 다른 LSTM로 구성되어 있다.

    ⇒ 작은 계산 비용의 증가로 Parameter의 수를 증가시킬 수 있다.

  • 총 4개의 Layer를 가지는 LSTM을 사용한다.

    ⇒ 모델의 capacity가 커진다. 너무 깊게 쌓으면 비용이 증가할 수 있다.

  • 단어순서를 바꾸는 것이 성능을 향상시켰다.

3. Experiment

  • WMT’14의 English to French dataset으로 실험을 진행했다. source / target language 각각에 fixed size vocabulary를 사용했다 (source: 160,000 / target: 80,000). OOV는 “UNK” token으로 대체된다.

  • 일반적인 Decoding과 Rescoring

    • 1/S=(T,S)Slogp(TS)1/\left | S \right| = \sum_{(T,S)\in S}log{p(T \mid S)}, [S:S: Source Sentence, T:T: Target Sentence]

    • T^=argmaxT p(TS)\hat{T} = \underset{T}{arg max} \ p(T\mid S)

    • beam search 기법 사용

  • 문장의 입력을 Reverse함으로써 long sequence에서는 source sentence를 BLEU score가 25.9에서 30.6으로 증가했다.

  • 학습 Hyperparameters

    • deep LSTMs with 4-layers

    • embedding size : 1,000 dim

    • LSTM init : uniform distribution(-0.08 ~ 0.08)

    • SGD without momentum

    • learning rate : 0.7

    • After 5 epoch, halving(이등분) learning rate every half epoch until 7.5 epochs

    • batch size : 128

    check) 비슷한 길이의 문장끼리 묶음으로써 두배의 학습 속도 향상을 내었다.

4. Experimental Results

  • Baseline 모델보다 충분히 나은 성능을 확인할 수 있다.

  • LSTM과 SMT를 함께 사용했을 때 36.5로 준수한 성능을 확인할 수 있다.

  • 비슷한 내용끼리 분류된 것을 확인

다음으로 읽어볼 논문

Reference

Last updated