MRC는 지문이 주어진 상황에서의 질의응답이라고 볼 수 있다.
ODQA는 지문이 따로 주어지지 않고 위키피디아 혹은 Web의 모든 문서들과 같이 방대한 World Knowledge에 기반한 질의응답이다. 실제로 ODQA를 활용해서 서비스를 하고 있는 회사들이 있는데 대표적으로 구글의 검색엔진에는 연관문서 뿐만 아니라 질문의 대한 답을 같이 제공하고 있다.
Retriever : 데이터베이스에서 관련있는 문서를 검색
Reader : 검색된 문서에서 질문에 해당하는 답을 찾아냄
Retriever의 입력값은 문서셋(Document corpus)와 질문으(query)로 이루어져 있고 질문과 관련성 높은 문서를 출력하게 된다.
Reader의 입력값은 Retrieved된 문서와 질문으로 이루어져 있으며 적절한 답변을 출력하게 된다.
Retriever
Reader
Distant supervision
질문-답면만 있는 데이터셋에서 MRC 학습 데이터를 만들기.
1. 위키피디아에서 Retriever를 이용해 관련성 높은 문서 검색
2. 너무 짧거나 긴 문서, 질문의 고유명사를 포함하지 않는 등 부적합 문서 제거
3. answer가 EM로 들어있지 않은 문서 제거
4. 남은 문서 중 질문과 연관성이 가장 높ㅇ느 단락을 supporting evidence로 사용
위키피디아에서 Passage의 단위를 문서, 단락 또는 문장으로 정의할지 정의해야 한다.
Retriever 단계에서 몇개(top-k)의 문서를 넘길지 정의해야 한다.
Granularity에 따라 k가 다를 수 밖에 없다.
(e.g. article : 5, paragraph : 29, sentence: 79)
현재 k개의 passages들을 reader가 각각 확인하고 특정 answer span에 대한 예측 점수를 나타내고 이 중 가장 높은 점수를 가진 answer span을 고르도록 한다. 하지만 이 경우 retrieved passages들에 대한 직접적인 비교라고 볼 수 없다.
retreved passages 전체를 하나의 passage로 취급하고 reader 모델이 그 안에서 answer span 하나를 찾도록 하는 방식을 Multi-passage라고 부른다. 하지만 문서가 너무 길어지므로 GPU에 더 많은 메모리를 할당해야하고 연산량이 증가하는 단점이 있다.
Retriever 모델에서 추출된 top-k의 score까지 reader에 전달하여 score까지 고려한 reader도 연구되고 있다.