• Seq2Seq 모델은 기계 번역, 자연어처리, 챗봇 등 다양한 분야에서 활용되는 중요한 모델

  • Seq2Seq 모델의 기본 단위는 LSTM

  • 기계번역의 가장 큰 문제는 바로 문장의 어순과 단어 갯수의 불일치

    • 문장을 번역하는데 있어서 단어가 일대일 대응하지 않기 때문에 번역상 어려움

      image.png

  • ‘Thank’라는 단어에 Word2Vec를 적용하여 LSTM에 넣음

    • 다음 예시에서는 ‘Thank’, ‘you’, ‘<EOS>’ 라는 세 개의 token으로만 이루어진 딕셔너리를 가정

    • 그러면 ‘Thank’가 LSTM의 순전파를 통해 $cs_1$과 $hs_1$을 생성

      image.png

  • 그 다음 ‘you’라는 단어에 Word2Vec을 적용하여 입력

    • 그러면 $cs_1$, $hs_1$과 ‘you’의 단어 벡터는 새로운 $cs_2$과 $hs_2$를 생성

      image.png

  • 그리고 이제 영어 문장이 끝났기 때문에 문장 끝을 의미하는 <EOS> End Of Sentence를 입력

    • 그러면 <EOS>는 $cs_3$과 $hs_3$을 생성

      image.png

  • 이 $cs_3$과 $hs_3$을 합쳐서 context vector로 명명

    image.png

  • LSTM은 하나의 층으로 될 수도 있고, 더 큰 context vector를 얻기 위해 두 개의 층으로 만들 수도 있음

    • 이때 2층에 있는 LSTM은 1층과 가중치와 편향이 서로 다른 완전 새로운 LSTM

      image.png

  • 이 부분을 Seq2Seq에서는 인코더$^{\text{encoder}}$라고 부름

    image.png

  • Context vector를 사용하여 번역 작업을 수행

    • 번역도 마찬가지로 LSTM 사용
    • 이 LSTM은 인코더에서 사용된 LSTM과 가중치와 편향이 다른 완전히 새로운 LSTM을 사용