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은 다음과 같다.
    1. attention에 attention을 취하는 첫 번째 방법
    2. 이전 복잡한 연구와는 달리, non-trainable hyper-parameters을 이용하여 간단하지만 좋은 성능을 제시한다.
    3. 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

  • 내적을 통하여 score을 구함 
  • 즉 인 matrix M을 구하고 이는 query-to-document attention이다.

3.3 Individual Attentions

  • Column-wise softmax function을 M에다 취하는 것이다.

3.4 Attention-over-Attention

  • 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 을 얻는다.
    • 이는 column-wise averaging
  • 마지막으로 와 을 이용하여 을 계산하게 된다.
    • 이를 attention-over-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을 한다.
  1. Global N-gram LM
    • 이 모델은 학습 데이터의 document part에서 학습되었다.
    • 이를 가지고 fluency을 평가하는 방법이다.
    • 문장 생성 논문들보면 보통 fluency을 평가할 때, LM을 이용하기는 하는 듯
  2. Local N-gram LM
    • 이 모델은 test 데이터의 document에서 학습된 것이다.
    • 즉 글로벌한 LM이 아니라 blank에 맞는 정답을 찾아내기 위한 test document에 specific한 상황인 것이다.
    • 개인적으로는 같은 어구가 반복되는 것이 아니라면, 큰 의미가 있을까 싶긴함..
  3. 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

5.3 Effectiveness of Re-ranking Strategy

    • local은 test 데이터세트에 관한 feature이고 global과 word-class은 train 데이터세트에 관한 feature로 비율을 확인하여 어느 feature가 중요한지를 확인하기 위한 것
    • global / local / WC LM 각각 효과가 다르다.
    • CNN가 CNN모다 RATIO n이 크다.
    • 즉 CNN이 좀 더 train 데이터에 관한 feature가 크게 작용했다? 머 이런느낌인 듯

6. Quantitative Analysis

7. Related Work

  • 생략..

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

댓글