[논문 리뷰 스터디] Ask Me Anything: Dynamic Memory Networks for Natural Language Processing
▶️한 줄 요약 :
input - question - answer 세 가지 데이터 셋과 episodic memory module로 구성된 Dynamic Memory Network (DMN)를 활용하여 정교한 추론을 요구하는 NLP task에 적용
일반적으로 QA는 본문의 내용을 이해하는 작업 + 관련 사실에 대해서 추론하는 작업 이 두 가지를 필요로 한다.
논문에서는 여러 QA를 기반으로 진행할 수 있는 여러 NLP task(machine translation, part-of-speech tagging, sentiment anaylsis 등등) 에 적용할 수 있는 Dynamic Memory Network를 제안한다.
DMN의 기본적인 역할 두 가지는
→ 반복적인 attention 메커니즘 통해서 input으로 부터 사실 (relevant facts) 을 추출하고 ,
→ 그 추출한 사실을 바탕으로 추론을 진행해서 관련된 정답을 도출해낸다.
주 역할 : raw한 text input을 vector representation으로 변환
input T_1은 w_1, w_2, ... , w_T 라는 word sequence로 나타낼 수 있고 임베딩 매트릭스가 첨가된 RNN을 통해 인코딩 된다.
이 때 input은 아래 처럼 두 가지 케이스로 나뉜다.
(single sentence라면 # of representation= # of words)
(list of sentence라면 # of representation = # of sentences)
RNN 모델은 논문에선 GRU를 활용하였다.
input module이랑 똑같은데 다만 output이 final hidden state 하나만 있다는 것이 차이점
(input module에서 쓴 word embedding matrix 동일하게 사용한다)
주 역할 : 매 iteration마다, 들어온 representation에 attention 활용해서 어디에 집중할지를 찾고 question과 이전 time step의 메모리 활용해서 memory vector 업데이트.
question representation $q$ 와 이전의 메모리값 ${m^{i-1}}$를 활용해서 episode $e^i$ 를 만든다
t=0에서 나온 memory module의 final hidden state로 초기화된 별도의 GRU를 활용한다.
매 timestep마다 input question (q), 지난 시점의 결과값 (a_{t-1}), 이전에 예측한 값 (y_{t-1}) 이 세가지를 활용해 a_t를 만들고 그 a_t를 softmax 돌려서 최종 y_t를 구한다.
학습은 cross-entropy error classification을 활용해 진행한다. 근데 이제 EOS 토큰을 곁들인
RNN (Socher et al., 2013)→ 메모리 부족으로 여러 문장들에 대한 추론 task를 진행할 수 없음
chain-structed RNN (Mikolov & Zweig, 2012)나 seq2seq 모델(Sutskever et al., 2014)을 주로 사용.
~ seq2seq 모델은 DMN 모델에서 question과 episodic 모듈이 없는 케이스라고 볼 수 있다.
attention 복습!
seq2seq를 예시로)
t 시점 디코더의 hidden state와 인코더의 모든 hidden states들을 조합하여 디코더에서 출력할 때 인코더의 어느 부분에 집중해서 값을 도출해야하는지를 알려주는 메커니즘
DMN은 이러한 attention 메커니즘과 neural sequence 개념을 input representation과 response 도출 방식에 접목을 시켜서, 별도의 feature engineering 작업 필요 없이 다양한 범위에서의 적용을 이끌어낼 수 있었다.
신경학에서 말하는 일화기억 (episodic memory)란 자전적인 사건들 (시간, 장소, 감정, 지식)에 관한 기억으로 어느 특정 시간과 장소에서 일어났던 과거의 개인적인 경험의 모음이라고 한다.
일화기억은 공간적-감각적-시간적 현상에 대한 연관을 형성하는 역할을 하여 transitive inference를 이끌어내고 사람의 해마 부분에서 이를 담당한다고 한다.
question과 연관된 혹은 question에 의해 유발된 구체적인 state를 이끌어내는 역할을 하는 DMN의 episodic memory module은 사람의 해마와 닮았다고 볼 수 있다.
facebook bAbI 데이터셋을 활용하였고 MemNN구조를 대조군으로 삼았다.
Stanford Sentiment Treebank 데이터를 활용하였다. 매우나쁨 - 나쁨 - 보통 - 좋음 - 매우 좋음 으로 분류된 데이터셋과 긍정 - 부정 으로 분류된 데이터셋 두 가지가 있는데, 두 가지 데이터셋에서 DMN은 sota를 달성. (그 때 당시에)
Wall Street Journal 데이터셋 활용하였다. 각 단어에 대한 각 품사를 뱉어내야하기 때문에 매 time step마다 tagging이 도출된다.
◾ Episodic Memory Module에 대한 정량적 평가
어려운 추론 문제에 대해서 episodic memory module iteration을 여러번 진행하였고 좋은 성능을 얻었다. 0 혹은 1번 pass 돌렸을 때보다 2번 pass 돌렸을 때 복잡한 샘플에 대해서 훨씬 좋은 성능을 얻었다.
◾ Episodic Memory Module에 대한 정성적 평가
반복적으로 episodic memory module을 돌림으로써 input에 대해 모델이 어느 부분에 집중하는지 iteration별로 확인할 수가 있다.
→ 질문이 “Where was Mary before the Bedroom?” 이라고 했을 때 첫 번째 episode에서는 Mary에 집중했고 두 번째 episode에서는 Mary가 간 “cinema”에 집중해서 최종 정답을 cinema로 도출된 것을 볼 수 있었다.
two-iteration DMN일수록
=> 1-iter와 2-iter를 비교했을 때, “My response to the filme is best described as lukewarm” 이 문장에서 문맥의 주 흐름을 잡는 감정 단어는 lukewarm(미지근한)이다. 한 번 iteration만 돌게 되면 긍정의 의미를 담는 best에 집중하게 된다. 그러나 한 번 더 iteration을 돌게 된다면 best가 단순히 described라는 동사구를 수식해주는 역할을 하고 실제로 문장의 sentiment를 결정하는 감정 용어는 lukeworm임을 찾아낼 수 있게 된다.
댓글 영역