CS log

seq2seq learning with neural networks 본문

AI/NLP

seq2seq learning with neural networks

sj.cath 2024. 9. 12. 01:34

Abstract

problem

기존 dnn의 한계점 : mapping sequences to sequences 하는 데에 사용할 수 없다.

 

solution

general end-to-end approach to sequence learning

1. multilayered Long Short - Term Memory : 입력 문장을 고정된 차원의 벡터로 매핑

2. deep LSTM : 벡터를 타켓 문장으로 decode

 

result

  • Translation task (WMT-14 dataset)에서 34.8 BLUE score를 기록하였다. 이와 반대로, phrase-base SMT system에서는 33.3으로 보다 낮은 score를 보였다.
  • lstm은 긴 문장에 대해 어려움 X 능동태 수동태에 변함 X 순서에 민감
  • 입력 문장의 순서를 역순으로 하는 것이 lstm 성능을 크게 향상시킴! 입력 문장과 타켓 문장 사이에 shrot term dependencies를 도입하여 최적화를 더 쉽게 만들었기 때문

 

1. Introduction

deep neural networks 

  • achieve excellent performance on difficult problems  ex) speech recognition, visual 인식
  • powerful ... step 에서의 parallel computation, N*N bit 수 계산 
  • labeled training set이 network 매개변수를 지정하는데 충분하다면, supervised backpropagation 학습 가능

그러나 DNN은 고정된 크기의 차원의 벡터 input과 target에 대해서만 encode 가능. 이는 문장의 길이를 미리 알지 못하는 경우 적용할 수 없다는 심각한 한계점이라고 할 수 있다. ➡️ domain-independent하게 문장과 문장을 map하는 방법이 필요 == lstm !!

 

 

모델 수행 과정

1 LSTM : input 시퀀스를 encode하기 위해 사용 → large fixed-dimensional vector representation을 얻음→ 1 LSTM : output 시퀀스를 decode하기 위해 사용

  • 두번째 lstmd은 rnn이어야 함. 
  • long range temporal dependencies , 충분한 time lag between inputs and outputs

모델 수행 결과

  • 34.82 BLEU score를 기록했다. with 80k words & simple left-to-right beam-search decoder. 따라서 보통의 lstm 구조(unoptimized small-vocab nn)가 최적화된 smt system보다 더 뛰어나다는 사실을 알 수 있다.
  • 마침내, 같은 task에 대해 공개된 최적화된 SMT baseline으로 재점수를 매기기 위해 LSTM을 사용하였는데 그 결과 이전보다 3.2 score가 향상된 36.5 BLEU score를 얻을 수 있었다. 
  • LSTM은 긴 시퀀스에 영향을 받지 않는다. 학습과 테스트 시에 입력 시퀀스의 순서를 뒤바꾸었기 때문이다. + 최적화 문제를 풀기 위해 서로 짧은 시간 동안만 관련 있는 의존 관계를 만들었더니, 문제 해결이 더 쉬워졌다.
  • 또하나의 LSTM 장점은 가변길이의 입력 시퀀스를 고정된 크기의 벡터로 변화하는 걸 학습한다. 번역 task에서 paraphrasing되는 걸 고려해볼때 이 task의 목표는 LSTM이 의미를 정확히 담아내는 시퀀스 표현을 찾는 데에 있다. (단어 순서, 능수동 표현 구현)

 

2. The model

RNN

  • natural generalization of feedforward neural networks to sequence
  • 미리 input 과 output 사이 alignment를 알고 있으면 문장끼리 mapping 쉬움
  • 그러나 input과 output 문장의 길이가 다르거나, 복잡한 관계에 있으면 mapping 어려움

1. 입력 시퀀스와 출력 시퀀스에 대한 2개의 lstm 을 사용

사소한 cost 정도의 model parameter 수가 증가

동시에 다양한 언어 문장들에 대한 lstm을 학습시킬 수가 있다

 

2. 4-layered lstm을 사용

얕은 lstm보다 깊은 lstm이 꽤 우수한 성능을 보임

 

3. 입력 문장의 단어 순서를 바꾸는 것이 엄청난 영향을 끼치는 점을 발견

 

본 논문에서 제시하는 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를 다뤘다.

 

3. experiments

1) 데이터셋 : 프랑스어 348억개, 영어 340억개 단어로 구성된 12M (1,200만) 문장들로 모델을 훈련함

2) decoding and rescoring

목적 함수

log 확률을 최대화하도록 학습, T : 올바른 번역, S : 소스 문장

 

 

  • 확장된 가설 중 가장 가능성이 있는 번역이 log 확률에 따라 선택되며, 나머지는 버려진다. 
  • "<EOS>" 토큰 (End Of Sentence)이 번역에 더해지면 빔에서 제거 후 완성된 번역 문장에 더해진다.
  • 디코더는 거의 정확한 반면에 시행하기에 간단하다.
  • 빔 사이즈 1일 때 성과가 좋았으며 빔 사이즈 2는 빔 서치의 이점을 거의 다 제공한다. 

 

  • LSTM을 사용해 베이스라인의 1000개의 목록을 rescoring 했다.   
    • 모든 가설의 log 확률을 계산한 후 베이스라인의 점수와 LSTM의 점수의 평균을 취했다
  • 문제 : WMT' 14 영어 -> 불어 기계번역
  • 데이터셋 :  WMT’ 14 영어-불어 데이터셋
  • 16만 개의 빈도 높은 단어(소스 언어)와 8만개의 빈도높은 단어(타겟 언어)를 사용해 단어 사전 구성
  • 문제 : WMT' 14 영어 -> 불어 기계번역
  • 데이터셋 :  WMT’ 14 영어-불어 데이터셋
  • 16만 개의 빈도 높은 단어(소스 언어)와 8만개의 빈도높은 단어(타겟 언어)를 사용해 단

'AI > NLP' 카테고리의 다른 글

Speech-to-text API  (0) 2024.09.23
Intro to ML: Language Processing  (0) 2024.09.23
GPT-1  (1) 2024.09.18
GAN 논문 리뷰  (0) 2024.08.30
Attention is all you need - Transformer  (0) 2024.08.14