Seq2seq

J. Hwang·2024년 8월 14일
0

RNN을 사용해 번역을 한다고 가정해보자. RNN은 1:1 관계를 가정하는데, 문장의 길이는 언어에 따라 다르고 어순도 다르기 때문에 문제가 많다.

Seq2seq (Sequence-to-Sequence model)

seq2seq는 시계열 데이터를 처리하는 모델링 방법 중 하나이다. 이해를 돕기 위해 언어 번역 (machine translation) 문제를 생각해보자.

Encoder-Decoder structure

사람이 번역을 하듯, 한 문장을 끝까지 본 뒤에 번역을 하는 방법이다.

Encoder

  • encoder에서 문장 전체에 대해 학습한다.
  • many-to-one
  • 전체 input sequence(embedding)가 encoder의 마지막 hidden state에 single vector로 저장된다.

Decoder

  • one-to-many
  • embedding에서 시작해서 하나씩 출력(번역)을 생성하는 decoder를 구축한다.
  • decoder에서는 auto-regressive generation을 하는데 이는 이전에 output으로 나온 단어가 다음 단계의 input으로 들어가는 구조이다.

** 다만 학습 단계에서는 모델이 올바른 입력에서 나오는 출력을 학습해야 하기 때문에 groundtruth 데이터를 input으로 사용해야 한다. (→ Teacher Forcing)

References

https://yjjo.tistory.com/35

profile
Let it code

0개의 댓글