본문 바로가기
AI/딥러닝

[MRC] Extraction-based MRC

by 채채씨 2021. 10. 13.
728x90
반응형

 

Extraction-based MRC 정의

 

Extraction-based MRC는 아래 그림과 같이 질문의 답변이 항상 주어진 지문 내에 span으로 존재하는 것을 뜻한다. 

 

※ 데이터셋 SQuAD, KorQuAD, NewsQA, Natural Questions

 

 

위 데이터셋들은 HuggingFace Dataset에서 간편하게 받을 수 있다. HuggingFace_Datasets

 


 

Extraction-based MRC 평가 방법

 

1. Exact Match(EM) Score

 

예측값과 정답이 character단위로 완전히 일치하는 경우 1점을 부여하고, 하나라도 다르면 0점을 부여한다.

 

 

2. F1 Score

 

예측값과 정답의 overlap을 비율로 계산하여 점수를 부여한다. 0~1점 사이의 부분점수를 받을 수 있다.

 

 

 

 


 

Extraction-based MRC Overview 

 

 

Context와 Question이 input으로 들어가면 tokenizer를 통해 Context는 C_tok1, C_tok2, · · · , C_tokN이 되고, Question은 Q_tok1, Q_tok2, · · · , Q_tokN이 된다. 모든 토큰은 word embedding을 통해 벡터가 되어 Extraction-based MRC 모델에 들어간다. 모델을 통해 도출된 encoder embedding을 활용하여 score를 얻어 가장 확률이 높은 start position과 end position을 예측한다.

 


 

Preprocessing

 

 

■ Tokenization

 

 

 

■ Special Tokens

 

 

[SEP]이라는 Special Token을 추가하면, 토큰화된 후에도 Context와 Question을 구분할 수 있다.

 

 

 

■ Attention Mask

 

Attention Mask는 Attention을 연산할 때, 제외할 토큰을 표시한다. 보통 [PAD]와 같은 의미없는 special token을 무시하기 위해 사용하며 0이면 무시하고 1이면 연산에 포함한다.

 

 

 

■ Token Type IDs

 

Token Type IDs는 입력이 2개 이상의 시퀸스일 때 (예: 질문  & 지문), 각각에 ID를 부여하여 모델이 구분해서 해석하도록 유도한다.

 

 

 

■ 모델 출력

 

정답은 문서 내에 존재하는 연속된 토큰(span)이므로, span의 시작과 끝 위치를 알면 정답을 아는 것과 같다. 따라서 답안을 생성하기 보다는 시작과 끝 위치를 예측하는 Token Classification문제로 치환할 수 있다. 

 

 


 

Fine-tuning

BERT로 Fine-tuning하는 것을 보자. BERT의 Output은 각 token이 시작 위치일 확율과 끝 위치일 확률을 나타낸다. CrossEntropyLoss를 사용하여 시작 위치와 끝 위치에 대한 확률값들과 ground-truth의 차이를 계산한 후 평균내어 loss를 구한다.

 

 


 

Post-processing

 

1. 불가능한 답 제거하기

 

  • end position이 start position보다 앞에 있는 경우 (ex. start = 90, end = 80)
  • 예측한 위치가 context를 벗어나는 경우 (ex. question 위치에 답이 나온 경우)
  • 미리 설정한 max_answer_lenth보다 더 긴 경우

 

 

2. 최적의 answer 찾기

 

  • start / end position predection에서 score(logits)가 가장 높은 토큰 N개를 찾는다.
  • 불가능한 start / end 조합을 제거한다.
  • 가능한 조합들을 score 합이 큰 순서대로 정렬한다.
  • score가 가장 큰 조합을 최종 예측으로 선정한다.
  • Top-k가 필요한 경우 순서대로 내보낸다.

 


 

[reference]

 

 

728x90
반응형

댓글