본문 바로가기

Data Science/ML & DL

[논문 리뷰] Sequence to Sequence Learning with Neural Networks(Seq2Seq) (2014)

NLP논문 Sequence to Sequence Learning with Neural Networks 논문을 읽고 정리한 내용입니다

 

 

 

 

1. Introduction

  • 심층 신경망(DNNs)은 음성 인식 및 시각 객체 인식과 같은 어려운 문제에 대한 탁월한 성능을 달성하는 매우 강력한 기계 학습 모델
    • 적은 수의 단계로 임의의 병렬 계산을 수행
    • 예) 2개의 2차 크기의 숨겨진 레이어만 사용하여 N개의 N비트 숫자를 정렬할 수 있는 능력
    • 신경망은 기존의 통계 모델과 관련이 있지만 복잡한 계산을 학습
    • 벨이 지정된 교육 세트가 네트워크의 매개 변수를 명시하는 데 충분한 정보를 가지고 있을 때 큰 DNNs는 지도된 역전파를 사용하여 훈련
    • 문제 : DNNs는 입력 및 대상이 고정 차원의 벡터로 합리적으로 인코딩 될 수있는 문제에만 적용 ( input size가 fixed된다는 한계점 sequencial problem을 제대로 해결할 수 없다 )
  • 해결 : 논문에서는 2개의 LSTM (Long Short Term Memory)을 각각 Encoder, Decoder로 사용해 sequencial problem을 해결
    • 아이디어는 입력 시퀀스를 한 번에 한 타임 스텝씩 읽기 위해 하나의 LSTM을 사용하여 대형 고정 차원 벡터 표현을 얻은 다음 다른 LSTM을 사용하여 그 벡터에서 출력 시퀀스를 추출
    • 두 번째 LSTM은 본질적으로 입력 시퀀스에 종속된 반복 신경망 언어 모델
      • LSTM의 장기적인 시간 종속성에 성공적으로 학습 할 수있는 능력 때문에 이 응용 프로그램에 대한 자연스러운 선택으로 만드는 것
  • 주요 결과
    • WMT'14 영어에서 프랑스어로 번역 작업에서 우리는 깊은 LSTM 5 개의 앙상블에서 직접 번역을 추출하여 간단한 좌에서 우로 빔 검색 디코더를 사용하여 34.81의 BLEU 점수 => 대규모 신경망을 사용한 직접 번역의 최고 결과 ( SMT 기준선의 BLEU 점수는 33.30 )
    • LSTM을 사용하여 동일한 작업의 SMT 기준선의 공개적으로 사용 가능한 1000 최상의 목록 점수 36.5의 BLEU 점수(3.2 BLEU 점수로 개선)
    • SGD는 긴 문장에 문제가 없는 LSTM을 학습
  • long sentence/ 단어를 역순으로 배치하는 방식에서 더 큰 성능 상승 폭을 보임
  • LSTM을 활용한 효율적인 Seq2Seq 기계 번역 아키텍쳐를 제안
  • 통계적 언어 모델에서 딥러닝 기반의 모델로 전환의 기반이 된 논문

 

 

2. Model

 

 

1) Seq2Seq 모델 구조

 

- 보라색 : 가장 최근 시점 hidden state 값이 들어감 -> 디코더로 들어가기전 Context vector 그 자체가 된다

 

문제 : RNN은 기본적으로 sequencial problem에 매우 적절한 model 그러나 input size와 output size가 다른 경우에 대해서는 좋은 성능을 보일 수 없었음

해결 : 논문에서 제시하는 model은 Encoder LSTM에서 하나의 context vector를 생성 + Decoder LSTM에서 context vector를 이용해 output sentence를 생성하는 방식으로 RNN의 한계점을 극복하고자 함

 

  • input과 output sentence 간의 mapping을 하는 것이 아닌, input sentence를 통해 encoder에서 context vector를 생성하고, 이를 활용해 decoder에서 output sentence를 만들어냄
  • Encoder LSTM의 output인 context vector는 Encoder의 마지막 layer에서 나온 output이다. 이를 Decoder LSTM의 첫번째 layer의 input으로 넣게 된다.
  • 여기서 주목할만한 점은 input sentence에서의 word order를 reverse해 사용했다는 것이다. 또한 (End of Sentence) token을 각 sentence의 끝에 추가해 variable length sentence를 다뤘다.

 

2) 모델 원리 

  1. RNN은 입력 시퀀스에서 출력 시퀀스를 계산하는 데 사용되는데, 입력과 출력의 길이가 다르고 복잡한 관계를 가지는 문제에는 적용하기 어렵습니다.
  2. LSTM은 장기적인 시간 종속성을 학습할 수 있기 때문에 이러한 상황에서 성공할 수 있습니다.
  3. LSTM은 입력 시퀀스의 고정 차원 표현을 계산하고, 이를 사용하여 출력 시퀀스의 확률을 계산합니다.
  4. 모델은 입력 및 출력 시퀀스에 대해 각각 다른 LSTM을 사용하며, LSTM의 층 수를 늘리고 입력 문장의 단어 순서를 반대로 변경합니다.
  5. 단순한 데이터 변환으로 입력과 출력 간의 통신을 용이하게 만들어 성능을 향상시킵니다.

 

 

 

 

 

3. Experiments

WMT’14의 English to French dataset으로 실험을 진행했다. source / target language 각각에 fixed size vocabulary를 사용했다 (source: 160,000 / target: 80,000). OOV는 “UNK” token으로 대체된다. long sequence에서는 source sentence를 reverse시킨 경우가 특히나 성능이 더 좋았다. 구체적인 수치로 BLEU score가 25.9에서 30.6으로 증가했다.

 

 

  1. 케이스 블루 점수를 사용하여 번역 품질을 평가
  2. LSTM 앙상블을 통해 우수한 결과를 얻었으며, 초기화와 미니 배치의 무작위 순서에 차이를 
  3. 구문 기반 SMT 기준선을 처음으로 능가하는 순수한 신경 기반 번역 시스템의 성과를 달성함.

 

 

 

 

 

 

 

[ 참고자료 ]

https://cpm0722.github.io/paper-review/sequence-to-sequence-learning-with-neural-networks

 

[NLP 논문 리뷰] Sequence To Sequence Learning With Neural Networks (Seq2Seq)

Paper Info

cpm0722.github.io

https://wikidocs.net/24996

 

14-01 시퀀스-투-시퀀스(Sequence-to-Sequence, seq2seq)

이번 실습은 케라스 함수형 API에 대한 이해가 필요합니다. 함수형 API(functional API, https://wikidocs.net/38861 )에 대해서 우선 숙지 후…

wikidocs.net

https://blog.naver.com/sooftware/221784419691

 

[Sooftware 머신러닝] Seq2seq (Sequence to sequence)

Machine Learning: Seq2seq (Sequence to sequence) "Sooftware" 이 글은 제가 공부하여 이...

blog.naver.com