포스팅 개요
본 포스팅은 Open Domain Question Answering의 두 번째 과정인 Machine Reading Comprehension(기계 독해)에 대해 정리한 글입니다. MRC의 방법론 중 Extraction-based와 Generation-based를 중심으로 작성하였습니다.
What is Machine Reading Comprehension(MRC)?
- 기계 독해 (Machine Reading Comprehension)
- 주어진 지문(context)에 대한 이해를 바탕으로, 질문(query / question)에 대한 답변을 추론하는 문제
- 질문이 입력되면, 그 질문과 관련한 지문을 찾고, 지문으로부터 질문에 대한 답을 찾는 순서로 진행됨
Subfields of MRC
Extraction-based MRC
- 주어진 지문(context) 내에 질문(question)에 대한 답이 주어진다는 가정 하에, 지문으로부터 정답을 ‘추출’하는 형태 → 분류 (classification)
- Cloze Test: 문장의 일부 단어 및 구문이 지워진 형태로 질문이 주어지고, 모델이 해당 부분을 채우는 방식
- 관련 데이터셋: CNN/Daily Mail, CBT
- Span Extraction: 주어진 지문에서 질문에 대한 답을 정확하게 추출
- 관련 데이터셋: SQuAD, KorQuAD, NewsQA, Natural Questions
- Cloze Test: 문장의 일부 단어 및 구문이 지워진 형태로 질문이 주어지고, 모델이 해당 부분을 채우는 방식
- Extraction-based MRC Overview
- 1. Pre-processing
- Input
- input_ids: 텍스트를 작은 단위(Token)로 나누는 것
- 어절, 단어, 형태소, subword 등 여러 단위의 토큰이 사용됨
- [CLS] 질문 [SEP] context [SEP] 형태로 tokenization
- attention_mask
- 입력 sequence 중에서 attention 연산 시의 사용 여부를 표시
- 일반적으로 [PAD]와 같이 의미가 없는 token을 무시할 목적으로 사용
- token_type_ids
- 입력 sequence가 질문과 지문 등 2개 이상의 문장으로 구성되었을 때, 각각에 ID를 부여함으로써 모델이 두 문장을 구분하여 해석하도록 유도
- input_ids: 텍스트를 작은 단위(Token)로 나누는 것
- Output
- Extraction-based MRC에서의 output은 지문 내의 연속된 토큰 (span)이므로, span의 start position과 end position을 예측
- Extraction-based MRC에서는 정답을 생성하는 것이 아닌, span의 start position과 end position을 예측하도록 학습한다는 점에서, token classification 문제로 치환됨
- Input
- 2. Fine-tuning
- 3. Post-processing
- 불가능한 답 제거하기
- end position이 start position보다 앞에 있는 경우
- 예측한 position이 context의 범위를 벗어나는 경우
- max_answer_length보다 정답의 길이가 더 긴 경우
- 최적의 정답 찾기
- start position / end position에서 score (logits)가 가장 높은 N개 찾음
- 불가능한 답 제거
- 가능한 조합들을 score의 합이 큰 순서대로 정렬
- score가 가장 큰 1개 / top-k개을 최종 예측으로 선택
- 불가능한 답 제거하기
- 1. Pre-processing
Generation-based MRC
- 질문에 대한 답을 지문에서 ‘추출’해내는 형태가 아닌, 지문으로부터 정답을 생성하여 ‘서술’하는 형태 → 생성 (generation)
- 관련 데이터셋: MS MARCO, Narrative QA
- Generation-based MRC Overview
- 1. Pre-processing
- Input
- input_ids
- attention_mask
- token_type_ids
- BERT와 달리 BART에서는 input sequence의 구분이 없어 token_type_ids가 존재하지 않음
- Output
- 전체 output sequence의 각 token을 예측함으로써 정답 텍스트를 생성
- Input
- 2. Fine-tuning
- Model
- BART: 기계 독해, 기계 번역, 요약, 대회 등 sequence to sequence 문제의 pre-training을 위한 denoising autoencoder
- 구성
- encoder: BERT처럼 bi-directional
- decoder: GPT처럼 uni-directional (autoregressive)
- 훈련
- noise가 있는 text를 원본으로 복구하는 방식 → 생성에 용이
- 구성
- BART: 기계 독해, 기계 번역, 요약, 대회 등 sequence to sequence 문제의 pre-training을 위한 denoising autoencoder
- Model
- 3. Post-processing
- Decoding
- 이전 step의 output이 다음 step의 input이 되는 autoregressive한 형태
- 첫 번째 input은 문장의 시작을 나타내는 special token
- Decoding
- 1. Pre-processing
- Generation-based MRC Overview
- 관련 데이터셋: MS MARCO, Narrative QA
- Generation based-MRC vs Extraction-based MRC
- 모델 구조
- seq2seq PLM 구조 (generation) vs classifier 구조 (extraction)
- output의 형태
- free-form 형태 (generation) vs 지문 내 답의 위치 (extraction)
- → extraction-based MRC: F1 score 계산을 위해서 text로의 변환 과정을 필요로 함
- 모델 구조
Multiple-choice Answer Datasets
- 질문에 대한 답을 여러개의 answer candidates 중에서 선택하는 형태
- 관련 데이터셋: MCTest, RACE, ARC
Challenges in MRC
- 다른 단어들로 구성된 같은 의미의 두 문장의 의미를 동일하다고 파악하는 것
- 관련 데이터셋: DuoRC (phraphrased paragraph), QuoRef (coreference resolution)
- 정답이 없는 문제
- 관련 데이터셋: SQuAD 2.0
- Multi-hop reasoning: 질문에 답하기 위해 여러 context의 정보를 통합적으로 활용하여 추론하는 것
- 관련 데이터셋: HotpotQA, QAngaroo
Evaluation of MRC
Extractive-based MRC / Multiple-choice Answer Datasets
- Exact Match
- 예측한 답과 ground-truth가 정확히 일치하는 샘플의 비율
- accuracy와 같음
- 답이 조금만 달라도 점수를 아예 부여하지 않는다는 특징이 있음
- F1 Score
- 예측한 답과 ground-truth 사이의 token overlap을 f1으로 계산
Generation-based MRC
- ROUGE-L
- 예측한 답과 ground-truth 사이의 overlap recall
- -L: LCS (Longest commonsubsequence) 기반
- BLEU-n
- 예측한 답과 ground-truth 사이의 precision
- -n: uniform n-gram weight
'NLP > Concept' 카테고리의 다른 글
[NLP] Passage Retrieval: Scaling Up (0) | 2023.06.07 |
---|---|
[NLP] Passage Retrieval (0) | 2023.06.07 |
[NLP] BERT basic (0) | 2023.05.05 |
[NLP] Beam Search (0) | 2023.04.03 |
[NLP] Seq2Seq with Attention (0) | 2023.04.03 |
댓글