PStage MRC 7강 - Linking MRC and Retrieval
Introduction to Open-domain Question Answering (ODQA)
MRC는 지문이 주어진 상황에서 질의응답을 하는 과제이다. 이에 반해 ODQA는 비슷한 형태이지만, 지문 부분이 주어지는 것이 아니라 위키 혹은 웹 전체가 주어지게 되기 때문에 매우 많은 지문을 봐야하는 Large Scale 과제가 된다.
ODQA라는 문제는 꽤 예전부터 다루었던 문제이며, short answer with support의 형태를 목표로 했었다.
1) Question processing
질문으로부터 키워드를 선택하여 답변의 타입을 선택할 수 있도록 했다.
2) Passage Retrieval
기존 IR 방법을 활용하여 연관된 document를 뽑고, passage 단위로 자른 후 선별한다.
3) Answer processing
주어진 질문과 passage들 내에서 답을 선택하는 휴리스틱한 분류문제로 진행했다.
ODQA는 꽤 역사가 길며, 지금까지는 위와 같은 방식으로 진행되고 있었는데, 2011년 IBM Watson을 통해 발전하게 된다.
Retriever-Reader Approach
ODQA에서 가장 많이 쓰이는 approach로, DB에서 관련있는 문서를 검색하는 Retriever과 검색된 문서에서 질문에 해당하는 답을 찾아내는 Reader로 이루어진다.
학습 단계
Retriever
- TF-IDF, BM25 -> 학습없음
- Dense -> 학습필요
Reader
- SQuAD와 같은 MRC 데이터셋으로 학습
- 학습 데이터를 추가하기 위해서 Distant supervision 활용
Distant supervision
질문-답변만 있는 데이터셋에서 MRc 학습 데이터 만드는 방법. Supporting document가 필요함.
- 위키피디아에서 Retriever를 이용하여 관련성 높은 문서를 검색한다.
- 너무 짧거나 긴 문서, 질문의 고유명사를 포함하지 않는 등 부적합한 문서를 제거한다.
- answer가 exact match로 들어있지 않은 문서를 제거한다.
- 남은 문서 중에 질문과 (사용 단어 기준) 연관성이 가장 높은 단락을 supporting evidence로 사용한다.
Inference
- Retriever가 질문과 가장 관련성이 높은 k개의 문서 출력
- Reader는 k개의 문서를 읽고 답변 예측
- Reader가 예측한 답변 중 가장 score가 높은 것을 최종 답으로 사용
Issues and Recent Approaches
Different granularities of text at indexing time
위키피디아에서 각 passage의 단위를 문서, 단락, 또는 문장으로 정의할지 정해야 함
Retriever 단계에서 몇 개(top-k)의 문서를 넘길지 정해야 함
Granularity에 따라 k가 다를 수밖에 없음.
Single-passage training vs. Multi-passage training
k개의 passage들을 따로따로 보는 것이 아니라 retrieval이 가져온 문서 전체를 하나의 passage로 취급하여 reader모델이 그 안에서 answer span 하나를 찾도록 하는 것임. 다만 문서가 너무 길어지므로 GPU에 더 많은 메로리를 할당해야하고, 처리해야하는 연산량이 많아진다.
PStage MRC 7강 - Linking MRC and Retrieval
https://l-yohai.github.io/PStage-MRC-7-Linking-MRC-and-Retrieval/