출처 : 나동빈 님의 블로그
DNN 은 매우 강력한 모델이며, CNN 이나 speech recognition 등을 파악할 수 있다. 하지만, DNN 은 Input, Output 채널이 유한한 차원을 가져야 한다는 명백한 한계점이 있기도 하다. 예를 들면 speech recognition 이나 machine translation 같은 것들은 sequential 하기 때문에, DNN 만으로 문제를 해결하기에는 어렵다.
<aside> 💡 이런 sequence 를 조금 다르게 생각하면, 질문 - 대답 모델 또한 sequence of words 를 입력받아서 sequence of words 로 대답한다는 발상도 할 수 있지 않을까…? (오호..)
</aside>
이 논문에서는 하나의 LSTM을 input sequence 를 입력받아 dimensional vector 로 표현하게 할 것이며, 또 다른 하나의 LSTM 을 이용해서 그 벡터로부터 output 을 extract 하도록 할 것이다.
위의 사진과 같이 A B C 라는 문장을 EoS, (End-of-Sentence) 를 추가하여 학습하고, 이를 다시 sequence 한 words 로 무제한 출력하는데, EoS 가 나올때까지 반복한다.
한 가지 중요한 technique 으로는, Train sentence 들을 reverse 해서 넣은 것이다. 왜 reverse 해서 넣는지는 엄밀한 설명이 불가하지만 (어느 정도 결과론적), 아래 예시를 살펴보면 직관적으로 이해가 가능하다.