Search
👨🏻‍🎓

[논문리뷰] What do Models Learn from Question Answering Datasets

Created
3/7/2021, 12:26:24 PM
Tags
QA
💡
모델이 도대체 QA 데이터셋으로 부터 뭘 배우는 걸까?

Introduction

테스트셋에서 사람보다 좋은 성능을 보여주는 여러 QA 모델들이 등장하고 있다.
하지만 QA 테스크가 완전히 풀렸다고 보기엔 아직 한계점이 많이 지적되고 있다.
우리는 QA 모델이 도대체 뭘 배우는지 이해할 필요가 있다. 이를 위해 다음과 같은 질문을 던진다.

저자들의 질문

1.
특정 QA 데이터셋으로 학습한 모델의 성능이 새로운 데이터셋에 대해서도 일반화될 수 있을까?
2.
QA 문제를 풀 때, 모델이 독해 능력(Reading Comprehension)을 진짜 사용할까?
3.
QA 모델이 다양한 질문에 대응할 수 있나?

Dataset

본 논문에서는 총 5개의 QA 데이터셋을 이용해 실험을 진행했다. 각 데이터셋 별 문서의 도메인과 데이터셋이 만들어진 방법이 모두 다르다.
SQuAD 2.0: 위키피디아 문서에 대한 200K 개의 QA 페어로 이루어져 있다. 그중 50K 개는 질문에 대한 답이 없는 질문.
TriviaQA: Trivia 웹사이트에서 가져온 대한 95K 개의 QA 데이터셋.
Natural Questions(NQ): Google Search Log 기반의 300K 개의 질문. 그리고 레이블러들이 각 질문에 대한 짧은 답변, 긴 답변을 Wikipedia 문서에서 찾아 레이블링 한 데이터셋.
QuAC: 100K 개의 QA 페어. 레이블링 방식이 특이한데, 한 레이블러가 어떤 위키피디아 문서에 대한 질문을 만들면 다른 사람은 그 질문에 대한 답을 본문에서 찾아 레이블링.
NewsQA: CNN 기사 10K 개를 기반으로 질문 100K 개 데이터셋. 한 레이블러는 기사 제목과 요약을 보고 질문을 레이블링. 다른 레이블러는 해당 질문에 대한 답을 본문에서 찾아 레이블링.

Experiments

실험에 사용한 모든 모델은 BERT-base pretrained weight 를 기반으로 fine-tuning 되었다.

Q1. Does Performance on individual QA datasets generalize to new datasets?

이상적인 기계 독해 모델이라면, 학습 때 보지 않는 데이터셋에서도 좋은 성능을 보여줘야 함
실험 결과, 학습에 사용한 테스크를 제외한 다른 테스크에서는 급격한 성능 하락을 보여줌
이를 통해서 하나의 데이터셋 만으로는 QA 문제의 일반화를 이루어 낼 수 없다는 결론을 얻을 수 있었음
SQuAD를 보면 전체적으로 성능이 높은 것을 볼 수 있음 → 테스트셋이 너무 쉽나?라는 의심
각 문제 별로 몇 개의 모델이 정답을 예측했는지 측정. 여러 모델이 맞출수록 쉽다고 볼 수 있음
QuAC과 NewsQA는 어렵고, 나머지(SQuAD, TriviaQA, NQ)는 상대적으로 쉬움
그렇다면 뭐가 문제를 쉽게 만드는 요소일까?
question-context의 word overlap 비율이 높으면 문제의 난이도가 쉬워짐 (상관관계 분석)
모델이 word-overlap 이 높은 부분에서 답변을 찾는 꼼수를 사용함
이러한 꼼수는 out-of-domain test-set 인 경우에도 잘 먹힘
너무 쉬운 테스트 셋이 많으면, 모델의 성능을 과대평가하게 됨. 문제의 난이도 조절이 필요함

Q2. Do models need to learn reading comprehension for QA datasets?

모델이 진짜 좋은 독해 실력을 갖고 있는 건가? 아니면 답변을 찾는 지름길을 찾은 건가?
가설: 부정확한 입력으로도 정답을 찾을 수 있다면, 모델은 ‘독해’를 배운 게 아닐 것임.
저자들은 가설 검증을 위해서 위해서 세 가지 ablation test를 설계 및 실험 진행

Test 1. 랜덤 정답

학습 데이터의 10%, 50%, 90% 를 문맥 내 랜덤 한 문자열(답변과 동일한 길이)로 바꿔서 학습.
SQuAD, NQ는 전체 정답 중 50%를 랜덤 한 문자열로 바꿔도, 성능이 크게 하락하지 않음.

Test 2. 문맥 섞기

문맥의 텍스트를 문장 단위로 split 한 다음에, 모든 문장 순서를 랜덤 하게 shuffle 함.
shuffle 된 문맥을 대상으로 문제를 풀었을 때와, 원본 문맥에 대해 문제를 풀었을 때의 성능 비교
SQuAD, NQ, QuAC은 문장을 모두 섞어도, Test set 성능은 크게 떨어지지 않았음.

Test 3. 잘린 질문

전체 질문이 아닌, 질문의 앞부분만 일부 잘라서 입력으로 넣었을 때의 모델 성능 측정
총 3가지 variation: 질문 텍스트의 반절, 질문의 맨 앞 단어, 아무 질문을 주지 않기
예: Who was the Norse leader? / 반절: Who was 맨 앞: Who 빈 질문: ""
SQuAD에서는 아무 질문을 하지 않아도 F1이 49.5이나 되었음.
이외의 데이터셋에서도 질문의 변형된 경우 성능 하락이 존재했으나, 큰 폭이 아닌 경우 존재

Q. 어떻게 질문 없이도 답을 맞힐 수가 있지?

문맥에 NER 적용해서 검출된 첫 번째 Entity와 첫 번째 사람 이름 Entity 를 정답으로 예측 해봤더니 SQuAD, TriviaQA, NQ에서 F1 score 가 약 30 이상 나오더라..?
기본적으로 인물에 대한 문제가 많고, 질문에 대한 답이 문단 앞에 존재할 가능성이 높도록 레이블링 되었음

Q3. Can QA models handle variations in questions?

질문에 특정 단어를 추가했을 때, 모델의 성능이 어떻게 달라지는지 관찰

Test1. Filler Word (의미 없는 단어. ex: really, definitely, actually) 추가하기

성능 변화에 큰 차이 없음.

Test2. Negation (부정어, ex: n’t, never) 추가하기

기존 질문에 대한 부정문이기 때문에 주어진 답과 동일하면 안 됨 (답이 없거나 다른 span 이어야 함)
SQuAD 는 성능이 급격하게 떨어졌음. 나머지 데이터셋은 성능에 있어서 큰 폭의 하락 없었음
SQuAD 는 왜 잘 구분할까? A: SQuAD 레이블러들이 대부분 부정문을 never 또는 n’t 형태로 사용함. 이 테스트에 대해서 이미 강함. 이 역시 label bias.

결론

여러 실험을 통해서 저자들은 다음과 같은 결론을 도출했다.
1.
하나의 데이터셋으로 학습된 QA 모델은 일반화 능력이 부족하다
2.
분명히 정보가 부족하고, 불분명한 질문에 대해서도 답을 어느 정도 한다. 꼼수로 답을 찾는 느낌.
3.
다양한 질문 variation 에 대해서 답을 잘 못함.
저자들은 앞으로 QA 데이터셋을 만드는 사람들에게 다음과 같은 제안을 한다.
Test for generalizability: QA 모델의 일반화 능력을 항상 체크하라. 한 테스크에서 학습한 모델을 여러 테스트셋에서 성능을 측정해라.
Challenge the models: 너무 쉬운 문제(context-question overlap 이 높은 질문, 자주 등장하는 entity 를 정답으로 하는 질문)들로 테스트셋을 구성하지 마라
Be wary of cheating: 성능이 좋다고, 이해력이 좋은 게 아니다. noise 를 추가하고, 문맥을 섞고, 불완전한 입력을 줌으로서 모델이 꼼수를 부리고 있진 않는지 체크해야 한다.
Include variations: 다양한 형태의 질문을 이용해 테스트해라. 의미 없는 단어를 추가하거나 부정어를 추가해서 의도한 답변을 하는지 확인해야 모델이 진짜 질문을 이해하는지 파악할 수 있다.
Standardize dataset formats: 새로운 데이터셋을 만들 때, SQuAD 와 같은 데이터셋 포맷을 쓰도록 하라. 그래야 데이터셋 간의 평가를 쉽게 할 수 있다

요약

모델이 도대체 QA 데이터셋으로 부터 뭘 배우는지, 기존의 방식에 어떤 문제가 있는지 알아 보았다
저자들은 다음 3가지 부분을 중점적으로 확인했다.
1.
Out-of-Domain(한번도 보지 못한) 샘플에 대한 일반화 능력 (Generalizability)
2.
정확하지 않거나, 불충분한 정보에 대한 질의 응답 능력
3.
다양한 질문에 대응하는 능력
실험을 통해서 단일 QA 데이터셋 만으로는 robust 한 모델을 만들 수 없다는 것을 알게 되었다.
기존 데이터셋 제작 방식과 평가 방법에 한계점이 있음을 주장한다.
본 논문에서 알아낸 정보를 바탕으로 QA데이터셋을 만들 때 고려하면 좋을 법한 것들을 추천한다.