또치의 AI 공부정리/NLP 논문 정리

Sequence to Sequence Learningwith Neural Networks(Seq2Seq)

AI또치 2021. 12. 21. 00:24

이번 페이지에서 소개하고자 하는 논문은 Seq2Seq라고 불리는 논문이다.

 


Sutskever, I., Vinyals, O., & Le, Q. V. (2014). Sequence to sequence learning with neural networks. In Advances in neural information processing systems (pp. 3104-3112).


 

Abstract

- Deep Neural Networks라고 불리는 DNNs은 어려운 학습 task를 수월하게 수행해주는 강력한 모델이다. 비록, DNNs는 training sets가 레이블링 된 큰 뭉치여야 잘 수행되지만, sequence를 sequence에 매핑되는 task에는 이전까지 사용되지 않았다.

- 그래서 본 논문에서, 저자들은 end-to-end방식의 접근을 통해 sequence 학습을 수행하고자 하며, 이는 sequence 구조에 대한 최소한의 cost만으로 학습을 진행하고자 함이다.

- 구체적으로, LSTM을 사용하여 입력 sequence를 고정 차원의 벡터에 매핑하고, 다음의 다른 깊은 LSTM을 사용하여 대상 sequence를 디코딩한다. 

- LSTM은 어순에 민감하고 능동태와 수동태에 상대적으로 변하지 않는 구의 형태와 문장 표현을 학습한다. 뿐만 아니라, 저자들은 source문장에서 단어 순서를 바꾸는 것이 LSTM의 성능을 효율적으로 개선하는데 큰 역할을 했다고 정리한다.

 

1 Introduction

- DNNs는 매우 강력한 기계학습 방법론이다. 특히, 음성 인식, 물체 인식과 같은 task에서 뛰어난 성과를 보였다. 이렇게 강력할 수 있던 이유는 병렬 계산이 가능하기 때문이다. 예를 들어, 2차원의 크기를 갖는 hidden layer 2개만 사용하여 N개의 N비트 숫자를 정렬하는 기능을 수행할 수 있다. 그래서, 기존의 통계 모델과 관련하여 neural network들은 복잡한 계산이 가능했다. 또한, 지도 학습의 형태의 역전파 방법은 parameters를 찾고 문제를 해결하는데 도움이 되었다.

 

- 이러한 유연성과 강력함에도 불구하고, 많은 중요한 문제가 길이가 잘 알려지지 않은 sequence로 가장 잘 표현되기 때문에 상당히 제한적이라는 것이 문제였다. (e.g., 음성 인식, 기계 번역)

- 그렇기 때문에 질문 응답 또한 질문에 해당하는 단어 sequence를 답변 sequence에 매핑하는 것이 중요하다고 제안된다. 그래서, sequence를 sequence에 매핑하는 방법을 배우는 domain 독립적인 방법이 유용할 것이라는 것을 알 수 있다.

 

- DNNs는 input과 output의 고정적인 차원을 요구한다. 이러한 점을 주목하여 본 논문에서 제안한 방법은 LSTM을 사용한다. 하나의 LSTM은 input sequence를 읽게 되고, one timestep에 따라 고정된 큰 벡터 차원을 얻는다. 그리고 또 다른 LSTM을 이용하여 output sequence를 벡터로부터 추출한다. (Fig 1 참고)

Sutskever, I., Vinyals, O., & Le, Q. V. (2014). Sequence to sequence learning with neural networks. In Advances in neural information processing systems (pp. 3104-3112). Figure 1

 

- 두 번째 LSTM은 input sequence에 조건화되어있다는 것을 제외하면, 기본적인 RNNLM과 근본적으로 같다.  

- LSTM의 장시간 의존성을 가지고 성공적으로 학습이 가능한 능력이 제안하는 모델에 적용하기 위한 핵심 요소이다. 

 

- 주요 결과는 BLEU score 34.81을 기록하였다. 이를 위해 5개의 LSTM을 사용하고, left-to-right beam-search decoder를 사용하였을 때 해당 결과를 도출했다. 

- 놀랍게도, LSTM은 매우 긴 문장에 제한을 받지 않았다. 또한, source sentence에서 단어 순서를 역으로 바꾼 것이 (training과 test set에서 target sentence는 바꾸지 않음) 좋은 성능을 도출하는데 큰 역할을 한다고 한다. 

- 그리고 최적화 문제를 단순히 하기 위해 단기 존속성을 도입한다. 그 결과로 SGD가 LSTM이 긴 문장을 학습하는데 효율적이 었다고 한다. 

 

- LSTM의 효율적인 속성은 가변 길이의 입력 문장을 고정 차원 벡터 표현으로 매핑하는 방법을 학습함에 있다. 

- 번역 task의 objective는 LSTM이 문장의 의미를 capture 하도록 찾아내게 하는 것이며, 이는 비슷한 의미를 가진 문장의 경우 가까이에 있고 다른 의미를 가질 경우 먼 곳에 있다는 점에서 기인한다.

- 결과적으로, 정성적 평가를 통해 model이 어순을 인식하고, 능동태와 수동태에 불변함으로써 저자들의 주장을 뒷받침한다고 정리한다.

 

2 The model

- RNN은 feedforward neural network의 보편화 모델이다. input sequence (x1,..., xT)와 output sequence(y1,..., yT)에 따라 RNN이 계산된다.

Sutskever, I., Vinyals, O., & Le, Q. V. (2014). Sequence to sequence learning with neural networks. In Advances in neural information processing systems (pp. 3104-3112).

- RNN은 입, 출력의 정렬이 미리 알려질 때마다 sequence를 sequence에 쉽게 mapping 가능하다. 하지만, input과 output의 길이가 복잡하고 다르게 정렬되는 관계를 가질 때 제한점이 있다.

 

- sequence를 학습하기 위한 간단한 전략은 하나의 RNN을 사용하여 고정된 사이즈의 vector를 input sequence에 mapping 하는 것이다. 그리고, 또 다른 RNN에 target sequence를 위한 vector를 mapping 하는 것이다. 

- 하지만, 이러한 RNN을 훈련하는 데에 단점은, 장기 종속성 문제를 극복하지 못함에 한계가 있다.

 

- 그래서 LSTM을 사용하게 되는데, LSTM의 목적은 조건부 확률 p(y1,..., yT'|x1,..., xT)를 이용한다. 여기서 (x1,..., xT)는 input sequence이고, y1,..., yT'는 길이 T'를 갖는 output sequence에 일치한다. 

- LSTM은 input sequence(x1,..., xT)의 고정된 차원 표현 v를 계산하고, LSTM의 hidden state로 주어지게 된다. 그리고, y1,..., yT'의 확률을 계산한다. (1)

 

Sutskever, I., Vinyals, O., & Le, Q. V. (2014). Sequence to sequence learning with neural networks. In Advances in neural information processing systems (pp. 3104-3112). (1)

- 이 공식에서, p(yt|v, y1,..., yt-1_은 vocab에 있는 모든 단어들의 softmax값 표현을 갖는 확률 분포이다.

 

- 저자들은 문장의 끝에 special symbol인 <EOS>를 사용했으며, 이를 통해 모든 가능한 길이의 문장의 분포를 모델에 정의하도록 한다. 

- 여기서 저자들의 모델은 중요한 3가지 방법을 따른다.

1) 두 개의 다른 LSTM 모델을 사용한다. 하나는 input sequence를 위한 것, 또 다른 하나는 output sequence를 위한 것이다.

2) deep LSTMs는 shallow LSTMs보다 뛰어나기 때문에, LSTM은 4개의 layer를 사용하도록 한다.

3) input senetence의 단어들의 순서를 역으로 바꾸도록 한다. 이를 통해 문장에 mapping 될 때 각 문장들은 번역된 문장들과 더 가까운 거리를 갖게 된다. 이는 SGD를 더 쉽게 수행하도록 만들고, input과 output사이에서 "establish communication"을 하도록 한다. 

 

3 Experiments

3.1 Dataset details

- 348M 개의 프랑스어 단어와 304M 개의 영어 단어들로 구성된 12M 문장 subset을 이용하여 모델을 훈련한다.

- 전형적인 neural LM은 각 단어를 위한 벡터 표현에 의존한다. 그래서 저자들은 두 언어로 구성된 고정된 vocab을 사용한다. 

- source 언어로 구성된 가장 빈번한 단어 160,000개와 target 언어로 구성된 80,000개의 단어를 사용한다. 또한, out-of-vocab 단어는 UNK token을 사용한다.

 

3.2 Decoding and Rescoring

- 실험은 크고 깊은 LSTM을 많은 문장 쌍으로 훈련하는 것을 포함한다.

- 훈련은 encoder가 보낸 hidden state에 대해 실제 정답인 output sequence를 받아 log probability를 최대화함에 목적이 있다. (correct translation : T, source sentence : S, training set : S)

Sutskever, I., Vinyals, O., & Le, Q. V. (2014). Sequence to sequence learning with neural networks. In Advances in neural information processing systems (pp. 3104-3112).

- test는 encoder의 hidden state에서 시작한다. 시작 기호만 받아 예측 결과를 다음 input으로 보내는 작업을 통해 수행된다.

Sutskever, I., Vinyals, O., & Le, Q. V. (2014). Sequence to sequence learning with neural networks. In Advances in neural information processing systems (pp. 3104-3112). (2)

- 여기서 번역은 left-to-right beam search decoder를 이용한다. 


* beam search

- 본 논문에서 사용된 beam search는 왼쪽에서 오른쪽으로 이동하는 방식의 beam search decoder이며, 가장 가능성이 높은 번역을 검색하는 기법이다.

- beam search의 크기를 k라고 가정할 때, 출력을 k개만큼 하여 다양성을 주고, 마지막에 좋은 sequence가 무엇인지 누적곱을 통해 판단하는 방법이다.


- 각 time step마다 beam의 가설들을 확장해나가고, 각 가설들은 모든 단어가 가능하다. 또한, 가설의 크기가 증가됨에 따라 model의 log probability에서 가장 높은 B를 제외하고 나머지를 무시할 수 있다.

- 본 논문의 실험에서, beam size는 1일 때도 좋은 성능을 냈지만 2일 때도 size 크기의 증가에 따라 큰 성능 향상이 있었다고 한다.

 

- 또한, 1000개의 best lists를 통해 baseline system을 구축했으며, LSTM을 사용하여 rescore 했다.

- 각 가설에 따라, log probability를 계산하였으며 각 평균 score와 LSTM의 score를 구했다.

 

3.3 Reversing the Source Sentences

- 저자들은 LSTM의 source sentence를 뒤집었을 때, 더 잘 학습함을 발견했다. 물론 이 현상에 대해 정확하게 그리고 완벽히 설명해내긴 어렵지만, dataset의 짧은 시간 종속성이 원인이 되었을 것이라 믿는다고 한다.

- 즉, source sentence에서 뒤집어진 단어들에 의해 source와 target언어에서 일치하는 단어 사이의 평균 거리는 변하지 않았다. (이를 minimal time lag가 해결되었다고 표현한다.)

- 그러므로, source sentence와 target sentence사이에 역전파는 더 쉽게 establishing communication을 갖게 되었다.

 

3.4 Training details

- deep LSTMs를 4개의 layer층을 사용했으며, 1000개의 cell을 각 셀에 가지고 있다. 또한, 1000차원의 단어 임베딩이 이루어졌다.

- 각 output에 80,000개가 넘는 naive softmax를 적용했다. 결과적으로, 380M 개의 parameters를 갖는 LSTM이 구축되었다.

- 추가적인 detail은 다음과 같다.

1) LSTM의 parameters를 uniform distribution으로 초기화하기 위해 -0.08~0.08 사이의 값을 사용했다.

2) momentum 없이 SGD를 사용했다고 한다. lr은 0.7로 고정하고 5 epoch가 지나면 lr를 반으로 줄인다. 전체 학습 epoch는 7.5 epochs로 한정한다.

3) 128 sequences의 batch를 사용하였다.

4) gradient 폭발을 막기 위해 constraint를 주었다. 즉, norm이 임계값을 넘을 때, scaling을 통해 gradient가 조정된다. s=||g||_2 (g는 128로 나누어진 gradient이다. s > 5일 때, g=5g/s)

5) 모든 sentences를 minibatch내에서, roughly 하게 같은 길이로 맞추었다. (이는 minibatch의 낭비를 막고, 2배의 빠른 속도를 내게 했다.)

 

3.5 Parallelization

- 병렬화된 모델에 8-GPU를 사용하였다. LSTM의 4개 layers는 각각 다른 GPU를 사용하도록 했으며, 남은 4개의 GPU들은 softmax에 병렬화 계산하도록 사용되었다.

- 결과는 128 minibatch size에 대해, 초당 6,300개의 단어들을 수행 가능한 속도를 얻었다.

 

3.6 Experimental Results

- 본 논문의 최고 결과는 LSTM의 random 초기화와 random minibatch 순서에 의한 ensemble로 얻어졌다.

Sutskever, I., Vinyals, O., & Le, Q. V. (2014). Sequence to sequence learning with neural networks. In Advances in neural information processing systems (pp. 3104-3112). Table 1, 2

 

3.7 Performance on long sentences

- LSTM은 긴 문장에서 잘 수행됨을 확인했다.

 

3.8 Model Analysis

Sutskever, I., Vinyals, O., & Le, Q. V. (2014). Sequence to sequence learning with neural networks. In Advances in neural information processing systems (pp. 3104-3112). Figure 2

 

- 각 구들은 의미에 의해 군집화 되었으며, 표현들은 단어 순서에 민감하고 능동태와 수동태를 바꾼 것에는 둔감하다.

 

Sutskever, I., Vinyals, O., & Le, Q. V. (2014). Sequence to sequence learning with neural networks. In Advances in neural information processing systems (pp. 3104-3112). Table 3

 

Sutskever, I., Vinyals, O., & Le, Q. V. (2014). Sequence to sequence learning with neural networks. In Advances in neural information processing systems (pp. 3104-3112). Figure 3

- 문장 길이의 함수와 성능에 대해서는 35 미만 단어를 갖는 문장에는 저하가 없었으나, 긴 문장에 대해서는 약간의 성능 저하가 있었다.

- 희귀한 단어가 있는 문장에 대한 성능은, 더 희귀한 단어가 있는 문장에 대해 성능 저하가 있었다.

 

4 Related work

- 기존 연구에서 기계 번역 task에 적용된 NNLM은 디코더에 통합하고, 디코더의 정렬 정보를 사용하여 입력 문장에서 가장 유용한 단어를 NNLM에 제공한다.

- 이외에도, CNN을 사용하여 문장을 mapping 하려는 시도가 있었으나, 단어 순서를 고려하지 못했다.

- 혹은, 통계적 기계 번역 모델이 우선적으로 고려되었다.

- 한편, 본 연구에서는 역으로 source sentence들을 입력한 것이 앞선 연구 개선들을 다 포괄할 수 있을 만큼의 능력을 가지고 있음을 발견했다.

 

5 Conclusion

- 본 연구 모델은 기존의 통계적 기계 번역 모델보다도 제한되지 않은 뛰어난 성능을 보여주었다.

- 또한, source sentence의 단어들을 뒤집는 것만으로 좋은 성능을 낸 것이 놀라운 점을 시사한다.

- 표준 RNN모델은 source sentence를 뒤집었을 때, 쉬운 훈련이 가능할 것이라고 저자들은 주장한다.

- LSTM은 매우 긴 문장을 올바르게 번역하는 task에 대해 놀라울 만큼의 성능을 가지고 있다. 

 

- 하지만, reversed dataset으로 훈련된 LSTM은 긴 문장을 번역하는데 약간의 어려움이 있었다.