[MRC] 03. Generation-based MRC

2022. 4. 27. 12:20Naver BoostCamp AI Tech 3기

Generation-based MRC는 Extraction-based MRC와는 달리 classification이 아닌 generation 문제이다.

question을 보고 answer를 생성해낸다.

Extractive answer dataset이라면, Extraction-based MRC와 동일하게 EM 및 F1-score로 평가받는다.

Generation-based MRC는 대략적으로 다음 그림과 같다.

Pre-processing

대부분은 Extraction-based MRC와 동일하다.

다만, special token에서는 Extraction-based MRC는 [CLS], [SEP], [PAD] 토큰을 사용하며, Generation-based MRC는 [PAD] 토큰을 사용하며, [CLS]와 [SEP]보다는 직접 자연어로 정해진 포맷으로 데이터를 생성한다. 다음 그림과 같다.

또한, Generation-based MRC에서 사용할 수 있는 BART는 입력 시퀀스에서 시퀀스 간 구분이 없어서, token_type_id를 사용하지 않는다.

 

Model

 

BART는 다음과 같은 구조이다.

Post-processing

 

Autoregressive하게 decoding하여 시퀀스를 생성해낸다.

실제로 답을 생성 시에는 search 방식(Greedy, Exhaustive, Beam)에 따라 다른데, 이 중 Beam Search가 정확도 및 속도 측면에서 가장 합리적인 선택이라 볼 수 있다.