상세 컨텐츠

본문 제목

[논문 리뷰 스터디] Ask Me Anything: Dynamic Memory Networks for Natural Language Processing

심화 스터디/논문 리뷰

by 김제성 2022. 10. 30. 17:49

본문

▶️한 줄 요약 :

input - question - answer 세 가지 데이터 셋과 episodic memory module로 구성된 Dynamic Memory Network (DMN)를 활용하여 정교한 추론을 요구하는 NLP task에 적용

 

 

1. Introduction

일반적으로 QA는 본문의 내용을 이해하는 작업 + 관련 사실에 대해서 추론하는 작업 이 두 가지를 필요로 한다.

논문에서는 여러 QA를 기반으로 진행할 수 있는 여러 NLP task(machine translation, part-of-speech tagging, sentiment anaylsis 등등) 에 적용할 수 있는 Dynamic Memory Network를 제안한다.

DMN의 기본적인 역할 두 가지는

→ 반복적인 attention 메커니즘 통해서 input으로 부터 사실 (relevant facts) 을 추출하고 ,

→ 그 추출한 사실을 바탕으로 추론을 진행해서 관련된 정답을 도출해낸다.

 

 

2. Dynamic Memory

1) Input Module

주 역할 : 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를 활용하였다.

2) Question Module

input module이랑 똑같은데 다만 output이 final hidden state 하나만 있다는 것이 차이점

(input module에서 쓴 word embedding matrix 동일하게 사용한다)

3) Episodic Memory Module

주 역할 : 매 iteration마다, 들어온 representation에 attention 활용해서 어디에 집중할지를 찾고 question과 이전 time step의 메모리 활용해서 memory vector 업데이트.

question representation $q$ 와 이전의 메모리값 ${m^{i-1}}$를 활용해서 episode $e^i$ 를 만든다

 

 

  • 여러 Episode의 필요성
    • s1, s2, .. s8 일련의 문장들을 단순히 한 번만 보는 것이 아니라 여러 번 반복해서 봄으로써 이전 pass에서 놓친 정보들을 다시 찾아보고 이를 통해 transitive inference 구현 가능
    • 예를 들어 q = ‘Where is the football?’ 일 때두 번째 iteration에서는 s7에서 football을 건들인 주체 John에 attention하도록 한다.
      • 첫 번째 iteration에서는 football에 집중해서 s7에 높은 attention을 가했다면
      • 두 번째 iteration에서는 s7에서 football을 건들인 주체 John에 attention하도록 한다.
      • → 이렇게 되면 꼬리에 꼬리를 물듯이 추론이 가능해진다.
  • Attention Mechanism
    • GRU의 hidden state을 만드는데 사용되는 gate function으로써 어텐션을 활용한다.
    • input (c), memory (m), question (q) 이 세 가지 벡터를 가지고 2-layer feed forward에 집어넣는다.

  •   Stopping Criteria
    • input에 특별한 end-of-passes representation을 집어넣어서 gate 함수가 해당 표현을 찾아내면 episodic module iteration을 멈추는 것으로 기준을 정한다. (최대한 iteration을 많이 하도록 criteria를 설정하였다고 논문에서 언급함)

 

4) Answer Module

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 토큰을 곁들인

 

 

 

3. 관련 연구

  • Deep Learning

RNN (Socher et al., 2013)→ 메모리 부족으로 여러 문장들에 대한 추론 task를 진행할 수 없음

chain-structed RNN (Mikolov & Zweig, 2012)나 seq2seq 모델(Sutskever et al., 2014)을 주로 사용.

~ seq2seq 모델은 DMN 모델에서 question과 episodic 모듈이 없는 케이스라고 볼 수 있다.

 

  • Attention and Memory

attention 복습!

seq2seq를 예시로)

t 시점 디코더의 hidden state와 인코더의 모든 hidden states들을 조합하여 디코더에서 출력할 때 인코더의 어느 부분에 집중해서 값을 도출해야하는지를 알려주는 메커니즘

DMN은 이러한 attention 메커니즘과 neural sequence 개념을 input representation과 response 도출 방식에 접목을 시켜서, 별도의 feature engineering 작업 필요 없이 다양한 범위에서의 적용을 이끌어낼 수 있었다.

 

 

  • NLP applications
    • QA : 모델이 주어진 text의 fact에 제대로 접근하지 못하고, 문맥을 추론하지 못하고, 한 번도 학습한 적 없는 현상이나 질문이 들어오면 명확한 결과물을 도출하지 못할 수 있다. → 기존의 단순히 example에 기반으로 하는 QA모델에서 위와 같은 문제점들이 나타남
    • Sentiment analysis : Stanford Sentiment Treebank (Socher et al., 2013) 데이터 주로 활용하고 multiple word vector representation을 CNN에 넣어 만든 모델이 SOTA였다고 함 (Kim , 2014)
    • Part-of-speech tagging : Wall Street Journal section of the Penn Tree Bank 활용해서 가장 좋은 성능 얻은 모델은 Sogaard, 2011.
  • Neuroscience

신경학에서 말하는 일화기억 (episodic memory)란 자전적인 사건들 (시간, 장소, 감정, 지식)에 관한 기억으로 어느 특정 시간과 장소에서 일어났던 과거의 개인적인 경험의 모음이라고 한다.

일화기억은 공간적-감각적-시간적 현상에 대한 연관을 형성하는 역할을 하여 transitive inference를 이끌어내고 사람의 해마 부분에서 이를 담당한다고 한다.

question과 연관된 혹은 question에 의해 유발된 구체적인 state를 이끌어내는 역할을 하는 DMN의 episodic memory module은 사람의 해마와 닮았다고 볼 수 있다.

 

 

4. Experiments

 

1) QA

facebook bAbI 데이터셋을 활용하였고 MemNN구조를 대조군으로 삼았다.

  • Task 2,3 : 긴 시퀀스를 갖는 문장 데이터에서는 MemNN이 앞섰는데, 이는 RNN의 장기기억손실 문제점에 의한 것으로 보인다.
  • Task 7,8 : 반복적인 fact 추출하고 관련된 representation들을 저장하는 task에선 DMN이 우세하였다.

 

2. Sentiment Analysis

Stanford Sentiment Treebank 데이터를 활용하였다. 매우나쁨 - 나쁨 - 보통 - 좋음 - 매우 좋음 으로 분류된 데이터셋과 긍정 - 부정 으로 분류된 데이터셋 두 가지가 있는데, 두 가지 데이터셋에서 DMN은 sota를 달성. (그 때 당시에)

 

3. POS tagging

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일수록

  • 한 번의 iteration보다 더 좋은 성능을 보였다
  • : 적은 iteration일수록 input module 인코더가 더 제한된 key timestep으로부터 정보를 이끌어내야하기 때문에
  • 관련된 키워드에 더 집중을 할 수 있고, 실제 문맥에서는 그 의미를 잃어버리는 강한 감정 단어에 적은 attention을 가한다.

 

 

 

 

 

=> 1-iter와 2-iter를 비교했을 때, “My response to the filme is best described as lukewarm” 이 문장에서 문맥의 주 흐름을 잡는 감정 단어는 lukewarm(미지근한)이다. 한 번 iteration만 돌게 되면 긍정의 의미를 담는 best에 집중하게 된다. 그러나 한 번 더 iteration을 돌게 된다면 best가 단순히 described라는 동사구를 수식해주는 역할을 하고 실제로 문장의 sentiment를 결정하는 감정 용어는 lukeworm임을 찾아낼 수 있게 된다.

관련글 더보기

댓글 영역