MRC 종류

DONGJIN IM·2022년 7월 9일

MRC 이론

목록 보기
2/4
post-thumbnail

Extraction-Based MRC

Extraction-based MRC

  • 질문의 답변이 항상 주어진 지문 내에 Span(부분)으로 존재하는 Task

  • (ex) SQuAD, KorQuAD, NewsQA, Natural Questions 등

평가 방법

  • Exact Match

    • 부분점수 없이 예측값과 정답이 Character 단위로 완전히 같을 경우에만 1점 부여
  • F1-score

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

Pre-processing에서 활용되는 용어

Attention Mask

  • 입력 시퀀스 중에서 무시할 Token을 표기하기 위한 값

  • 0은 무시할 Token, 1은 연산에 포함될 토큰을 의미함

  • 주로 [PAD] 같은 의미 없는 특수토큰을 무시하기 위해 활용됨

Token Type IDs

  • 입력이 2개 이상의 Sequence일 때 각각에게 ID를 부여하여 모델이 구분하여 해석할 수 있도록 유도함

  • [PAD]는 편의상 0을 줌

  • (ex) 질문 + Document를 합쳐서 Input으로 줄 때 질문 Token type ID를 0으로, Document Token type ID를 1로 지정해서 모델에 넘겨주는 형식

모델 출력값

  • 문장을 Tokenizing하여 변환된 값

  • Extraction-based MRC는 Start Index를 찾는 문제로 치환할 수 있음

    • 답안을 생성하기 보다는 "시작"과 "끝" 부분의 Token을 찾는 문제로 치환됨

Post-processing

불가능한 답 제거하기

  • End Position < Start Position

  • 예측한 위치(Index)가 Context 범위를 벗어남

  • 미리 설정한 max_answer_length보다 긴 답을 반환

최적 답안 찾기

  1. Prediction에서 Score가 가장 높은 N개를 찾음

  2. 불가능한 답 제거

  3. 가능한 조합들을 점수 합이 큰 순서대로 정렬

  4. Score가 가장 큰 조합을 최종 예측으로 선정

    • 이 때 Top-k가 필요한 경우 순서 높은 K개를 선택하여 반환

Generation-Based MRC

Generation-based MRC란?

  • 주어진 지문과 Question을 보고 답변을 "생성"하는 Task

  • 정답의 위치를 파악하지 않아도 됨

    • 답변을 생성하는 문제이므로 지문에 답변이 Span 형식으로 나오지 않을 수 있음

평가 방법

  • EM이나 F1-score 활용

  • "생성" 문제이므로 BLEU Score 등을 활용하기도 함

Extractive-Based MRC와 다른 점

  • Token Type Ids는 필요 없음

    • 대표적인 생성 모델인 BART에서는 입력 시퀀스에 대한 구분이 필요 없기 때문
  • "Search" 문제가 아니므로 시작 토큰 위치를 반환하지 않아도 됨

  • Loss 계산

    • Extraction : 지문 내 답 위치 사이의 Loss
    • Generation : Free-form Text 사이의 Loss
  • MRC 모델 구조

    • Extraction : PLM + Classifier 구조
    • Generation : Seq2Seq 구조

Post-processing

  • 생성 문제이므로 불가능한 답변에 대한 조건이 매우 적음

  • Greedy Search, Exhaustive Search, Beam Search 등 많은 방법을 활용해 단어(혹은 Sentence) 후보를 구할 수 있음

  • Greedy Search : 현재 예측한 단어 다음에 나올 확률이 가장 높은 단어로 예측

    • 생성은 빠르지만, Output의 성능이 좋지 않음
    • 초반 단어가 틀릴 경우 문장 자체가 틀려질 확률이 커짐
  • Exhaustive Search : 모든 단어에 대하여 모든 방법을 고려하는 방법

    • 문장이 조금만 길어져도 실제로 활용할 수 없는 방법
  • Beam Seach : Exhaustive Search + Greedy Search

    • Greedy Search를 통해 N개의 단어를 예측하고 N개의 단어 중 몇 개의 확률 높은 후보를 선택해서 그 후보들에 대해서만 다음 Search를 진행하는 것
profile
개념부터 확실히!

0개의 댓글