-
Introduction to MRCNLP/MRC 2021. 10. 12. 13:04
MRC란?
주어진 지문 (Context)을 이해하고, 주어진 질의 (Query/Question)의 답변을 추론하는 문제
MRC의 종류
- Extractive Answer Datasets: 질의에 대한 답이 항상 주어진 지문의 segment/span으로 존재
- Descriptive/Narrative Answer Datasets: 답이 지문 내에서 추출한 span이 아니라, 질의를 보고 생성된 sentence의 형태
- Multiple-choice Datasets: 질의에 대한 답을 여러개의 answer candidate 중 하나로 고르는 형태
Challenges in MRC
- Paraphrase 된 문장을 이해해야함
- Coreference resolution → 대명사가 무엇을 의미하는지 알아야함
- 'No Answer'를 판단하기
- Multi-hop reasoning → 여러 개의 document에서 질의에 대한 supporting fact를 찾아야지만 답을 찾을 수 있음
MRC의 평가방법
- EM / F1 score: for extractive, multiple-choice datasets
- EM (Exact Match): 예측한 답과 ground-truth가 정확히 일치하는 샘플의 비율
- F1 Score: 예측한 답과 ground-truth 사이의 token overlap을 F1으로 계산
- ROUGE-L / BLEU: for descriptive answer datsets → Ground truth와 예측한 답 사이의 overlap을 계산
- ROUGE: 예측한 값과 ground-truth 사이의 overlap recall (ROUGE-L → LCS (Longest common subsequence) 기반
- BLEU: 예측한 답과 ground-truth 사이의 precision (BLEU-n → uniform n-gram weight)
Unicode & Tokenization
Unicode란 전 세계의 모든 문자를 일관되게 표현하고 다룰 수 있도록 만들어진 문자셋으로 각 문자마다 숫자 하나에 매핑한다.
인코딩 & UTF-8
인코딩이란 문자를 컴퓨터에서 저장 및 처리할 수 있게 이진수로 바꾸는 것
UTF-8은 현재 가장 많이 쓰는 인코딩 방식으로, 문자 타입에 따라 다른 길이의 바이트를 할당한다.
Python에서 Unicode 다루기
Python3 부터 string 타입은 유니코드 표준을 사용
https://kunststube.net/encoding/
ord & chr
ord: 문자를 유니코드 code point로 변환한다
chr: code point를 문자로 변환
Unicode와 한국어
한국어는 한자 다음으로 유니코드에서 많은 코드를 차지하고 있으며, 완성형, 조합형으로 나눌 수 있다.
- 완성형은 한국어의 자모 조합으로 나타낼 수 있는 모든 완성형 한글로 11,172자가 있으며
- 조합형은 조합하여 글자를 만들 수 있는 초, 중, 종성이다
토크나이징
텍스트를 토큰 단위로 나누는 것. 단어(띄어스기 기준), 형태소, subword 등 여러 토큰 기준이 사용된다
Subword 토크나이징
자주 쓰이는 글자 조합은 한 단위로 취급하고, 자주 쓰이지 않는 조합은 subword로 쪼갠다.
##은 디코딩을 할 때 해당 토큰을 앞 토큰에 띄어쓰기 없이 붙인다는 것을 의미한다.
BPE (Byte-Pair Encoding)
데이터 압축용으로 제안된 알고리즘.
- 가장 자주 나오는 글자 단위 bigram (byte pair)를 다른 글자로 치환
- 치환된 글자를 저장
- 1~2를 반복
KorQuAD란?
LG CNS가 AI 언어지능 연구를 위해 공개한 질의응답/기계독해 한국어 데이터셋
https://tv.naver.com/v/5564630
'NLP > MRC' 카테고리의 다른 글
Passage Retrieval - Scaling Up (0) 2021.10.13 Dense Embedding (0) 2021.10.13 Passage Retrieval (0) 2021.10.13 Generation based MRC (0) 2021.10.13 Extraction-Based MRC (0) 2021.10.12