Ask Me Anything: Dynamic Memory Networks for Natural Language Processing
WHY?
기존의 언어 모델들은 특정 문제에만 좋은 성과를 보일 수 있는 구조를 가지고 있지만 일반적인 모든 문제에 적용하기는 힘들다. Dynamic Memory Network는 어떤 자연어 처리 문제도 해결할 수 있는 구조를 가지고 있다.
WHAT?
Dynamic Memory Network는 Input module, Question module, Episodic memory module, 그리고 Answer Module로 이루어져 있다. Input module에서 Input은 어떠한 길이의 텍스트도 가능한데 문장 단위 사이에 EOS토큰을 넣고 concate한 뒤 GRU를 사용한다. Question Module 또한 Question의 문장에 GRU를 사용한다. Episodic Memory에는 여러 층이 있을 수 있는데 각 층은 Input module에서 사용한 GRU에서 문장 단위의 hidden layer를 사용한다. 각 문장에 해당하는 hidden layer들을 question vector와의 전층의 메모리와의 attention 계산한 후 이를 gate로 사용하는 GRU를 사용하여 해당 층의 메모리 m을 출력한다. Answer Module은 메모리 m을 인풋으로 하여 문장을 출력하는 gru seq모델을 사용하여 답 문장을 생성한다.
So
다양한 종류의 문제들에 대하여 양호한 성과를 거두었고 MemNN에 비하여 counting과 lists/sets 문제에서 더 나은 성과를 보였다.