입력된 시퀀스로부터 다른 도메인의 시퀀스를 출력하는 다양한 분야에서 사용되는 모델입니다. 예를 들어 챗봇(Chatbot)과 기계 번역(Machine Translation)이 그러한 대표적인 예인데, 입력 시퀀스와 출력 시퀀스를 각각 질문과 대답으로 구성하면 챗봇으로 만들 수 있고, 입력 시퀀스와 출력 시퀀스를 각각 입력 문장과 번역 문장으로 만들면 번역기로 만들 수 있습니다. 그 외에도 내용 요약(Text Summarization), STT(Speech to Text) 등에서 쓰일 수 있습니다.
(https://wikidocs.net/24996)
RNN/LSTM/GRU와 같은 시퀀셜 모델링에서는 Hidden State가 모든 정보를 담기 어려운 문제가 계속되었다. (아무리 LSTM에서 장기 의존성 문제(Long Distance에서의 Long Dependency 문제)를 일부 해결했다 할지라도)
따라서, Encoder에 쿼리(Query)를 날려 필요한 정보만 찾아서 리턴하게끔 하는 Attention 매커니즘 개념이 도입됨..!
Attention 은 쿼리를 잘 만드는 과정을 배우는 일련의 과정..! (미분이 가능한 Key-Value Function 이다..!)
Teacher Forcing으로 인한 학습/추론 사이의 괴리 최소화학습 시 속도의 저하 문제 (추론시에는 크게 문제가 되진 않음.)
- 이전에는
Decoder도Encoder와 마찬가지로 모든 time-step에 대해 한번에 계산할 수 있었지만,Input Feeding에서는Decoder의 RNN 구조에서 입력으로 이전 time-step의 결과가 필요하게 되며 ➡️ 병렬처리를 하지 못하고 순차적 계산(각 time-step 별로 계산)을 해야만 하게 됨.