[NLP] Machine Reading Comprehension

hyunsooo·2022년 12월 19일
0

MRC(Machine Reading Comprehension)란 쉽게 말해 어떤 질문에 대하여 주어진 본문을 이해하여 적절한 답을 찾는 Task이다.

Introduction to MRC

MRC의 개념

MRC는 한국말로 기계독해라고 표현할 수 있다. 주어진 지문(Context)를 이해하고, 주어진 질의(Query/Question)의 답변을 추론하는 문제이다.
모델은 본문과 질의를 읽고(reading) 이해하여(comprehension) 적절한 Answer를 나타내는게 목표이다.
추후에 자세히 알아보겠지만 현재 처럼 주어진 본문에 대해서 이해하는것 뿐만 아니라 주어진 본문이 없이 질의에 대하여 거대한 정보들(위키피디아)에서 적절한 답을 찾는 문제도 존재한다(Open Domain Question Answering).

MRC의 종류와 평가방법

Extractive Answer Datasets

질의(question)에 대한 답이 항상 주어진 지문(context)의 segment(or span)으로 존재하는 경우이다.
유사한 Task로 Cloze Tests가 존재하는데 쉽게 말해 빈칸을 뚫어 놓고 빈칸에 적절한 단어를 본문에서 찾는 문제이다. Question Answering은 더 나아가 실제 질문 형태의 질의에 적절한 답변을 지문안에서 찾는 문제이다. 이런 방식을 채택하는 datasets으로 SQuAD, KorQuAD, NewsQA, Natural Questions, etc등이 존재한다.

Descriptive/Narrative Answer Datasets

사실 꼭 지문내에 존재하지 않을 수 있다. 답이 지문 내에서 추출한 span이 아니라 질의를 보고 생성 된 sentence(or free-form)의 형태인 경우
MS MARCO, Narrative QA, etc

Multiple-choice Datasets

질의에 대한 답을 여러 개의 answer candidates 중 하나를 고르는 형태로 쉽게 말해 질의에 대해 다지선다에서 하나를 고르는 문제이다.
MCTest, RACE, ARC, etc

Challenges in MRC

paraphrasing

단어들의 구성 유사하지는 않지만 동일한 의미의 문장을 이해하기.
비교적 질의와 구성이 비슷한 문장인 경우 모델이 이해하기 쉬울 수 있지만 그렇지 않은 경우 모델이 이해하기 힘든 현상이 일어난다.

Coreference Resolution

Coreference란 그 사람, 그것과 같이 사물이나 사람을 지칭하는 용어를 말한다. 실제로 모델은 이러한 단어를 이해하기 쉽지 않은데 이것을 이해하지 않으면 지문을 이해할 수 없는 경우가 많기 때문에 모델에게 제대로 이해시키려고 하는게 하나의 도전이다.

Unanswerable questions

주어진 지문에서는 질의에 대한 답을 찾을 수 없는 경우가 존재한다. 모델입장에서는 문법적으로나 질의에 사용된 토큰이 존재한다는 것만으로 잘못된 답을 내놓는 경우가 있다. SQuAD 2.0같은 경우 "No Answer"에 대해서도 학습하게 된다.

Multi-hop reasoning

어떠한 질문에 대해 답을 하기 위해서는 여러 개의 document에서 정보를 찾아야 답을 낼 수 있는 경우

평가 방법

Exact Match

예측한 답과 groud-truth가 정확하게 일치하는 sample의 비율

(Number of correct samples)(Number of whole samples)\frac{\text{(Number of correct samples)}}{\text{(Number of whole samples)}}

F1 Score

예측한 답과 ground-truth 사이의 token overlap을 계산

ROUGE-L / BLUE (생성에 적절한 평가지표)

ROUGE-L : LCS (Longest common subsequence)기반
BLEU-n : uniform n-gram weight

Unicode

Unicode란 전 세계의 모든 문자를 일관되게 표현하고 다룰 수 있도록 만들어진 문자셋이다. 각 문자마다 숫자 하나에 매핑하게 된다.

U+AC00\text{U+AC00}

U+ : 유니코드를 뜻하는 접두어
AC00 : 16진수 Code point

인코딩 & UTF-8

인코딩이란 문자를 컴퓨터에서 저장 및 처리할 수 있게 이진수로 바꾸는 것을 의미한다.
UTF-8이란 Unicode Transformation Format의 약자로 문자 타입에 따라 다른 길이의 바이트를 할당하는 인코딩 방식이다.

1 bytes : Standard ASCII

2 bytes : Arabic, Hebrew, most European scripts

3 bytes : BMP(Basic multilingual Plane) - 대부분 현대 글자(한글포함)

4 bytes : ALL Unicode characters - 이모지 등

Looking into the Dataset

KorQuAD

  • LG CNS가 공개한 질의응답/기계독해 한국어 데이터셋

  • 1,550개의 위키디피아 문서에 대해서 10,649 건의 하위 문서들과 크라우드 소싱을 통해 제작한 63,952개의 질의응답 쌍으로 구성되어 있다.

  • 현재 v1.0, v2.0이 공개되었다. 2.0버전은 보다 긴 분량의 문서가 포함되어 있으며 자연어 뿐만 아니라 복잡한 표와 리스트 등을 포함하는 HTML 형태로 표현되어 있어서 전체 구조에 대한 이해가 필요하다.

profile
지식 공유

0개의 댓글