Seq2Seq learning

0Kim_jae·2023년 3월 27일
0

딥러닝

목록 보기
3/4

Seq2Seq (Sequence to Sequence)

Seq2Seq 모델이란 단어, 문장, 이미지 특징등을 시퀀스의 아이템으로 받아 새로운 시퀀스로 출력을 하는 모델 이다. 기계 번역, 문서요약, 이미지 캡셔닝 등 다양한 문제에서 사용되어지고 있다.

Seq2Seq 기본 아이디어

모델의 기본적인 구조는 encoder를 통하여 sequence를 입력받고 decoder를 통하여 새로운 sequence를 출력하게 된다. Decoder는 encoder를 통하여 계산된 context 벡터를 입력으로 받게 된다.

고전적 방식인 RNN을 사용한 Encoder와 Decoder

sequence들이 rnn의 입력으로 들어가면서 encoder의 마지막의 hidden state가 context vector가 되어 decoder의 입력으로 들어가게 된다. 이미지에서 h#3는 마지막 item의 영향을 많이 받게 된다.

하나의 고정된 벡터를 통하여 전체의 맥락을 나타내는 방법은 긴문장을 처리하는데 어려움을 발생하였고, 이를 해결하기 위해서 attention 방법이 생겨나게 되었다.

Attention in Seq2Seq Learning

위 이미지는 'Effective Approaches to Attention-based Neural Machine Translation' 논문에서 사용된 Global Attention에 관한 이미지 이다.

attention 모델과 기존의 seq2seq 모델의 차이점

  • encoder 가 decoder에게 넘겨주는 데이터의 양이 attention 모델에서 훨씬 더 많다. 기존 seq2seq 모델에서는 마지막 아이템의 hidden state 벡터를 넘겼던 반면 attention 모델에서는 모든 스텝의 hidden states를 decoder에게 넘겨준다.

  • attention 모델의 decoder가 출력을 생성할 때 하나의 추가 과정이 필요하다. decoder는 현재 스텝에서 관련 있는 입력을 찾아내기 위해 다음 과정을 실행한다.

    1. 각 스텝에서의 encoder hidden states는 이전의 맥락에 대한 정보도 포함하고 있지만 그 스텝에서의 입력 단어와 가장 관련이 있다.
    2. 각 스텝의 hidden state마다 점수를 부여한다.
    3. 부여된 점수들에 softmax를 취하고 이것을 각 타임 스텝의 hidden states에 곱해서 더하고, 이를 통해 높은 점수를 가진 hidden states는 더 큰 부분을 차지하게 되고 낮은 점수를 가진 hidden states는 작은 부분을 가지게 된다.

Decoder의 출력 생성 과정

  1. attention 모델에서의 decoder RNN 은 과 추가로 initial decoder hidden state을 입력받는다.
  2. decoder RNN 은 두 개의 입력을 가지고 새로운 hidden state벡터를 출력. (h4). RNN의 출력 자체는 사용되지 않고 버려집니다.
  3. Attention 과정: encoder의 hidden state 모음과 decoder 의 hidden state h4 벡터를 이용하여 그 스텝에 해당하는 context 벡터 (C4) 를 계산한다.
  4. h4 와 C4 를 하나의 벡터로 concatenate 한다.
  5. 이 벡터를 feedforward neural network 에 통과 시킨다.
  6. feedforward 신경망에서 나오는 출력은 현재 타임 스텝의 출력 단어를 나타낸다.
  7. 이 과정을 다음 타임 스텝에서도 반복한다.

출처:
Visualizing A Neural Machine Translation Model (Mechanics of Seq2seq Models With Attention) - https://nlpinkorean.github.io/visualizing-neural-machine-translation-mechanics-of-seq2seq-models-with-attention/

08-1: Seq2Seq Learning (고려대 산업경영공학부 DSBA 연구실) - https://www.youtube.com/watch?v=0lgWzluKq1k&list=PLetSlH8YjIfVzHuSXtG4jAC2zbEAErXWm&index=16

0개의 댓글