[NLP] MRC (Machine Reading Comprehension)

Hyeyoon Kang·2022년 4월 27일
0

boostcamp

목록 보기
8/11

본 포스팅은 네이버 부스트캠프 3기에서 공부한 내용을 기반으로 작성된 글입니다.

MRC (Machine Reading Comprehension)

지문(context)을 이해하고 질의(question)의 답변을 추론하는 문제

Extraction-based MRC

지문 내 답변의 위치 예측 => classification

PLM + classifier 구조 사용

  • Extractive Answer Datasets

    질의에 대한 답변이 항상 지문에 segment(or span)으로 존재하는 데이터셋

    시작 위치와 끝 위치를 예측하도록 학습 (Token classification 문제로 치환)

    Cloze Tests : CNN/Daily Mail, CBT

    Span Extraction : SQuAD, KorQuAD, NewsQA, Natural Questions, etc

Generation-based MRC

주어진 지문과 질의를 보고 답변을 생성 => generation

Seq-to-Seq PLM 구조 사용

  • Descriptive/Narrative Answer Datasets

    질의를 보고 답변을 생성하는 형태의 데이터셋

    MS MARCO, Narrative QA

  • Multiple-choice Datasets

    질의에 대한 답변을 candidates 중 고르는 형태의 데이터셋

    MCTest, RACE, ARC, etc

MRC 평가

extractive, multiple-choice datasets 평가

  • Exact Match(EM) or Accuracy

    예측한 답과 ground-truth가 정확히 일치하는 샘플의 비율

    예측값과 정답이 문자 단위로 완전히 일치할 때 1점을 부여하고, 한 문자라도 다를 경우 0점 부여

    EM=NumberofcorrectsamplesNumberofwholesamplesEM={{Number-of-correct-samples} \over Number-of-whole-samples}

  • F1 Score

    예측한 답과 ground-truth 사이의 token overlap을 계산하여 답변이 조금만 달라도 오답(EM)이 되는 것을 보정

    예측값과 정답의 overlap 비율로 계산하고, 0점과 1점 사이의 부분점수를 받을 수 있음

    Precision=num(sametoken)num(predtokens)Precision={{num(same-token)} \over num(pred-tokens)}
    Recall=num(sametoken)num(groundtokens)Recall={{num(same-token)} \over num(ground-tokens)}
    F1=2PrecisionRecallPrecision+RecallF1={{2*Precision*Recall} \over Precision+Recall}

descriptive datasets 평가

Ground-truth와 예측한 답 사이 overlap 계산

  • ROUGE-L Score

    예측한 값과 ground-truth 사이의 overlap recall

    LCS(Longest common subsequence) 기반

  • BLEU (Bilingual Evaluation Understudy)

    예측한 답과 ground-truth 사이의 precision

KorQuAD

KorQuAD은 한국어 Machine Reading Comprehension을 위해 만든 데이터셋, LG CNS가 제작한 데이터셋

KorQuAD 1.0의 전체 데이터는 1,560 개의 Wikipedia article에 대해 10,645 건의 문단과 66,181 개의 질의응답 쌍으로, Training set 60,407개, Dev set 5,774개의 질의응답 쌍으로 구분하였습니다.
https://korquad.github.io/KorQuad%201.0/

profile
머신러닝 엔지니어를 꿈꾸는 부스트캠퍼입니다🙏

0개의 댓글