End-To-End Momory Networks
저자들은 이전 연구에서 recurrent attention model을 도입하고 Memory Networks(MN)라고 이름붙였다. 이번 논문에서는 MN 모델을 end-to-end로 학습가능하도록 개선했다. 이를 통해 QA (question answering) 태스크와 언어 모델(language modeling)에 적용할 수 있었다. 저자들이 제안한 모델을 여러 층을 쌓아(multiple computational hops) 결과를 개선하였다.
논문 저술 당시의 인공지능 연구의 도전 과제는 장기의존성 문제를 처리하기 위해 여러개의 계산 단계로 구성가능하도록 모델을 만드는 것이었다. 당시에는 외부의 저장소(explicit storage)와 어텐션(attention)을 이용하는 것이 연구되었다. 저장소는 신경망 모델에 의해 연속된 표현(continous representation)으로 만들어 졌다. (학습된 가중치를 뜻하는 듯하다.)
이 연구에서는 모델이 출력전에 외부의 메모리(large external memory)에서 여러번 읽기를 하는 RNN 아키텍처를 제안한다. 이전 모델에서는 백프롭으로 학습하기 어렵고 각층마다 감독(supervision)이 필요했다. 그러나 이번 연구 방법으로는 입출력 쌍으로 부터 end-to-end로 학습이 가능하고 비지도 학습(LM) 등 더 많은 태스크에 적응이 가능하다.
연구에서 제안하는 모델은 다음과 같다. (a)는 single model, (b)는 이를 여러 단계로 쌓은(hops) 모델이다.
입력 문장(xi)는 A행렬에 의해 mi로 임베딩되고 QA 태스크의 q는 B행렬에 의해 u로 임베딩된다. u와 m은 내적후 softmax를 거쳐 확률 p로 변형된다. 출력 메모리(output memory representation)은 문장을 C에 의해 x를 임베딩한 c와 p를 곱한 뒤 더하여 계산한다. 출력이 스무딩 되었기 때문에 역전파에 의해 학습가능하다.
최종 예측은 다음과 같이 계산한다.
Attention, transformer를 공부하면 이 연구에서 제안하는 모델과 비슷한 계산과정을 보게된다! qkv!
다중 계층(Multiple layers)는 다음과 같다. u_k+1은 k번째 u와 o를 더해 구한다. 각 k층은 임베딩을 행렬들을 갖고 있다. 모델의 행렬 구성에 대한 추가적인 요소는 다음과같다.
RNN 구조로 본다면 uk+1 = uk + ok는 hidden state와 같다. 그리고 행렬 A를 이용해 attention weight인 internal output p를 출력한다. (query와 sentence의 내적이므로 둘 사이의 유사도를 확률로 출력한다.) RNN과 다른점은 output을 메모리안에 저장하는 것이다.
문장(sentence)는 단어벡터를 행렬에 곱한 후 더하여 구한다. 이 방법으로는 단어의 순서를 알 수 없다는 단점이 있어 단어의 위치를 인코딩하여 element-wise로 곱해준다. QA 태스크를 처리하기 위해 학습이 가능한 임시 인코딩(temporal encoding) T_A를 더한다. (LM, QA 태스크 둘다 적용함).
QA, LM에 대한 실험결과는 논문을 참고바란다.
Reference
https://arxiv.org/abs/1503.08895