-
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/
What Every Programmer Absolutely, Positively Needs to Know About Encodings and Character Sets to Work With Text
What every programmer absolutely, positively needs to know about encodings and character sets to work with text If you are dealing with text in a computer, you need to know about encodings. Period. Yes, even if you are just sending emails. Even if you are
kunststube.net
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
한국어 MRC 연구를 위한 표준 데이터셋(KorQuAD) 소개 및 B2B를 위한 MRC 연구 사례
NAVER Engineering | 발표자: 김명지, 임승영 (LG CNS) 발표월: 2019.1. - 평문 Q&A 뿐 아니라 구조화된 문서에 대한 Q&A를 위해 TableQA, TreeQA 모델이 나오게 된 배경 및 차이점 - LG CNS 연구 내용을 간략히 소개
tv.naver.com
'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