본문 바로가기
NLP/Concept

[NLP] Machine Reading Comprehension

by iamzieun 2023. 6. 6.

포스팅 개요

본 포스팅은 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
  • 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를 부여함으로써 모델이 두 문장을 구분하여 해석하도록 유도
      • Output
        • Extraction-based MRC에서의 output은 지문 내의 연속된 토큰 (span)이므로, span의 start position과 end position을 예측
        • Extraction-based MRC에서는 정답을 생성하는 것이 아닌, span의 start position과 end position을 예측하도록 학습한다는 점에서, token classification 문제로 치환됨
    • 2. Fine-tuning
    • 3. Post-processing
      • 불가능한 답 제거하기
        • end position이 start position보다 앞에 있는 경우
        • 예측한 position이 context의 범위를 벗어나는 경우
        • max_answer_length보다 정답의 길이가 더 긴 경우
        정답 candidate list에서 제거
      • 최적의 정답 찾기
        1. start position / end position에서 score (logits)가 가장 높은 N개 찾음
        2. 불가능한 답 제거
        3. 가능한 조합들을 score의 합이 큰 순서대로 정렬
        4. score가 가장 큰 1개 / top-k개을 최종 예측으로 선택

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을 예측함으로써 정답 텍스트를 생성
        • 2. Fine-tuning
          •  Model
            • BART: 기계 독해, 기계 번역, 요약, 대회 등 sequence to sequence 문제의 pre-training을 위한 denoising autoencoder
              • 구성
                • encoder: BERT처럼 bi-directional
                • decoder: GPT처럼 uni-directional (autoregressive)
              • 훈련
                • noise가 있는 text를 원본으로 복구하는 방식 → 생성에 용이
        • 3. Post-processing
          • Decoding
            • 이전 step의 output이 다음 step의 input이 되는 autoregressive한 형태
            • 첫 번째 input은 문장의 시작을 나타내는 special token
  • 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

댓글