[NLP] Sequence to Sequence Learning with Neural Networks

임형빈·2024년 1월 24일
0

PaperReview

목록 보기
3/12

서로 다른 2개의 LSTM을 각각 인코더와 디코더로 사용했다.
입력 시퀀스를 인코더에 입력할 때, 단어들의 순서를 반전시켜 입력해 성능 향상을 보였다.

Abstract

DNN은 데이터의 양질이 확보된 large labeled training sets일 때 잘 작동하지만, 시퀀스를 시퀀스로 매핑하는 데 사용할 수 없다.
본 논문에서는 시퀀스 구조에 대한 최소한의 가정만으로 구성한, 일반적인 end to end 시퀀스 학습 방식을 제공한다.

입력 시퀀스를 고정 차원의 벡터로 매핑하기 위해 LSTM을 사용하고 다른 LSTM을 벡터에서 타켓 시퀀스로 디코딩하기 위해 사용했다.(두개의 LSTM 사용)
WMT’k 14 dataset에서 영어를 프랑스어로 번역하는 테스크에서 BLEU score 34.8 기록, 이때 out of voice words에 대해선 패널티를 부여 받았다.
BLUE score는 자연어처리에서의 평가방식 중 하나로, generated sentence의 단어가 reference sentence에 포함되는 정도를 나타낸다.

동일한 데이터셋에서 구문기반의 SMT System은 33.3의 점수이다.
이전 SMT System에서 생성된 1000개의 hypotheses에 대해 LSTM으로 rerank하면 36.5로 성능 향상을 보였다.
LSTM은 또한 단어 순서에 민감하며 능동태와 수동태에 상대적으로 invarinat한 문장 및 구문 표현을 학습했다. 따라서 저자들은 LSTM을 사용한다.

마지막으로 소스 문장(인풋 시퀀스)의 순서를 반대로 입력했을 때 성능이 크게 향상되었다.
소스문장과 타겟 문장에 대한 단기 의존성 문제를 극복한 것으로 보인다.
(여러 리뷰들을 참고했을 때, 초기 입력 토큰이 타겟 문장 생성에 영향력이 적은 장기 의존성을 순서 반전으로 해결한 것으로 보인다는 의견도 있고, 저자들은 밑에서 소개하는 단기 의존성의 덕이라고 표현한다.)

1 Introduction

DNN은 무수한 장점이 있지만, 인풋과 타겟을 고정된 차원의 벡터로 스무스하게 인코딩 될 때만 적용이 된다는 문제점이 있다.
사전에 길이가 알려지지 않은 시퀀스에서 큰 한계점을 나타낸다.
음성 인식과 기계번역, question answering에서, 따라서 seq2seq이 유용하게 사용될 것이다.

본 논문에서는 LSTM을 이용, 시퀀스를 순차적으로 timestep 순서로 입력해 고정된 차원의 벡터표현을 얻고, 다른 LSTM을 이용해 아웃풋 시퀀스를 추출하는 방식을 사용했다.
장기 의존성을 가진 데이터에서 성공적으로 학습할 수 있다는 능력 덕분에, 따라서 위 구조인 인풋과 아웃풋에 상응하는 긴 시간에 적용될 수 있기 때문에 LSTM을 사용했다.

WMT’14 English to French translation task에서, 5개의 깊은 LSTM의 앙상블에서 번역을 추출해 간단한 left-to-right, beam-search decoder를 사용했다.
Beam search는 정답 후보군을 하나만 선택하는 것이 아닌, 여러개의 후보군을 선택해 그 중 최선의 타겟을 고르는 서치 방식이다.

동일한 작업에서 공개된 다른 SMT 시스템의 1000-best lists로 LSTM을 rerank했을 때 3.2 스코어 향상을 보였다.

소스 문장의 순서를 반전시켰지만 타겟 문장은 반전시키지 않음으로써 긴 문장에서 수행 능력이 좋았다.
최적화 문제를 단순화시키는 단기 의존성을 도입했다.

가변적인 인풋으로 의미를 찾는 번역 문제에서, 가변적인 인풋 문장을 고정된 차원의 벡터로 변환하는 LSTM의 사용이 적절했다고 한다.
또한 LSTM은 능동태와 수동태에 상대적으로 견고했다고 한다.

2 The model

두개의 RNN을 사용하는 방식도 있지만, 장기 의존성 문제가 있었다.
또한 RNN은 인풋과 아웃풋의 길이가 동일하고, LSTM은 인풋과 아웃풋의 크기가 다를 수 있다는 특징이 있다.

기존의 LSTM에서 본 논문의 차이점은 :

  • 두개의 다른 LSTM을 사용했는데 하나는 입력 시퀀스, 다른 하나는 출력 시퀀스를 위한 것이다.
    두개의 LSTM으로 파라미터 수를 증가시켜 (계산량의 증가는 크지 않음) 여러 언어쌍에 대해 학습이 가능하도록 했다.

  • 4 layer를 가진 깊은 LSTM을 사용했다.

  • 입력 문장의 단어 순서를 반전시켰다.
    instead of mapping the sentence a,b,c to the sentence α,β,γ, the LSTM is asked to map c,b,a to α,β,γ, where α, β, γ is the translation of a, b, c. This way, a is in close proximity to α, b is fairly close to β, and so on, a fact that makes it easy for SGD to “establish communication” between the input and the output.
    단기 의존성이 이것을 의미하는 것으로 보인다.

Seq2Seq의 구조는 위와 같다.
인코더 LSTM에서 timestep을 거치며 h4를 출력하고, 이것이 디코더 LSTM에 전달되는 고정된 크기의 context vector가 된다.
디코더에 context vector가 입력되어, 또 timestep을 거쳐 아웃풋 시퀀스를 만든다.
인코더 LSTM과 디코더 LSTM은 파라미터를 공유하는 것이 아닌 서로 다른 파라미터를 가지며, 이것으로 모델의 복잡도를 얻어 성능 향상을 이뤘다.

3 Experiments

데이터셋에 대해 직접 번역을 시도하고, SMT system을 사용해 best list를 추출해 이것으로 rerank하는 두가지 방식을 사용했다.

3.1 Dataset details

Log probability를 최대화하도록 학습했다.

beam search로 B개의 후보군을 추출하고, 각각에 대해 timestep을 적용해보고, 최종적으로 EOS가 추가된 가설(로그 확률이 높은)에 대해서 채택했다.

3.3 Reversing the Source Sentences

입력 문장을 반전시켰을 때가 그렇지 않을 때보다 성능이 좋았다고 한다.
이에 대한 완벽한 설명은 없지만 단기 의존성을 도입했기 때문이라고 판단한다.
일반적으로 소스 문장과 타겟 문장을 연결할 때 연결되는 단어들은 멀리 떨어져 있는데, 반전시킴으로써 단어간 평균 거리는 변화하지 않지만 minimal time lag를 줄임으로써 역전파에서 establishing communication이 더 쉬워졌다고 한다.

3.4 Training details

3.5 Parallelization

4 layer LSTM의 각 레이어가 하나씩 gpu쓰고 4개는 softmax 병렬화 하는데 사용했다고 한다.
총 10일 소요되었다고 한다.

3.6 Experimental Results

5개의 소스문장을 반전시켜 입력한 LSTM, beam size 12일 때 최상의 결과를 얻었다.
score가 33.27과 34.81일 때의 구조는 같지만 랜덤 초기화와 미니배치의 순서를 다르게 해서 최종 결과를 얻었다고 한다.
Best WMT 14 result와 비교했을 때, 성능이 근소하게 낮다.
하지만 양질의 데이터셋에서 학습된 구문 기반의 SMT system과 비교했을 때 out-of-vocabulary의 한계에도 비슷한 성능을 낸 pure neural translation system이라는 것에 의미가 있다.

3.7 Performance on long sentences

긴 문장에서도 잘 수행되었다는 결과를 보여준다.

3.8 Model Analysis

위 PCA 결과를 보면, 단어 순서에 민감하며 능동태와 수동태에서도 견고하다는 특성을 보인다.

문장길이가 35단어 미만일 때는 성능이 계속 향상한다.
가장 길 때는 좀 하락했다.
오른쪽 그래프는 희귀 단어를 많이 포함하는 문장에서의 성능을 나타낸다.

5 Conclusion

한정된 어휘를 가지며, 문제 구조에 최소한의 가정만을 사용해, 깊은 LSTM의 성능을 보임.
충분한 데이터를 가지면 더 잘 수행할 수 있을 것이다.
입력 문장의 순서를 바꿈으로 단기 의존성을 도입한 것의 중요성을 느꼈다고 한다.
RNN을 실험해보진 않았지만 RNN에서도 의미 있을 것이라 한다.

refrence
https://brunch.co.kr/@jean/5

profile
Wannabe AI Engineer

0개의 댓글

관련 채용 정보