티스토리 뷰

Sequence to sequence learning with neural networks

 

Sequence to Sequence Learning with Neural Networks

Deep Neural Networks (DNNs) are powerful models that have achieved excellent performance on difficult learning tasks. Although DNNs work well whenever large labeled training sets are available, they cannot be used to map sequences to sequences. In this pap

arxiv.org

 

Abstract

Deep Nural Networks(DNNs)는 학습이 어려운 task에서 훌륭한 성능을 갖고 있는 좋은 모델이다. DNN은 label의 갯수가 많은 training set에 대해서도 역시 좋은 성능을 보이지만, sequence to sequence에 대하여 사용 할 수 있는 없었다. 본 논문에서는 sequenec 구조 위에서 minimal assumption을 만드는 일반적인 end-to-end 접근 방식의 학습방법을 제시한다. 본 논문의 방법론에서는 고정된 차원의 벡터로 input sequence를 mapping시키기 위해 여러 층의 LSTM을 이용한다. 그리고 target sequence를 만들어내는 또 다른 깊은 층의 LSTM이 decoder로 동작한다. 본 논문의 주된 결론은 WMT-14 dataset에 대하여 Englinsh to French 기계번역을 하는 것이고, BLEU score 34.8점을 전체 데이터에 대하여 획득하였다. 추가적으로, LSTM은 긴 문장을 처리함에 있어서도 어려움을 갖지 않는 다는 것을 밝혔다. 비교해보면, Pharsed-based SMT(Statistical Machine Translation)은 같은 데이터 셋에 있어서 33.3점의 BLEU score을 획득했다. 앞서 말한 SMT system에서 생성된 1000 hypotheses을 LSTM을 이용하여 다시 측정하였을 때 36.5점의 BLEU 점수를 획득하였고 이는 이전의 state of the art에 근접한 점수이다. 또한 LSTM은 단어의 순서에 민감하게 학습하였고, 상대적으로 능수동에 대해서는 덜 예민하게 학습하였다. 마지막으로 모든 source sentence에 대하여 단어의 순서를 거꾸로 하였을 때 LSTM의 성능이 향상되는 것을 찾아냈다. 그 이유는 단어의 순서를 거꾸로 함으로 만들어지는 많은 short term dependency는 source 와 target sentence의 최적화 문제를 쉽게 만들었기 때문이다.

 

1. Introduction

Deep Neural Networks(DNNs)은 음성인식, visual object recognition과 같은 어려운 문제에서 좋은 성능을 보이는 훌륭한 기계학습 모델이다. DNNs이 강력한 이유는 적은 수의 단계에 대해 임의의 병렬 계산을 수행할 수 있기 때문이다.  DNN 강력함에 대한 놀라운 하나의 예시는 N-bit의 수를 qudratic size를 갖은 2개의 hidden layer만을 가지고 sorting할 수 있다는 것이다. neural network는 전통적인 통계와 관련이 있지만 DNNs는 아주 복잡한 계산을 학습한다. 게다가 큰 DNNs은 labeld training set에 대하여 언제든지 오차 역전파를 이용하여 학습 할 수 있다. 또한 parameter setting을 통하여 DNN은 좋은 결과를 달성 할 수 있게 되고, 지도학습의 오차역전파는 이러한 paremeter을 찾아서 문제를 해결 할 수 있게 해준다.

 

DNN의 유연함과 강력함에도 불구하고 DNN은 오직 고정된 차원의 벡터를 input과 target encoder로 갖는 문제에만 적용 할 수 있다. 이건 매우 치명적인 한계이다. 왜냐하면 많은 중요한 문제들은 선험적으로 알지 못 하는 길이로 표현되기 때문이다. 예를 들어 음성인식이나 기계번역은 길이가 고정되지 않은 sequential problem이다. 이와 같으 QA 이 question과 answer은 각각 sequence에 mapping될 수 있다. 따라서 sequence to sequence map 문제는 여러 도메인에서 다양하게 활용 될 수 있는 방법론이다.

 

Sequences pose는 고정된 차원의 input과 output을 가지고 있는 DNN에 매우 도전적인 문제이다. 본 논문에서는 일반적인 sequence to sequence 구조를 갖은 task에 적용 가능한 순전파 LSTM 구조를 보여주고 있다. 이 아이디어는 LSTM이 sequence input을 사용하여 크고 고정된 차원의 벡터 표현을 얻는 다는 것이다. 그리고 또 다른 LSTM은 sequence representation vecoter로부터 output을 뽑아낸다는 것이다. 다음으로, LSTM은 input이 sequence라는 조건만을 제외하면  recurrent neural network language model이다. 따라서 LSTM은 시간에 의존적인 긴 데이터의 학습이 가능하고, 이러한 LSTM의 능력은 입력과 해당 출력 사이의 상당한 시간적인 차이를 가지고 있는 application을 해결하는데 도움을 준다.

 

Neural Networks에서 Seqeuence to Sequence 학습 문제를 해결과 관련된 몇 가지 시도들이 있었다. 본 논문의 연구는 문장 전체를 vector로 mapping시키는 첫 시도를 한<Recurrent continuous translation models> 연구와 근접하고 <Learning phrase representations using RNN encoder-decoder for statistical machine translation> 연구와 매우 유사하다. <Generating sequences with recurrent neural networks>에서는 처음으로 새로운 attnetion mechanism을 소개하였고, attention mechanism은 Nural network이 input의 서로 다른 부분에 집중 할 수 있게 해주었고 이러한 아이디어는 <Neural machine translation by jointly learning to align and translate>에서 성공적으로 기계 번역에 정용 되었다. Connectionist Sequence Classfication은 input과 output사이의 일관적인 정렬을 필요로 하긴하지만 또 다른 신경망을 이용하는 유명한 sequence to sequence mapping 기술이다.

 

본 논문의 주된 결과는 다음과 같다. WMT14 English to French translation task에서 5개의 LSTM(각 380M parameters)를 이용하여 단순한 left to right beam-search 구조를 통해 34.81 BLEU 점수를 획득했다. 이것은 큰 신경망을 이용한 직역중 가장 좋은 결과를 얻은 것이다. 비교하자면, Statistical Machine Translation의 가장 좋은 BLEU Score는 이었다. 34.81점의 BLEU score는 80,000개의 어휘를 학습시킨 LSTM에서 얻어진 결과이다. 따라서 80,000개의 어휘를 벗어나는 번역에서는 점수에서 불이익을 얻을 수 있다. 이 결과는 아직 최적화가 완전하게 되지 않은 신경망 모델이 굉장히 최적화된 SMT 시스템보다 더 낫다는 것을 보여준다.

 

마지막으로 SMT에서 가장 점수가 높은 1000개의 리스트를 가지고 LSTM에서 실험을 진행하였다. 이때 36.5점의 BLEU점수가 나왔고 State of the art인 37.0에 거의 근접한 점수였다.

 

놀랍게도 LSTM은 매우 긴 문장에서 어려움을 겪지 않았다. 본 논문에서는 매우 긴 source 문장에 대하여 단어의 순서를 거꾸로 넣어주었다(target 문장의 순서는 바꾸지 않았다.). 이렇게 함으로 short term dependencies에 대하여 쉽게 최적화를 진행 할 수 있었다. 결과적으로 SGD(Stochastic Gradient Decent)로 긴 문장에 대하여 어려움 없이 LSTM을 학습 할 수 있다. 순서를 거꾸로 뒤집는 간단한 trick을 통하여 본 논문의 결과에 큰 기여를 하였다.

 

LSTM의 유용한 성질은 다양한 길이를 가지고 있는 input sentence를 고정된 차원의 vector 표현으로 mapping해 준다는 것이다. 번역은 source sentence의 구문의 경향을 가지고 있다는 측면에서, 번역의 목적은 LSTM을 이용해 그들의 의미를 포착는 문장 표현을 찾는 것이다. 문장표현을 찾으면서 유사한 의미의 문장은 서로 가까이 두고 그렇지 않으면 서로 거리를 멀리 떨어트린다.

 

2. The Model

The Recurrent Neural Network(RNN)은 연속적인 순전파 신경망의 자연스러운 형태이다. 주어진 input sequence (X1, X2 ...  Xt)에 대하여 표준적인 RNN은 Output sequence (Y1, Y2 ... Yr)을 다음과 같은 수식을 반복하며 계산한다.

 

standard RNN equation

RNN은 input과 output의 alignment가 주어지면 쉽게 sequence를 sequence로 mapping시킬 수 있다. 하지만 input과 output sequence가 일정한 규칙 없이 다양한 길이를 갖는 문제에 대해서는 분명하게 해당 방법을 적용시키기 어려워진다.

 

일반적인 길이의 sequence를 학습시키기 위한 간단한 전략은 input seqeuence를 RNN을 이용하여 고정된 크기의 벡터로 mapping하고, 또 다른 RNN을 이용하여 vector을 target sequence로 반드는 것이다.(이러한 전략은 <Learning phrase representations using RNN encoder-decoder for statistical machine translation>에서도 취하고 있다.) 이것은 RNN이 관련된 정보를 제공받기 때문네 동작할 수 있지만, long term dependencies 때문에 RNN을 학습시키기 어려워진다(gradient exploding & vanishing gradient problem). 하지만 LSTM은 long range temproal dependencise를 잘 학습 한다고 알려져 있다. 따라서 LSTM은 성공적인 셋팅이다.

 

LSTM의 목표는 input sequence에 대한 output sequence에 대한 조건부 확률을 평가하는 것이다. LSTM은 우선 input sequence에 대하여 고정된 차원의 벡터 v를 연산하고, 아래 수식으로 연산되는 LSTM-LM의 확률을 계산한다.

LSTM-LM equation

이 수식에 따라서 각각의 p(yt|v,y1,y2,...,yt-1) 분포는 각 단어에 대한 softmax로 표현된다. 본 연구에서는 <Generating sequences with recurrent neural networks>에서 주어진 LSTM공식을 이용한다. 이때 각 sentence의 끝에 특별한 <EOS> symbol이 필요하다는 것에 주의하자. 전반적인 개요는 위의 figure1과 같다.

 

본 논문의 실제 모델은 figure1과 중요하게 세 부분에서 다른 점을 가지고 있다. 첫 째, 본 논문에서는 서로 다른 2개의 LSTM을 사용한다: 하나는 input sequence를 위한 것이고 또 다른 하나는 output sequence를 위한 것이다. 다른 모델을 쓰는 이유는 작은 계산 비용의 증가로 parameters의 수를 증가시킬 수 있다. 그리고 이것은 multiple laguage pairs을 자연스럽게 만들어준다. 둘 째, 우리는 얕은 LSTM보다 깊은 층을 가지고 있는 LSTM이 좋은 성능을 보이는 것을 관찰해서, 4개의 Layer를 가지고 있는 LSTM을 이용하였다. 마지막으로 우리는 input sentence의 단어 순서를 거꾸로 넣었을 때 더 좋은 성능을 보이는 것을 관찰했다. 따라서 input의 순서를 거꾸로 넣어줌으로 성능을 향상시켰다.

 

3. Experiments

WMT'14 English to French Machine Translation Task로 본 논문에서 제안하는 모델을 실험하였다. 우선 SMT의 사용 없이 직접적으로 input 문장을 번역하였으며 그리고 또 다른 실험으로 SMT baseline의 n-best에 대하여 실험을 진행하였다.

 

3.1 Dataset details

본 논문의 실험에서는 WMT'14 English to French dataset을 이용하였다. 본 논문에서 제안하는 모델을 훈련시키고자 348M개의 French word와 304M English word로 구성된 12M개의 문장을 이용하였다.

일반적인 신경망 모델은 각 단어에 대한 vector 표현에 의존적이기 때문에, 우리는 두 언어의 모든 어휘를 고정시켰다. 영어에서 자주 사용되는 160,000개의 단어를 선정하였고, french에서는 자주 사용되는 80,000개의 단어를 선정하였다. 해당 단어에 포함되지 않은 단어는 <UNK> token으로 대체하였다.

 

3.2 Decoding and Rescoring

본 논문의 실험에서 가장 핵심적인 부분은 크고 깊은 LSTM을 많은 문장쌍에 대하여 훈련시키는 것이다. 우리는 다음과 같은 수식을 objective function으로 사용하여 log probability를 최대화 시키는 훈련을 진행하였다.

이때 S는 training set이고 T는 모델의 Translation의 결과이다. 훈련이 끝나고다면 다음과 같은 수식을 통하여 가장 가능성이 높은 번역을 찾아내었다. 본 논문의 실험에서는 left to right beam search decoder을 이용하여 가장 높은 확률의 번역을 찾아 내었다.

 각각의 timestep마다 beam의 가설들을 확장해나가고 각 가설들은 모든 단어들이 가능하다. 이렇게 되면 가설의 크기가 굉장히 증가하기 때문에 model의 log확률에서 가장 높은 B개를 제외하고는 나머지 가설은 무시하였다. <EOS> symbol을 만날 때까지 가설의 크기는 커지게 된다. 흥미로운 사실은 beam size가 1일때도 좋은 성능을 보였지만, beam size가 2일때 beam size의 증가에 따른 가장 큰 성능향상을 보였다.

 

본 논문에서는 baseline system에 의하여 만들이전 1000-best list에 대하여 rescoring을 진행하였다. 본 실험을 진행함에 있어서 LSTM에서 만들어지는 모든 가설에대한 log probability르 이용했의여 baseling system의 점수와 LSTM의 점수의 평균을 이용했다.

 

3.3 Reversing the Source Sentences

LSTM은 long term dependencies problem을 해결 할 수 있는 능력을 가지고 있지만, source sentence의 단어 순서를 거꾸로 입력하는 것이 더 좋은 성능을 보일 수 있음을 밝혀냈다. 이렇게 함으로, LSTM의 perplexity는 5.8에서 4.7로 감소했의며 BLEU scores는 25.9에서 30.6으로 증가하였다.

 

이러한 현상에 대하여 완벽하게 설명할 수는 없지만, 우리는 dateset으로부터 많은 short term dependencies가 전달된 영향이라고 생각된다. 일반적으로 source sentence와 target sentence가 결합할 때, source sentence의 각 단어는 target sentence와 거리가 먼 단어에 연결되기 때문에 큰 "minimal time lag" 문제가 발생한다. 단어의 순서를 거꾸로 입력하는 것이 source sentence와 target sentence의 관련된 단어끼리의 평균적인 거리에 변화를 주지는 못 하지만 source sentence의 처음 단어는 target languge의 처음 단어와 매우 밀접하기 때문에 minimal time lag는 크게 감소하게 된다. 또한 오차역전파의 과정에서 source language와 target language 사이의 "eastablishing communication"이 쉬워지게 된다. 이로써 전반적인 성능 향상이 이뤄지게 될 것이다.

 

처음에 우리는 source sentence의 순서를 거꾸로 하는 것이 target sentence의 앞 부분의 예측에만 더 좋은 결과를 내고 뒷 부분에는 더 안 좋은 결과를 낼것이라고 믿었다. 하지만 LSTM은 긴 문장에 대해서는 raw sentence보다 순서를 거꾸로한 sentence에서 더 잘 훈련되었다.

 

3.4 Training details

우리는 LSTM model이 상당히 쉽게 훈련된다는 것을 알아냈다. 우리는 1000개의 cell과 160,000개의 input 어휘, 80,000개의 output 어휘를 가지고 있는 1000차원의 word embedding을 가지고 있는 4layers LSTM을 이용하였다. 우리는 얕은 LSTM보다 깊은 LSTM이 더 좋은 성능을 보임을 알아냈고, 그 효과는 perplexity를 10% 가까이 줄일 수 있었다. output어휘 80,000개에 대한 navie softmax를 이용했다. 64M의 recurrent conntetion을 가지고 있는 380M개의 parameter의 LSTM을 최종적으로 사용하였다. training의 구체적인 스펙은 아래와 같다.

3.5 Paralleization

C++로 구현된 deep LSTM모델은 single GPU를 사용하였을 때 초당 1700단어 정도의 실행 속도를 보였다. 하지만 이는 우리의 작업에 있어서 너무 느렸고, GPU 8개 모델을 이용하여 병렬화 하였다. 각 LSTM layer는 서로 다른 GPU에서 실행되었고, 현재 작업이 끝나면 다음 GPU와 통신을 하였다. 본 논문의 LSTM은 4개의 layer를 가지고 있음으로 서로 다른 4개의 GPU에 할당되어 실행되게 되었다. 나머지 4개의 GPU는 softmax 병렬화에 사용되었다. 결과적으로 128mini-bath에 대하여 초당 6300개의 단어를 실행 할 수 있는 속도를 었었다. 약 10일동안 해당 모델을 훈련시켰다.

 

3.6 Experimental Results

번역의 질을 평가하기 위하여 BLEU score를 이용하였다. 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함