티스토리 뷰
[논문 리뷰] Improving Unsupervised Question Answering via Summarization-Informed Question Generation (EMNLP 2021)
나선은하 2022. 5. 19. 13:36Abstract
Question Generation(QG)는 Question Answering(QA)와 반대되는 태스크로 passage와 answer가 주어졌을 때, 해당 answer를 답으로 낼 수 있는 question을 생성하는 태스크이다. 크게 Template-based QG와 Supervised QG로 나뉠 수 있으나 두 방법 모두 단점이 존재한다. 이를 해결하기 위해 본 논문은 dataset을 쉽게 만들 수 있는 방법을 제안하여 앞선 문제를 해결한다.
Introduction
QG의 목표는 input으로 주어지는 passage와 answer를 바탕으로 의미있는 question을 생성하는 것이다. 이러한 QG는 data augmentation의 관점에서 QA에 적용되기도 한다.
초기의 QG는 template or rule-based로 이루어졌다. 이 방법은 정확한 문제를 생성할 수 있었으나 생성하는 문제의 다양성이 떨어지고 passage와의 overlap이 많이 생긴다는 문제점이 있다. 예를 들어,
Stephen Hawking anounced the party in the morning
라는 passage가 주어지고 Stephen Hwaking이 answer라면, template-based로 질문을
Who announced the party in the morning?
과 같이 생성하게 되면 passage와 생성한 question 사이에 과한 오버랩이 존재하게 된다.
반면에 생성 모델을 통해 QG를 수행하는 방법은 다양한 문제를 생성할 수 있을진 몰라도 특정 도메인과 언어에 제한된다는 점과 데이터를 구하기 어렵다는 문제가 존재한다.
이를 해결하기 위해 본 논문에서는 QG를 위한 unsupervised 방법(summarization-questining process)을 제안한다.
쉽게 얻을 수 있는 summary data에 dependency parsing (DP), named entity recognitoin (NER), semantic role labeling (SRL)을 수행하여 QG를 위한 데이터셋을 만들고 모델을 학습하는 방법이다.
그림 1은 데이터셋을 만드는 방법을 간략히 소개한다. Summary dataset의 경우 article과 summary로 이루어져있다. 이러한 article을 passage로 활용하고 summary를 후처리함으로써 정답 question으로 활용한다. 파란색 배경을 가지는 부분은 summary에서 SRL을 가지는 명사들을 rule-based로 치환하여 질문을 생성한 결과이다.
이렇게 생성된 질문들은 passage와 오버랩이 적을 뿐만 아니라 구하기 쉽다는 장점이 있다.
본 논문의 contribution은 다음과 같다.
1. summary data를 사용하는 unsupervised QG 방법을 제안하였다. (QG를 요약 task를 통해 해결한 첫 연구이다.)
2. 제안하는 QG 모델을 통해 생성한 question을 바탕으로 QA를 했을 때 SOTA 성능을 보였다.
Methodology
Question Generation
summary dataset의 summary를 DP를 거치고 NER을 하여 SRL을 한 후 question을 생성한다.
DP는 main verb를 찾기 위해 수행되고, NER은 answer로 사용할만한 단어를 찾는 과정이다. 그 후 SRL을 통해 semantic 정보를 획득한다.
다음은 QG 데이터를 만드는 방법에 대한 알고리즘이다.
6: summary에 있는 각 srl_frame에 대해
9: summary의 주 동사와 srl_frame의 동사가 같은지 비교하고
10: 같다면 그 srl_frame에 있는 arg를 rule에 맞게 치환한다.
11: wh-word로 치환하고
12: 주 동사를 기본 형태로 치환하고 보조 단어(auxs)를 덧붙이고
13: wh-word 위치를 바꾸고
14: 적절히 후처리를 진행한다.
Training a Question Generation Model
QG 모델을 학습시키기 위해 input sequence를 다음과 같이 설정한다.
passage <SEP> answer <SEP>
이 때, <SEP>은 토큰 종류의 구분을 위한 special 토큰이다. 본 논문에서 seq2seq 모델로 BART를 사용하였고 NLL 로스를 통해 학습하였다.
Experiment Setup
Question Generation
데이터셋: 요약 데이터로 XSUM을 사용하였다.
QG Details: DP, NER, SRL를 위해 AllenNLP(논문, 웹사이트)를 사용하였다. 기타 데이터 전처리를 진행하여 최종적으로 14,830개의 데이터를 얻었다.
Unsuperbvised QA
데이터셋: 6개의 QA 데이터를 사용하였다. (SQuAD1.1, NewsQA, Natural Questions, TriviaQA, BioASQ, and DuoRC)
QA Details: Wikidumps를 사용하여 QA를 위한 데이터를 생성하였다.
Results
실험을 위해 생성한 2만개의 QA 데이터로 학습한 BERT를 사용하여 QA 성능을 측정하였다.
Analysis
Effect of Answer Extraction
NER-extracted answers: rule-base로 답을 선정한 경우
Human-extracted answers: 사람이 답을 annotating한 경우
Effect of Different Geuristics
Effect of the Size of Synthetic QA Data
Few-shot Learning
QG Error Analysis
62%: high quality questions
12%: mismatched wh-word and answer
8%: missing information
10%: factual errors
16%: grammatical errors
(한 데이터에 2개 이상의 error가 나는 경우도 존재함)
- Total
- Today
- Yesterday
- PYTHON
- 명령어
- install
- uninstall
- tqdm
- Process
- 개발
- nlp
- Git
- 포트포워딩
- 자료형
- multiprocessing
- vsCode
- PIP
- metric
- linux
- list
- Jupyter Notebook
- 자연어처리
- pytorch
- progress bar
- Docker
- 중복 제거
- tensor
- killall
- 알스트로메리아
- dockerfile
- gpu
- kill
- 시나리오
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |