[논문 리뷰] Seq2Seq

장우솔·2022년 12월 2일
1

NLP

목록 보기
15/17

실제 구현 코드를 참고하며..! 동빈나님의 seq2seq code

1. 어떤 문제를 풀고자 했는가? (Abstract)

기존 DNN은 sequence와 sequence를 매핑하는데 사용할 수 없다는 한계점이 있다. 본 논문에서는 문장 구조에 대한 최소한의 가정만 하는 sequence learning에 관한 end-to-end approach를 제시한다.
입력 문장을 고정된 차원의 벡터로 매핑하기 위해 multilayered LSTM을 사용한다.
벡터를 target 문장으로 decode하기 위해 multilayered LSTM을 사용한다.
LSTM은 long sentences에 어려움이 없고, LSTM은 또한 어순에 민감하며 능동태와 수동태에 변함이 없다.
Translation task (WMT-14 dataset)에서 34.8 BLUE score를 기록하였다. 이와 반대로, phrase-base SMT system에서는 33.3으로 보다 낮은 score를 보였다.

입력 문장의 순서를 역순으로 바꾸어 학습하는 것이 성능이 훨씬 뛰어나다. 그렇게 함으로써 입력 문장과 target 문장 사이의 많은 short term dependencies를 도입하여 최적화 문제를 더 쉽게 만들었다.

2. 어떤 동기/상황/문제점에서 이 연구가 시작되었는가? (Introduction)

DNN(deep neural network)은 비선형구조와 병렬계산을 통하여 다양한 분야에서 SOTA를 달성했다. 하지만 input size가 fixed된다는 한계점이 존재하기 때문에 sequencial problem을 제대로 해결할 수 없다는 한계점이 존재했다. 본 논문에서는 2개의 LSTM (Long Short Term Memory)을 각각 Encoder, Decoder로 사용해 sequencial problem을 해결하고자 했다. 이를 통해 많은 성능 향상을 이루어냈으며, 특히나 long sentence에서 더 큰 상승 폭을 보였다. 이에 더해 단어를 역순으로 배치하는 방식으로도 성능을 향상시켰다.

  • LSTM 아키텍처

image

LSTM은 긴 시퀀스에 영향을 받지 않는다. 학습과 테스트 시에 입력 시퀀스의 순서를 뒤바꾸었기 때문이다.
또하나의 LSTM 장점은 가변길이의 입력 시퀀스를 고정된 크기의 벡터로 매핑하는 방법을 학습한다. 번역이 원본 문장의 패러프레이즈인 경향이 있다는 점을 감안할 때, 번역 목표는 LSTM이 의미를 정확히 담아내는 시퀀스 표현을 찾는 데에 있다.

3. 관련된 사전 연구와 무엇이 다른가?

이전 RNN 방법과 차이
1. 입력 시퀀스와 출력 시퀀스에 대한 2개의 LSTM을 사용한다.
→ 사소한 cost 정도의 model parameter 수가 증가한다.
→ 동시에 다양한 언어 문장들에 대한 LSTM을 학습시킬 수 있다.

  1. 4-layered LSTM을 사용
    얕은 LSTM보다 깊은 LSTM이 상당히 우수한 성능을 보인다.

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

4. 이 연구의 접근 방법은 무엇인가? (Model)

seq2seq는 크게 인코더와 디코더라는 두 개의 모듈로 구성된다.

인코더

인코더는 입력 문장의 모든 단어들을 순차적으로 입력받은 뒤에 마지막에 이 모든 단어 정보들을 압축해서 하나의 벡터로 만드는데, 이를 컨텍스트 벡터(context vector)라고 한다. 입력 문장의 정보가 하나의 컨텍스트 벡터로 모두 압축되면 인코더는 컨텍스트 벡터를 디코더로 전송한다. 디코더는 컨텍스트 벡터를 받아서 번역된 단어를 한 개씩 순차적으로 출력한다.

디코더

디코더는 기본적으로 RNNLM(RNN Language Model)이다.
디코더는 초기 입력으로 문장의 시작을 의미하는 심볼 가 들어갑니다. 디코더는 가 입력되면, 다음에 등장할 확률이 높은 단어를 예측한다. 디코더는 이런 식으로 기본적으로 다음에 올 단어를 예측하고, 그 예측한 단어를 다음 시점의 RNN 셀의 입력으로 넣는 행위를 반복한다. 이 행위는 문장의 끝을 의미하는 심볼인 가 다음 단어로 예측될 때까지 반복한다.

  • seqtoseq train 과정
    훈련 과정에서는 디코더에게 인코더가 보낸 컨텍스트 벡터와 실제 정답인 상황인 je suis étudiant를 입력 받았을 때, je suis étudiant 가 나와야 된다고 정답을 알려주면서 훈련한다.
  • seqtoseq test 과정
    테스트 과정에서는 앞서 설명한 과정과 같이 디코더는 오직 컨텍스트 벡터와 만을 입력으로 받은 후에 다음에 올 단어를 예측하고, 그 단어를 다음 시점의 RNN 셀의 입력으로 넣는 행위를 반복한다.

5. 실험은 어떻게 이루어졌는가? (Experiments)

프랑스어 348억개, 영어 340억개 단어로 구성된 12M (1,200만) 문장들로 모델을 훈련함.
8-GPU를 사용하여 학습 시간은 10일이 소요되었다.

  • 목적함수
    image

    T : a correct Translation, S : source sentence
    log probability를 높이도록 학습시킨다.

가장 확률이 높은 translation을 찾는데 간단한 left-to-right beam search decoder를 사용한다.

Beam search이란?
Greedy Decoding 방식은 단순하게 해당 시점에서 가장 확률이 높은 후보를 선택하는 것이다. 예를 들어, 특정 시점 t에서의 확률분포 상에서 상위 1등과 2등의 확률 차이가 작든 크든, 무조건 가장 큰 1등에게만 관심이 있을 뿐이다. 이러한 예측에서 한 번이라도 틀린 예측이 나오게 된다면, 이전 예측이 중요한 디코딩 방식에서는 치명적인 문제가 된다.
Beam Search는 Greedy Decoding 방식의 단점을 보완하기 위해 나온 방식이다. 빔서치는 해당 시점에서 유망한 빔의 개수만큼 골라서 진행하는 방식이다.
start 토큰이 입력되면 이를 바탕으로 나온 예측값의 확률 분포 중 가장 높은 확률 K개를 고른다. 이제부터 이 K개의 갈래는 각각 하나의 빔이 된다. K개의 빔에서 각각 다음 예측값의 확률 분포 중 가장 높은 K개를 고른다. K개의 빔에서 다음 예측값의 확률 분포 중 가장 높은 K개(자식 노드)를 고른다. 총 K^2개의 자식 노드 중 누적확률 순으로 상위 K개를 뽑는다. 를 만난 빔이 K개가 될때까지 위의 과정을 반복한다.
즉, 모든 단어에 대한 확률을 구한 후 상위 k개만 남기고 나머지는 고려대상에서 제외한다. 첫 번째 step에서 이렇게 뽑힌 k개의 단어를 w_21, w_22, ..., w_2k라 하자.
그 다음에는 P(w_3|w_1, w_21), P(w_3|w_1, w_22), ... P(w_3|w_1, w_2k)를 모든 단어 w_3에 대해서 구한 뒤 상위 K개의 단어만 후보 단어로 고려하는 것이다. 이러한 과정 반복하면 최종적으로 k개의 sequence가 나오는데, 이중 최대 확률값 가진 sequence를 최종으로 선택한다.

입력 시퀀스의 순서를 바꿈으로써, 혼잡도는 낮아지고(5.8 → 4.7), BLEU score는 증가하였다(25.9 → 30.6).

Why? dataset의 많은 short term dependencies가 도입되었기 때문. 직관적으로 Gradient의 전파가 원활해지기 때문이라고 볼 수 있다.

6. 무엇을 알아냈으며, 한계점은 무엇인가? (Discussion)

  • 번역 task에서 비록 이전 SOTA 보다는 (17<->36.5)0.5 score 뒤처지기는 하지만 간단한 LSTM이 최적화된 SMT system을 뛰어넘었다는 점은 의미있는 발견이다.
  • LSTM은 긴 시퀀스에도 잘 동작한다. 시퀀스 길이가 35까지는 BLEU score가 상승되지만, 그 이후로는 저하된다.
  • 등장 빈도가 높은 단어를 가진 문장일 수록 BLEU score가 높게 측정되었다.

한계

첫째, 하나의 고정된 크기의 벡터에 모든 정보를 압축하려고 하니까 정보 손실이 발생한다.
둘째, RNN의 고질적인 문제인 기울기 소실(vanishing gradient) 문제가 존재한다.

7. 결론 및 요약 (Conclusion)

본 연구에서는 어휘가 제한되고 문제 구조에 대한 가정이 거의 없는 대규모 심층 LSTM이 대규모 MT 작업에서 어휘가 무제한인 표준 SMT 기반 시스템을 능가할 수 있음을 보여주었다. MT에 대한 간단한 LSTM 기반 접근 방식의 성공은 많은충분한 훈련 데이터를 가지고 있다면 다른 시퀀스 학습 문제를 풀어낼 수 있음을 시사한다.
가장 중요한 것은 단순하고 단순하며 상대적으로 최적화되지 않은 접근 방식이 SMT 시스템을 능가할 수 있다는 것을 입증했기 때문에 추가 작업을 통해 번역 정확도가 더욱 높아질 수 있다는 것이다. 이러한 결과는 우리의 접근 방식이 시퀀스 문제에 대한 다른 도전적인 시퀀스에서 성공할 가능성이 있음을 시사한다.

profile
공부한 것들을 정리하는 블로그

0개의 댓글