누누와데이터

[논문 리뷰] Ask Me Anything Dynamic Memory Networks for Natural Language Processing 본문

자연어처리 논문

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

happynunu 2022. 2. 11. 16:57

Ask Me Anything Dynamic Memory Networks for Natural Language Processing 논문은 2016년 ICML에서 발표된 논문이다. Dynamic memory 개념을 통해서, input으로 여러 문장들이 입력되어도 이들 간의 관계를 유기적으로 고려할 수 있다는 것이 인상적이였다.

 

1. Introduction 

대부분의 자연어 처리와 관련된 작업들은 question-answering problem이다  question-answering과 관련된 tasks의 예는 다음과 같다.
(1)Machine translation : 기계번역
(2)Named entity recognition(개체명 인식작업) : 단어를 보고 어떤 유형인지 or 어떤 집단에 속하는지를 추측하는 것
(3)Part-of-speech tagging (POS) : POS문장 내 단어들의 품사를 식별하여 태그를 붙여주는 것을 말한다.  (tuple)의 형태로 출력되며 (단어, 태그)출력된다. 여기서 태그는 품사(POS) 태그다.
(4)Classification problems like sentiment analysis : 감정 분류

 

(5)Multi-sentence joint classification problems : 예를 들어, Multi-sentence를 보고, Who does ”their” refer to?에 대한 답을 하는 것, 여러 문장 간의 관계성을 파악하거나 이에 맞는 답을 하기
 

Dynamic Memory Network

Dynamic Memory Networkinput sequencequestion를 처리하고, episodic memories 형성한 뒤, 이와 관련된 답변을 만든다.
• DMN은 attention mechanism을 활용하였는데, attention mechanism의 기본 아이디어는 디코더에서 출력 단어를 예측하는 매 시점(time step)마다, 인코더에서의 전체 입력 문장을 다시 한 번 참고하는 것입니다. 다만, 모두 동일한 비율로 참고하는 것이 아니라, 해당 시점에서 예측해야 할 단어와 연관성 있는 입력 단어 부분을 좀 더 집중해서 봅니다
Input-question-answer에 대한 triplet dataset를 사용해서 학습을 진행한다
 
 
Dataset example

triplet dataset

Dynamic Memory Network를 통해 만들어진 inputs, questionsanswers의 예이다.
input 문장들이 여러개 주어지고 이에 대한 question 문장이 마지막에 주어진다. 그러면 input문장들을 통해서 question 문장에 대한 answer를 답할 수 있어야 한다. 

 

2. Model

Overview of DMN modules 

• Dynamic Memory Network는 (1) Input Module, (2)Question Module, (3)Episodic Memory Module,  (4)

Answer Module로 나눠진다.

• 4가지의 모듈들이 서로 유기적으로 연관되어 있음을 알 수 있고, question vector가 연산과정 곳곳에 참여하고 있음을 알 수 있다.

 

(1)Input Module :

- Raw text inputsdistributed vector representations으로 인코딩한다.
- Inputs으로는 a sentence, a long story, a movie review, a news article, or several Wikipedia articles 등이 올 수 있다.

(2)Question Module :

- Input module 처럼 questiondistributed vector representations으로 인코딩한다.
- 이러한 벡터 표현은 episodic memory module에 들어가서 학습이 되고 episodic memory module이 순차적으로 학습을 이어 나가기 위한, initial state를 구성한다.

(3)Episodic Memory Module :

- Attention mechanism을 통해, input representationscollection중에서 inputs의 어느 부분에 중점을 둘 지 결정한다.
- previous memory뿐만 아니라, question도 고려하는 “memory” vector 표현을 산출한다.
- iteration마다 input과 관련된 새로운 정보를 제공받는다. 이러한 정보는 이전 iteration에서는 관련 없는 정보로 취급 받았던 것이다.

(4)Answer Module: 

- Episodic memory modulefinal memory로부터, answer를 생성한다.
 

Real example of DMN 

Real example of an input list of sentences and the attention gates that are triggered by a specific question from the bAbI tasks
 먼저 input module에 들어가기 위해 모든 input 문장들의 word embedding 결과를 concatenate한다이때 각문장이 끝나는 지점에 end of token을 넣어주었다
 Input 모듈은 rnn으로 되어있다. Episodic memory에 들어갈 때는 각문장의 end of token의 hidden state가 episodic memory의 입력값이 된다이러한 hidden state를 논문에서는 Fact representation이라고 한다.
 Episodic memory module도 마찬가지로 rnn으로 되어있다저기서 e의 개수는 input으로 들어간 문장 개수이다. 이는 입력값으로 각문장의 end of token의 hidden state가 입력됬으니 당연한 결과이다. 여기서 rnn의 layer는 2개로 다층적으로 구성되어있다.
 이때특이한점은 어떤 input sequence가 중요한지를 따로 계산해줘서 그지점에 대해서 특징점을 추출한다는 것이다특징 지점의 위치도 label로 입력받는다.
 그리고 최종적인 final state값이 answer module에 들어가서 answer 를 계산한다.
 

2.1 Input Module

h_t = RNN (L[w_t], h_(t-1) )

L : embedding matrix

w_t : the input sequence에서 t번째 단어의 단어 인덱스

 

Input sequence가 여러 개이면, concatenate하고 각 문장이 끝나는 지점마다, end-of-sentence token를 넣어준다.
GRUmore complex LSTM를 사용했다. 후자의 경우 성능은 비슷했지만 연산량이 많았다.
두개의 network모두 일반적인  tanh RNN보다 성능이 좋았다.
Input moduleRNN는 각각의 end of sentence token과 일치하는 t 스텝에서의 hidden statesepisodic module에 대해서 fact representation으로 사용한다.

 

2.2 Question Module

Input module 처럼 RNN으로 questiondistributed vector representations으로 인코딩한다. 논문에서는 GRU로 사용하였다.
Input modulequestion module 모두 동일한 word embedding 행렬을 공유한다.
하지만 input module과 다르게 outputfinal hidden state이다. input module의 경우 앞서 봤듯이 end of token 지점들에서의 hidden states가 결과값이다.
 

2.3 Episodic Memory Module

내부의 episodic memory들이 업데이트 하면서, episodic memory module은 계속적으로 input module의 결과 표현에 대해서 학습을 진행한다.
Episodic memory moduleRNN뿐만 아니라, attention mechanism으로도 구성된다.

Episodic Memory 연산

•e_i는 입력값으로서 input module에서 출력된 각각의 hidden state값을 question vector와  e_i-1의 값들을 attention mechanism으로 계산한 값이다.

GRU에서 initial statequestion vector로 초기화된다.
T_M(문장의 개수)만큼 지나가고 난 뒤의 메모리 값이  answer module에 들어가도록 설정하였다.
Episodic memory moduleInput에 대해서 multiple passes를 갖도록 구성하였다.

 

Episodic Memory Module's Attention Mechanism

Attention Mechanism
(1)식은 (2)(3)의 결합으로 이뤄진다.
G 함수는 feature set z(c,m,q)input으로 받고 scalar score를 출력한다.
(3)에서 Gtwo-layer feed forward neural network이다.

 

Memory Update Mechanism for Attention Mechanism

Memory Update Mechanism

pass i에서의 episode를 계산하기 위해서 변형된 GRU를 활용하는 데 이는 각 gatescore값이 (1) g^i 가중치로 사용하는 것이다.
이를 통해 answer module에 전달되는 episode vectorGRUfinal state가 된다.
(2)time t마다 GRU hidden state를 업데이트 하는 공식을 나타낸 것이다.

 

2.4 Answer Module

answer module 연산

 

 

 

 

 

 

 

 

3. Experiment

 

Training Loss function

정답 label과 예측된 label에 대해서  cross entropy 사용
Gate에 대한 Supervised여부에 따라 loss function 다르게 정의한다.

(1) 지도학습

학습 초반에는 α = 1, β =0 으로 설정해서 gate를 학습하는 데 집중

충분한 학습 후에는 α = 1, β =1로 설정하여 answer 학습 시작

두개의 cross entropy를 학습하는 이유는 지도학습 데이터셋의 경우, question에 따라 어떤 fact가 관련되어 있는지 label이 명시되어 있기 때문이다.

(2) 비지도학습

 

Question Answering(Facebook bAbI dataset)

Facebook bAbI dataset은 사실을 탐색하고 사실에 대해 추론하는 모델의 능력을 테스트하기 위한 합성 데이터 셋이다.
각각의 taskQuestion Answering 모델에 대해서, coreference resolution, deduction, and induction와 같은 다양한 능력들을 평가한다..
Task 2,3에서 DMN에서 recurrent input sequence model이 매우 긴 inputsmodeling하기 때문이다. MemNN은 각각의 문장들을 분리해서 보기 때문에 이러한 문제가 발생하지 않는다.
Task 7,8에서는 DMN이 더 높은 데, 이는 facts을 반복적으로 탐색하고 저장할 수 있기 때문이다.
 
 
 

 

Comments