
질문의 답변이 항상 주어진 지문 내에 Span(부분)으로 존재하는 Task
(ex) SQuAD, KorQuAD, NewsQA, Natural Questions 등
Exact Match
F1-score
입력 시퀀스 중에서 무시할 Token을 표기하기 위한 값
0은 무시할 Token, 1은 연산에 포함될 토큰을 의미함
주로 [PAD] 같은 의미 없는 특수토큰을 무시하기 위해 활용됨
입력이 2개 이상의 Sequence일 때 각각에게 ID를 부여하여 모델이 구분하여 해석할 수 있도록 유도함
[PAD]는 편의상 0을 줌
(ex) 질문 + Document를 합쳐서 Input으로 줄 때 질문 Token type ID를 0으로, Document Token type ID를 1로 지정해서 모델에 넘겨주는 형식
문장을 Tokenizing하여 변환된 값
Extraction-based MRC는 Start Index를 찾는 문제로 치환할 수 있음
End Position < Start Position
예측한 위치(Index)가 Context 범위를 벗어남
미리 설정한 max_answer_length보다 긴 답을 반환
Prediction에서 Score가 가장 높은 N개를 찾음
불가능한 답 제거
가능한 조합들을 점수 합이 큰 순서대로 정렬
Score가 가장 큰 조합을 최종 예측으로 선정
주어진 지문과 Question을 보고 답변을 "생성"하는 Task
정답의 위치를 파악하지 않아도 됨
EM이나 F1-score 활용
"생성" 문제이므로 BLEU Score 등을 활용하기도 함
Token Type Ids는 필요 없음
"Search" 문제가 아니므로 시작 토큰 위치를 반환하지 않아도 됨
Loss 계산
MRC 모델 구조
생성 문제이므로 불가능한 답변에 대한 조건이 매우 적음
Greedy Search, Exhaustive Search, Beam Search 등 많은 방법을 활용해 단어(혹은 Sentence) 후보를 구할 수 있음
Greedy Search : 현재 예측한 단어 다음에 나올 확률이 가장 높은 단어로 예측
Exhaustive Search : 모든 단어에 대하여 모든 방법을 고려하는 방법
Beam Seach : Exhaustive Search + Greedy Search