1 분 소요

MRC란?

  • Machine Reading Comprehesion
  • 주어진 지문(Context)를 이해하고, 주어진 질의(Query/Question)의 답변을 추론하는 문제
  • 검색과 다른 이유
    • 질문을 던지고 지문이 주어짐을 가정
  1. Extractive Answer Datasets
    • 질의(question)에 대한 답이 항상 주어진 지문(context)의 segment(or span)에 존재한다는 가정
  2. Descriptive/Narrative Answer Datasets
    • 답이 지문 내에서 추출한 span이 아니라, 질의를 보고 생성된 sentence(or free-form)의 형태로 존재
    • MS MARCO
  3. Mutiple-choice Datasets
    • 질의에 대한 답을 여러 개의 answer candidates 중 하나로 고르는 형태
    • MRC의 시작점
    • MCTest, RACE, ARC, etc.

MRC에서 해결해야하는 문제

  1. Paraphrased paragraph
    • 단어들의 구성이 유사하지는 않지만 동일한 의미의 문장을 이해
    • 같은 의미를 나타내는 다른 단어 구성
  2. coreference resolution
    • 대명사가 무엇을 지칭하는지 알아내는 것
  3. Unanswerable questions
    • 질문의 답이 지문에 없는 경우 “No Answer”이라는 답변을 내야하는데 틀린 대답을 내놓음
  4. Multi-hop reasoning
    • 여러 개의 document에서 질의에 대한 supproting fact를 찾아야지만 답을 찾을 수 있는 문제
    • HtpotQA, QAngaroo

MRC의 평가방법

  1. Exact Match
    • Accuracy
    • 예측한 답과 ground-truth가 정확히 일치하는 샘플의 비율
  2. F1 Score

    • Partial Score
    • token overlap을 계산한 점수
  3. ROGUE-L/ BLEU
    • descriptive answer datasets을 위한 metric
    • ngram을 사용하여 overlap을 계산

Unicode & Tokenization

Unicode

U+AC00

  • 16진수로 표현된 전 세계의 문자를 일관되게 표현하고 다룰 수 있도록 만들어진 문자셋

Encoding

  • 문자를 컴퓨터가 처리할 수 있는 이진수로 바꾸는 것

UTF-8

  • 가장 많이 사용되는 인코딩 방식
  • 1 byte: Standard ASCII
  • 2 bytes: Arabic, Hebrew, most European scripts
  • 3 bytes: Basic Multilingual Plane, 대부분 현대 글자
  • 4 bytes: All Unicode characters, 이모지 등
ord('A') # 65
ord('') # 44032
hex(ord('A')) # '0x41'
hex(ord(''))# 'Oxac00'
chr(44032) #'가'

Tokenization

  1. Subword 토크나이징
    • 자주 쓰이는 글자 조합을 한 단위로 취급
    • 자주 쓰이지 않는 조합은 subword로 쪼갠다
    • ”##”은 디코딩할 때 해당 토큰 앞 토큰에 띄어쓰기 없이 붙인다는 것을 의미
    • Byte-Pair Encoding
      • 데이터 압축용으로 제안된 알고리즘
      • 가장 자주 나오는 글자 단위를 다른 글자로 치환
      • 치환된 글자를 저장
      • Image

Looking into the Dataset

KorQuad 훑어보기

  1. 질문 유형 분포
    • 구문 변형: 56.4%
    • 어휘 변형(유의어): 13.6%
    • 여러 문장의 근거 활용: 19.6%
  2. 답변 유형 분포
    • 대상: 55.4%
    • 인물: 23.2%
    • 시간: 8.9%
    • 방법: 4.3%

업데이트:

댓글남기기