입력된 시퀀스로부터 다른 도메인의 시퀀스를 출력하는 다양한 분야에서 사용되는 모델입니다. 예를 들어 챗봇(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 별로 계산)을 해야만 하게 됨.