ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Sequence To Sequence
    AI 2021. 1. 3. 01:54

    seq2seq

    • 입력된 스퀀스로부터 다른 도메인의 시퀀스를 출력하기 위해 등장한 모델
    • seq2seq 제안 모델에서는 speech recognition과 machine translation을 대표적인 예시로 들었다.
    • seq2seq의 아키텍처는 크게 인코더와 디코더 두 모듈로 나눌 수 있다. 이러한 구조 때문에 "Encoder-Decoder Model"라고도 불림
      • 인코더 : 입력 문장의 모든 단어들을 순차적으로 입력받아 모든 단어 정보들을 압축해서 하나의 고정된 차원 벡터로 만드는 역할을 한다. 이때 이 벡터를 Context Vector라고 부른다.
      • 디코더 : Context Vector를 받아서 적절한 Sequence 정보를 생성하는 역할을 한다. 

    • 인코더와 디코더는 모두 LSTM으로 이루어져있으며, Context Vector은 인코더를 구성하는 LSTM의 마지막 히든 스테이트이다.
    • seq2seq를 처음 제안한 논문에서는 입력 시퀀스의 길이가 유동적이지만 항상 일정한 차원의 벡터로 압축해야하기 때문에 Stacked LSTM으로 인코더 디코더를 구성하였다. 또한, 인코더에서 스퀀스의 순서를 뒤집어서 입력하였으며, 이는 첫 단어를 마지막으로 입력함으로써 디코더가 첫 단어를 잘 예측할 수 있도록 하고자 하였다. 이는 이후에 등장하는 Bi-LSTM에 영감을 주었다.
    •  디코더는 기본적으로 LSTM-LM ( LSTM Language Model )이며, 초기 입력으로 문장의 시작을 의미하는 심볼이 입력되고 다음에 등장할 확률이 높은 단어를 예측한다. 이렇게 예측된 단어는 다음 타임 스텝의 입력으로 사용된다. 이를 문장의 끝을 의미하는 심볼 <EOS>가 등장할 때까지 반복한다.
    • seq2seq 모델은 학습을 위한 Train 과정과 테스트를 위한 Inference 과정의 동작 방식의 차이가 있다.
      • Train : 디코더에게 인코더가 보낸 컨텍스트 벡터와 시작 심볼을 입력하고 이후, 각 타임 스텝마다 예측된 단어가 아닌 정답 단어를 입력하면서 학습을 진행한다. 이러한 학습 방법을 Teacher Forceing이라 한다.
      • Inference : 디코더에게 인코더가 보낸 컨텍스트 벡터와 시작 심볼을 입력하는 것 까지는 학습 과정과 동일하며, 이후 각 타임 스텝에서 예측된 단어를 다음 타임 스텝의 입력으로 사용하는 점에서 차이가 있다.

    [출처] 딥 러닝을 이용한 자연어 처리 입문

    • 위의 그림은 디코더에 의해 단어가 예측되는 전반적인 구조를 나타낸다. 소프트맥스 함수를 통해 각 단어별 확률을 구하는 것을 볼 수 있다.

    'AI' 카테고리의 다른 글

    Spark : Basic  (0) 2022.07.26
    MLOps 입력값 드리프트  (0) 2022.07.13
    Word Embedding  (0) 2020.12.29
    Data Sampling  (0) 2020.12.28
    Recommend Algorithm  (0) 2020.12.23

    댓글

Designed by Tistory.