(7강) Linking MRC and Retrieval
retriever와 reader로 ODQA(Open Domain Question and Answering) 문제 풀기
ODQA란?
retriever-reader approach
[Reference and Further reading]
1. Introduction to Open-Domain Question Answering(ODQA)
1.1. ODQA
MRC는 지문이 주어진 상황에서 질의응답을 하는 것이다. 반면 ODQA의 경우 지문이 따로 주어지지 않고 방대한 World Knowledge (가령 위키피디아 데이터)에 기반해서 질의 응답을 하게 된다
1.2. History
Text retrieval conference(TREC) - QA Tracks(1999-2007)
연관문서만 반환하는 information retrieval(IR)에서 더 나아가서, short answer with support형태가 목표
Question processiong + Passage retrieval + Answer processing
Question processing: 질문을 어떻게하면 가장 잘 이해할 수 있을까?
Query formulation: 질문으로부터 키워드를 선택 / Answer type selection
Passage retrieval: 기존의 IR방법을 활용해서 연관된 document를 뽑고, passage단위로 자른 후 선별(Named entity / Passage 내 question 단어의 개수 등과 같은 hand-crafted features 활용)
Answer processing
Hand-crafted features와 heuristic을 활용한 classifier
주어진 question과 선별된 passage들 내에서 답을 선
IBM Watson(2011)
The DeepQA Project
Jeopardy(TV quiz show) 우승
그 후
2. Retriever-Reader Approach
그동안 배운 1~3 + 4~6 강을 활용한 모델
Retriever: 데이터 베이스에서 관련있는 문서를 검색
Input: document corpus + query
output: document with heigh similarity
TF-IDF, BM25 -> no train
Dense -> train with qa-dataset
Reader: 문서내에서 질문에 대한 답을 찾음
Input: Retrieved document + query
output: answer
SQuAD와 같은 MRC 데이터 셋으로 학습
학습 데이터를 추가하기 위해 Distant supervision을 활용
Distant supervision: 질문-답변만 있는 데이터셋에서 MRC 학습 데이터 만들기, Supporting document가 필요함.
위키피디아에서 Retriever를 이용해 관련성 높은 문서를 검색
짤거나 긴, 고유명사를 포함하지 않는등 부적합한 문서를 제거
answer가 exact match로 들어있지 않은 문서 제거
남은 문서중에 질문과 연관성이 가장 높은 단락을 supporting evidence로 사용
💭 문서를 만들어 주는 기법.
Inference
Retriever가 질문과 가장 관련성 높은 5개의 문서를 출력
Reader는 5개 문서를 읽고 답변 예측
Reader가 예측한 답변 중 가장 score가 높은 것을 최종 답으로 사용함
💭반복되는 내용인것 같다. MRC Task의 경우 크게 Retriever와 Reader로 나뉘게 되고
Retriever를 통해 관련된 문서를 탐색
Reader를 통해 탐색된 문서 안에서 질문에 대한 정답을 찾기
3. Issues & Recent Approaches
3.1. Different granularities of text at indexong time
위키피디아나 웹 문서에는 Passage의 단위를 구분짓기가 명확하지 않다. 이를 어떻게 단위를 잡을지 정해야한다.
Article(5.08 m), Paragraph(29.5m), Sentence(75.9m)
Retriever단계에서 몇개 (top-k)의 문서를 넘길지 정해야함. Passage를 나누는 기준에 따라 잡기 마련이다.
article(5), paragraph(29), sentence(75)
3.2. Single-passage vs Multi-passage training
기존 single passage인 경우 retrieved 된 k개들의 passage에 대해 각각 reader로 확인하고 answer의 예측점수를 나타내게 된다. 이 방법은 각 passages들에 대한 비교는 아니라고 할 수 있어 이 passage들을 하나로 취급해서 answer를 찾는 방식이 Multi-passage 학습니다.
문제점으로는 문서가 너무 길어져서 GPU의 메모리 할당량과 연산량이 많아진다는 것이 있다.
3.3. Importance of each passage
Retriever 모델에서 추출된 top-k passage들의 retrieval score를 reader 모델에 전달한다.
reader 모델이 최종 모델의 점수를 고를때, retriever모델의 점수를 가중치를 부여하는 것이 더 좋은 성능을 나타내곤 한다.
실습코드 Link
지금까지 배운 Retriever와 Reader 모델을 붙이는 과정을 실습한다.
https://drive.google.com/file/d/1paHmsxLIVSVUgH3fRX6TQo-iDrvaIdY5/view?usp=sharing
Last updated