NL-038, Attention-over-Attention Neural Networks for Reading Comprehension (2017-ACL)
SQuAD 리더보드 보면 AOA가 있는데 Attention-over-Attention의 약자라고 하고 이에 대한 논문이다.
2016년에 나온 것이라 기존 논문처럼 세세히 읽으면서 이 당시 문제점을 알고 정리하기 보다는, 전체적인 개요와 방법쪽으로 정리하겠음.0. Abstract
- Cloze-style reading comprehension은 document와 query 사이의 문제를 해결하는 것이다.
- 여기서 cloze-style RC란 빈칸 채우기라 생각하면 된다.
- BERT 논문에서 이를 이용하여 pre-train 했던 기억을 떠올려보자...
- 여기서 question의 @placeholder가 passge의 어떤 @entity?와 같은지를 찾는 것이라 보면 된다.
- 즉 question 문장의 빈칸 채우기인데 passage에 후보들이 있는 개념
- 여기서 정답 후보들도 위의 책 내용에 있는 것이다.
- CNN 뉴스와 똑같은 형식.
- 약간 지금 MRC 이전에 약간 쉬운 버전으로 paragraph가 있고 question에 해당하는 후보가 주어지고 후보 중에 선택하는 느낌과 비슷하다. 물론 질문이 아니고 빈칸 채우기 식이지만...
- 여기서 attention-over-attention reader을 이용하여 cloze-style reading comprehension을 더 잘 푸려고 한다.
- 이 방법은 최종 answer prediction을 위해 document-level attention에 대한 attention 메커니즘에 초점을 맞춘다.
- 논문 모델의 장점은 간단하면서도 비슷한 연구들에 비해 성능이 좋다.
- 추가적으로 N-best re-ranking 전략으로 후보 정답자에 대한 validity를 double check을 함으로써 성능을 올렸다.
- 이 당시 SOTA를 찍었다고 함.
- verify처럼 검증하는 거겠지??
- CNN(뉴스)과 Children's Book Test로 실험을 하였음.
1. Introduction
- CNN/Daily Main news 데이터세트가 이를 위해 대규모 데이터세트로 제작되었다.
- Document는 뉴스 기사로 구성되고 queries는 뉴스 요약으로부터 구성되었다.
- Children's Book Test는 그 후에 공개되었다.
- 책에서 20개의 연속된 문장으로부터 학습 데이터를 생성했다.
- Query는 21번째 문장으로 구성되 어있다.
- 이 모델에서 제안하는 AoA는 자동적으로 (휴리스틱없이) "attended attetnion"을 document-level에서 할 수 있게 한다.
- 또한 query-to-document뿐 아니라 document-to-query도 interative information에 대한 상호 보완에 대한 장점을 얻을 수 있다.
- Contribution은 다음과 같다.
- attention에 attention을 취하는 첫 번째 방법
- 이전 복잡한 연구와는 달리, non-trainable hyper-parameters을 이용하여 간단하지만 좋은 성능을 제시한다.
- N-best re-ranking 전략으로 re-score을 함으로써 성능을 향상
2. Cloze-style Reading Comprehension
2.1 Task Description
- (Abstract 그림 참고)
- <D,Q,A>에 대해 푸는 문제이다.
- D는 document, Q는 query, A는 answers to the query이다.
- Answer은 single word로 document에 있는 단어이다.
- 이는 사람이 document와 query에서 context 정보를 가지고 사용하는 것이도 named entity을 알아내는 것으로 전치사 예측 등 다양하다.
2.2 Existing Public Datasets
- CNN / Daily Mail
- Children's Book Test
- 정답이 verbs(동사)와 전치사(preposition)인 경우는 content of document에 덜 의존적이다.
- 즉 사람은 document 없이 빈 칸을 채울 수 있다.
3. Attention-over-Attention Reader
- Documnet에서 혼합된 표현을 계산하기보다는 document-level에서 직접 answer을 estimate을 하는 것으로 목표로 한 Kadlec 모델을 기반으로 한다.
- 즉 여기서도 학습 기법이 아닌 직접 구하는 개념을 말하는 듯
3.1 Contextual Embedding
- Document와 Query에 있는 모든 단어들을 one-hot encoding으로 만듬.
- 그 다음 We matrix을 곱하여 vector로 만듬
- Bi-GRU을 통하여 contextual 정보를 뽑아냄
- ELMO 와 비슷한 느낌
,
으로 2d 차원으로 contextual representation 하는 것
3.2 Pair-wise Matching Score
- Cui와는 달리 자동적으로 individual attention 에서 어느 것이 중요한지를 계산한다.
- Cui는 휴리스틱하게 summing or averaging으로 중요도를 판별했다고 함.
- 즉 document의 단어들에서 어느 question이 중요한지를 보는 것으로 row-wise softmax function을 취하면 된다.
- document-to-query attention이다.
- t=1~D까지 가능한 것
- 이전의 연구들은 대부분 query-to-document attention을 이용하였다.
- 나중에 pointer network을 적용할 때, query-to-document attention을 통한 query을 encoding하고 하나의 vector화 시켜서 하긴 했음
- 여기서는 document 또한
을 average하여 averaged query-level attention
을 얻는다.
- 마지막으로
와
을 이용하여
을 계산하게 된다.
- 정리해보자!
- Document, query에서 해당하는 단어에 해당하는 contextual embedding을 W_d, W_q이라 하자.
- 각 W_d에서 W_q을 얼마나 참조해야 되는지 attention을 구한다.
- W_d와 W_q가 얼마나 연관성이 있는지 matrix로 구한다.
- 그러면 DxQ의 matrix M이 나온다.
- 그 다음, M에서 column-wise softmax을 하는데 이것이 의미하는 것이 W_q입장에서 W_d에 얼마나 영향을 끼치는지를 확률화 한 것이다.
- 이것이 query-to-document (individual attention) 의 역할이다.
- 그 결과는 똑같이 DxQ matrix (
) 이다.
- 이전 연구에서는, 이 다음에 row-wise averaging와 같은 것을 통하여 D vector을 구하는 것으로 한다.
- 혹은 Pointer network처럼 Query을 하나의 vector화 시켜서 애초에 matrix M 구하는 것을 건너뛰고 D vector을 구하든지..
- 하지만 여기서는 DxQ matrix
에서 row-wise로 weighted sum을 할 것이다.
- 그러면 그 weight을 구하는 것이 문제다.
- 이 weight을 구하는 것이 document-to-query을 통한 attention-over-attention 인 것이다.
- 방법은 row-wise softmax을 취한다. 이 의미는 W_d가 W_q에 얼마나 영향을 끼치는 지를 확률화 한 것.
- 이를 column-wise averaging하면 Q vector(
)가 나올 것이다.
- 마지막으로
와
를 내적한다.
- 이 방법들은 BiDAF와 비슷한 느낌이 들어서 찾아보니 BiDAF가 이 논문을 인용했더군.. 나는 BiDAF 논문부터 읽었지만, BiDAF 논문전에 이 논문을 읽었으면 좋았을 듯
3.5 Final Predictions
- 여기서 하는 task는 SQuAD, CoQA와 달리, span을 찾는다기 보다는 빈칸에 어떤 단어가 들어갈 지를 찾는 것이라 final prediction이 좀 다르다.
- 보면, I(w,D)은 document D에 존재하는 word의 위치에 해당하는 si을 합치는 것이다.
- 예를 들어 보면
- document = "그 감독의 영화가 재밌어서 다음 영화도 기대된다." 가 있으면 "그"라는 단어는 i=1에만 존재하므로 s(그)=s1이 되는 것이지만, "영화"는 i=3,6에 존재하므로 s(영화)=s3+s6이 되는 것이다.
- 그래서 question이 만약 "__를 보는 것은 즐거운 일이다."라는 것이면, __에 해당하는 단어는 s3+s6이 가장 크게 나오므로 "영화" 단어가 선택이 될 것이다.
- 이 의미를 식 (11)과 (12)으로 표현한 것이다.
4. N-best Re-ranking Strategy
- 이것은 만약 우리가 선택한 정답 단어 w1가 있다고 하자.
- w1를 빈칸에 채워서 문장을 봤을 때, 어색하지 않아야 하는 검증을 해야 한다.
- 만약 문장이 문법적으로 이상하거나, 유창성이 이상하면 그 다음 높은 확률인 w2로 빈칸을 채워본다.
- 이런 식으로 double-checking을 하는 과정이 이용하는데 이 논문에서는 N-best 전략을 사용했다고 한다.
- 마치 verify(NL-037) 논문에서 하는 것과 비슷한 느낌이다!
4.1 N-best Decoding
- 첫 째로 가장 확률이 높은 단어를 pick하는 것이 아니라 decoding에서 N-best list을 도출한다.
4.2 Refill Candidate into Query
- 각 Candidate을 blank에 refill을 하여 query을 완성된 문장으로 만든다.
4.3 Feature Scoring
- 각 candidate sentences들은 많은 관점에서 score가 매겨질 수 있는데 여기서는 3가지 feature을 통하여 score N-best list을 한다.
- Global N-gram LM
- 이 모델은 학습 데이터의 document part에서 학습되었다.
- 이를 가지고 fluency을 평가하는 방법이다.
- 문장 생성 논문들보면 보통 fluency을 평가할 때, LM을 이용하기는 하는 듯
- Local N-gram LM
- 이 모델은 test 데이터의 document에서 학습된 것이다.
- 즉 글로벌한 LM이 아니라 blank에 맞는 정답을 찾아내기 위한 test document에 specific한 상황인 것이다.
- 개인적으로는 같은 어구가 반복되는 것이 아니라면, 큰 의미가 있을까 싶긴함..
- Word-class LM
- Global N-gram LM처럼 train 데이터의 document에서 LM 모델을 학습하는 것이다.
- 단, word들을 clustering을 하여 그것에 대한 id을 매겨서, 이를 학습하는 것이다.
- word clustering을 할 때는 mkcls tool을 사용하여 1000개의 classes로 묶었다고 한다.
4.4 Weight Tuning
- 이 3가지 features에 대한 평가 사이에 weight을 이용하여 합하게 된다.
- 이 때, weight을 K-best MIRA 알고리즘을 통해 자동으로 validation set에 대해 optimize을 한다고 한다. (이게 먼지는 모르지만 SMT, statistical machine translation 에서 많이 쓰는 기법이라고 함)
4.5 Re-scoring and Re-ranking
- 4.4을 통해 feature들의 weighted sum을 통하여 N-best sentence에서 가장 작은 cost을 가지는 것이 final answer이다.
5. Experiments
- 당연히 지금은 SOTA가 아니기 때문에 간단히 그림으로만 첨부...
5.1 Experimental Setups
- Embedding Layer: [-0.05, 0.05]에서 uniformed 분포를 따르도록 초기화
- l2-regularization 0.001
- dropout rate 0.1
- do not use pre-trained embedding models
- Hidden-layer: GRU (random orthogonal matrics로 초기화)
- Optimization: ADAM optimizer (lr: 0.001 + gradient clipping 5)
5.2 Overall Results
- local은 test 데이터세트에 관한 feature이고 global과 word-class은 train 데이터세트에 관한 feature로 비율을 확인하여 어느 feature가 중요한지를 확인하기 위한 것
- global / local / WC LM 각각 효과가 다르다.
- CNN가 CNN모다 RATIO n이 크다.
- 즉 CNN이 좀 더 train 데이터에 관한 feature가 크게 작용했다? 머 이런느낌인 듯
6. Quantitative Analysis
- 생략..
8. Conclusion
- AoA reader 제안
- Document 관점 뿐 아니라 query 관점에서도 attention 적용
- weighted sum of attention을 통하여 attention-over-attention을 수행하였음.
- 다양한 데이터세트에서 SOTA 달성
- 이러한 방법이 다양한 task에 사용할 수 있을 것이라 생각하여 여러 task의 모델에 적용해볼 예정
- SQuAD / CoQA에서 BERT+AoA가 의미가 있는 성능을 내는 것으로 보아 실제로 유용한 듯!
- 하지만 이후에 나온 논문들이 AoA을 꼭 쓰는 것은 아니다.
- 오히려 R-net, SAN 등 처럼 question을 하나의 vector로 하여서 pointer network 식으로 paragraph의 word에서 확률을 구하는게 더 많은 거 같은데..
- AoA와 R-net 등 두 가지 방법으로 MRC에 꼭 뭐가 좋다는 것은 아닌 것 같다.
- Nerual machine이 언어를 이해는 하지만 실제 document-level 역할을 하는 것은 아니다.
- 따라서 다양한 문장에 대해 좀 더 포괄적인 이해를 하기 위한 연구를 할 것이다.
Reference
댓글
댓글 쓰기