본문 바로가기

Paper Review

Paper Review #4 - Learning Phrase Representations using RNN Encoder-Decoder Statistical Machine Translation

Learning Phrase Representations using RNN Encoder-Decoder
Statistical Machine Translation (2014.06.03) - https://arxiv.org/abs/1406.1078
 

Learning Phrase Representations using RNN Encoder-Decoder for Statistical Machine Translation

In this paper, we propose a novel neural network model called RNN Encoder-Decoder that consists of two recurrent neural networks (RNN). One RNN encodes a sequence of symbols into a fixed-length vector representation, and the other decodes the representatio

arxiv.org

 

Research direction & Motivation


Main Purpose

Applying RNN Encoder-Decoder with a novel hidden unit to SMT system

 

 본 논문은 기계번역 분야에 있어서 각각 encoder와 decoder라고 불리는 두개의 RNN 구조를 사용한 네트워크와 새로운 형태의 hidden unit인 GRU를 제안한다. Encoder는 가변적인 길이의 source sequence를 고정된 길이의 vector representation으로 변환하는 역할을 하며, Decoder는 해당 vector representation을 target sequence로 변환하는 역할을 한다. 기존의 SMT(Statiscal Machine Translation)와 성능을 비교하고, 적용함으로써 성능의 개선을 이끌어낸다.  특히 의미와 문법적인 내용을 담은, 범용적인 Phrase Representation으로 활용할 수 있는 점에서 해당 모델이 SMT의 성능을 높일 수 있으며 더 나아가 SMT를 완전히 대체할 수 있는 가능성에 대해 말하고 있다.

 

Related research


 최근 neural networks의 발전으로 많은 분야에서 높은 성과들을 보여주고 있다. 특히 NLP 분야에서도 신경망은 성공적으로 사용되고 있는데 특히 SMT의 분야에서 좋은 성과를 가져왔다. RNN이 아닌 feedforward 구조를 활용한 고정된 입력과 출력값을 가지는 네트워크가 제안되기도 했는데 이는 한 번에 한개의 단어만 예측이 가능했으며 입력값의 가변성에 있어서 한계를 가지고있었다. 또한 learned bilingual embedding을 이용해 SMT에서 문장 pair간의 거리를 계산하는데 이용하는 방안과 input 문장의 bag-of-words representation으로부터 output 문장으로의 mapping을 학습하는 방법들이 제시되었다. 

 

 위 방법들과 논문에서 제안하고있는 RNN Encoder-Decoder에는 결정적인 차이가 존재하는데, 이는 source와 target 문장에서 순서에 대한 고려 여부이다. 전자는 순서에 대한 정보를 무시하지만 후자의 경우에는 동일한 단어가 사용되어도 다르게 배치된 순서에 대해서 고려하고 이를 구분하는 능력을 갖고있다.

 

 2013년, RNN Encoder-Decoder와 유사하게 Continuous Translation Model이 제시된 바가있다. 관련 연구에서는 encoder와 decoder의 구조로 구성된 유사한 모델을 사용한다. 그러나 해당 모델은 convolutional n-gram model(CGM)을 encoder로, RNN을 decoder로 사용한다는 점에서 차이점을 가지고 있다.

 

RNN Encoder-Decoder


Encoder-Decoder

 Encoder에서는 input sequence인 X의 embedding vector를 읽으면서 hidden state를 update한다. 예를 들면, "this is great"이라는 문장을 input으로 투입한다고 가정했을때, 첫 번째 입력인 X1는 "this", X2는 "is", X3는 "great"의 embedding vector가 된다. Encoder은 입력들을 받아 hidden state를 update하며, input sequence의 마지막을 알리는 symbol인 EOS(End-Of-Sequence)를 받아 hidden state는 전체 input sequence의 summary인 vector c를 생성한다.

 

 Decoder는 encoder와는 반대로 주어진 hidden state인 위 식에서 f는 non-linear activation function으로, sigmoid와 tanh라고 생각하면 된다.

 

 다음으로, 학습에 있어서 모델은 encoder와 decoder를 동시에 학습한다. Conditional log-likelyhood를 최대화 하는 방향으로 Input sequence data인 xn에 대해 target data인 yn이 나올 확률이 max가 되는 최적의 파라미터 

 

New hidden unit (GRU)


Architecture

 본 논문에서는 새로운 형태의 hidden unit을 제안했는데, 이는 LSTM과 유사하지만 한층 더 간단한 모습이다. Input, Forget, Output gate로 구성된 LSTM과 달리, 여기서 제안된 unit은 GRU라고 불리며 Update gate와 Reset gate, 두 가지로 구성된다.  따라서 계산량이 비교적 적어 학습시간이 단축되는 장점을 가진다.

 

 제시된 그림에서 h는 이전의 hidden state, h̃는 현재의 hidden state을 의미한다. 그리고 r은 Reset gate로 이전의 hidden state인 h를 어느정도로 유지하고 반영할 것인지를 정한다. z는 Update gate로 현재의 hidden state인 h̃을 얼마나 반영할 것인지를 정한다. 즉 Reset gate가 0에 가까울 수록 현재 hidden state는 이전의 hidden state의 정보를 무시하고 새로운 input으로 update하게된다. 이렇게 Reset gate는 이후의 hidden state와 무관하다고 생각되는 이전의 정보를 무시함으로써 더 간결한 표현력을 갖도록 만든다. 

 

 

Gate function

 

 위 수식은 j번째 hidden state의 Reset gate와 Update gate를 계산하는 식을 나타낸다. σ는 logistic sigmoid activation function,  []j는 j-th element of vector를 의미한다. Wr와 Ur는 각각 weight, x와 h⟨t-1⟩은 input과 이전 hidden state를 의미한다.  Reset gate는 input x에 weight인 Ur을 곱한 값과, 이전 hidden state인 h⟨t-1⟩에 Ur를 곱한 값을 더해 sigmoid function에 넣어 구한다. Update gate 역시 동일하다.

 

 

 수식에서 ⊙는 element-wise product인 Hadmard product, φ는 tanh activation function를 의미한다. 이렇게 계산된 rj와 zj를 토대로 time step t에 대한 hidden state를 구할 수 있다.  즉, Update gate인 z의 값이 0.3일때 jth element의 t번째 hidden state는 이전 state의 정보를 30%를 넘겨받고 새로운 state의 정보를 70% 수용하게된다.

 

 최종적으로 이렇게 계산된 hidden state에 weigh 인 V를 곱한뒤 tanh를 적용해 encoder의 output인 c가 연산되고 이는 decoder로 연결되는 메커니즘이 된다.

 

Applying to SMT system


 Statistical machine translation (SMT)는 대규모 데이터를 학습해 만든 통계적 모델을 사용해 번역하는 방법으로 단어들을 번역해서 조합하는 방식이며, 그간 가장 많이 사용되었던 기계 번역 방식이다. SMT system의 목표는 주어진 source sentence e가 주어졌을때 p(f | e)를 maximize하는 translation 를 찾는 것이다. p(f | e)는 p(e | f)p(f) 비례관계를 가지므로 다음과 같이 나타낼 수 있다.

 

 

 대부분의 SMT는 log p(f|e)를 최대화하는 방향으로 학습을 진행한다. wn는 nth weight을, fn(f,e)는 nth feature을 의미하며, logZ(e)는 normalization constant이다. 이 때 w는 BLEU score를 maximize하도록 optimize된다.

 

 논문에서는 SMT 중 phrase-based 방법을 사용하는데, 이때  source와 target sentence에서 matching하는 phrase들의 확률로 분해해서 구한다. 즉, RNN Encoder-Decoder를 기존 SMT 시스템의 phrase pair table에 점수를 매기는 부분에만 적용했다.

 

Experiments & Findings


Experiments setting

 

 실험에 있어서는 WMT'14의 English/French translation task를 사용했다. 해당 task는 영어를 프랑스어로 번역하는 작업으로 영어 phrase를 프랑스어 phrase로 번역하는 pair의 확률을 학습하도록 모델을 training하고, 이 모델을 baseline에 적용해 phrase pair table에 점수를 매기도록 진행했다. 빈도가 높은 상위 15,000 단어를 대상으로 진행했으며  BLEU score를 측정해 평가했다. 실험에서 사용된 RNN은 1000개의 GRU units를 사용했다. 사용한 모델들은 다음과 같다.

 

  • Baseline : SMT Moses
  • RNN : Baseline + RNN Encoder-Decoder
  • CSLM + RNN : CSLM(Continuous Space Language Models) + RNN Encoder-Decoder
  • CSLM + RNN + WP : 위 모델에서 자주나오지 않거나 unknown인 단어들에 대해 word penalty를 적용

Quantitive analysis

 

Result

 결과적으로 CSLM+RNN 모델이 가장 높은 BLEU score를 보였으며 RNN 역시 baseline보다 더 높은 score을 산출했다. 이것은 CSLM과 RNN이 서로 correlated 되지 않고 독립적으로 성능을 향상에 기여하고있다는 것을 의미한다. 추가적으로 word penalty를 적용했을때는 test score가 약간 감소했다.

 

 

Qualitative analysis

 

2D embedding

 

 다음으로 위에서 나타난 성능의 개선이 어떤 요소에서 기인하는지를 알기위해 번역된 문장들을 frequent source phrases, rare source phrases로 나누어 번역의 적절성을 보고자 했으며 추가적으로 학습된 2D embedding을 시각화했다.

 

 그 결과, 모델의 번역 결과가 실제와 문맥에 의한 번역과 매우 유사했다. 또한 embedding space를 관찰해보니 서로 유사한 문장 구조를 가지거나 비슷한 의미를 가진 phrase들 끼리 잘 모여있는 형태를 띄었다. 이것들을 종합해볼때 모델이 phrase들을 의미적, 문법적으로 잘 학습해서 표현하고있는 것을 확인할 수 있었다. 단점으로는 sentence의 길이가 긴 경우보다 짧은 경우의 score가 더 높고, 이에따른 편차가 크다는 문제점도 있다는 것을 지적했다.

 

 결론적으로, SMT system에 RNN의 접목은 매우 유의미하다는 것을 논문에서는 주장하고있다. 특히 논문에서는 제안하는 새로운 모델이 의미와 문법적인 내용을 담은 범용적인 phrase representation으로 활용할 수 있는 점을 강조했는데 실험 결과가 이에 부합하며, 이를 토대로 추후에는 RNN Encoder-Decoder 모델이 phrase table을 완전히 대체할 수있는 가능성을 제시한다.