Mrc_intro
MRC란?
- Machine Reading Comprehesion
- 주어진 지문(Context)를 이해하고, 주어진 질의(Query/Question)의 답변을 추론하는 문제
- 검색과 다른 이유
- 질문을 던지고 지문이 주어짐을 가정
- Extractive Answer Datasets
- 질의(question)에 대한 답이 항상 주어진 지문(context)의 segment(or span)에 존재한다는 가정
- Descriptive/Narrative Answer Datasets
- 답이 지문 내에서 추출한 span이 아니라, 질의를 보고 생성된 sentence(or free-form)의 형태로 존재
- MS MARCO
- Mutiple-choice Datasets
- 질의에 대한 답을 여러 개의 answer candidates 중 하나로 고르는 형태
- MRC의 시작점
- MCTest, RACE, ARC, etc.
MRC에서 해결해야하는 문제
- Paraphrased paragraph
- 단어들의 구성이 유사하지는 않지만 동일한 의미의 문장을 이해
- 같은 의미를 나타내는 다른 단어 구성
- coreference resolution
- 대명사가 무엇을 지칭하는지 알아내는 것
- Unanswerable questions
- 질문의 답이 지문에 없는 경우 “No Answer”이라는 답변을 내야하는데 틀린 대답을 내놓음
- Multi-hop reasoning
- 여러 개의 document에서 질의에 대한 supproting fact를 찾아야지만 답을 찾을 수 있는 문제
- HtpotQA, QAngaroo
MRC의 평가방법
- Exact Match
- Accuracy
- 예측한 답과 ground-truth가 정확히 일치하는 샘플의 비율
-
F1 Score
- Partial Score
- token overlap을 계산한 점수
- 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
- Subword 토크나이징
- 자주 쓰이는 글자 조합을 한 단위로 취급
- 자주 쓰이지 않는 조합은 subword로 쪼갠다
- ”##”은 디코딩할 때 해당 토큰 앞 토큰에 띄어쓰기 없이 붙인다는 것을 의미
- Byte-Pair Encoding
- 데이터 압축용으로 제안된 알고리즘
- 가장 자주 나오는 글자 단위를 다른 글자로 치환
- 치환된 글자를 저장
Looking into the Dataset
KorQuad 훑어보기
- 질문 유형 분포
- 구문 변형: 56.4%
- 어휘 변형(유의어): 13.6%
- 여러 문장의 근거 활용: 19.6%
- 답변 유형 분포
- 대상: 55.4%
- 인물: 23.2%
- 시간: 8.9%
- 방법: 4.3%
댓글남기기