강의소개
- 6강에서는 기계독해와 문서 검색을 연결해 Open-domain question answering (ODQA)를 푸는 방법에 대해 배워보겠습니다. 먼저 이번 기계독해 강의의 대회에서도 풀어야 할 ODQA가 무엇인지에 대해 알아보겠습니다. ODQA를 풀기 위한 접근법 중 하나는 1~3강에서 배운 기계독해 (reader) 방법과 4~6강에서 배운 문서검색 (retriever)을 붙이는 방법입니다. 이번 강의에서는 이런 retriever-reader approach에 대해 배워보고 실습해보겠습니다.
Further Reading
Introduction to Open-domain Question Answering(ODQA)
- MRC : 지문이 주어진 상태에서 질의에 해당하는 답을 찾는 문제
- ODQA : 하나의 지문이 아니라, wiki 등 웹 전체가 주어진 상황에서, 질의를 위한 지문을 찾고, 그 지문 내에서 답을 찾아야 함
- 봐야하는 문서의 개수이 매우 방대하며, 이러한 특성 때문에 MRC와는 조금 다름
- 최근 검색 엔진들을 보면, 연관문서 뿐만 아니라 질문의 답을 같이 제공하는 형태로 출력이 됨
최근 몇 년 사이에 다양한 모델들이 나왔고, 그 아래와 같이 성능이 많이 향상되는 모습을 볼 수 있음
Retriever-Reader Approach
- ODQA에서, 일반적이지만, 가장 많이 쓰이는 방법론!
Retriever-Reader 접근 방식
- 간단하게는, 1-3강에서 다룬 reader와 4-6강에서 다룬 retriever를 연결한 모델
- Retriever : DB에서 관련있는 문서를 검색함
- 입력 : 문서셋(document corpus), 질문(query)
- 출력 : 관련성 높은 문서(document)
- Reader : 검색된 문서에서 질문에 해당하는 답을 찾아냄
- 입력 : Retrieved된 문서(document), 질문(query)
- 출력 : 답변(answer)
학습 단계
- Retriever
- TF-IDF, BM25 : 학습 없음
- Dense : 학습 있음
- Reader
- SQuAD와 같은 MRC 데이터셋으로 학습
- 학습데이터를 추가하기 위해서 Distant supervision 활용
Distant supervision
- 질문-답변만 있는 데이터셋(CuratedTREC, WebQuestions, WikiMovies)에서 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의 정의가 명확하지 않음(문서,단락,문장 등)
- 위키피디아에서 각 Passage의 단위를 문서, 단락, 또는 문장으로 정의할지 정해야 함
- Retriever 단계에서 몇 개(top-k)의 문서를 넘길지 정해야 하는데, Granularity에 따라 k가 다를 수 있음
- e.g.) article: k=5, paragraph: k=29, sentence: k=78
Single-passage training vs Multi-passage training
- Single-passage
- k 개의 passage들을 reader가 각각 확인하고 특정 answer span에 대한 예측 점수를 출력하고, 이 중 가장 높은 점수를 가진 answer span을 고르도록 함
- Cons: 이 경우 각 retrieved passage들에 대한 직접적인 비교라고 볼 수 없음
- 따로 reader 모델이 보는 게 아니라 전체를 한번에 직접적인 비교 가능
- Multi-Passages
- retrieved passages 전체를 하나의 passage로 취급하고, reader 모델이 그 안에서 answer span 하나를 찾도록 함
- Cons: 문서가 길어지므로 GPU에 더 많은 메모리를 할당해야 하며, 처리해야 하는 연산량이 많아짐
Importance of each passage
- Retirever 모델에서 추출된 top-k passage들의 retrieval score를 reader model에 전달
- reader는 top-k에 해당하는 passage에서 정답을 추출하지만, 이 과정에서 retrieval score를 고려하여 최적의 정답을 추출할 때 더 좋은 성능을 보일 수 있음(물론 절대적인 것은 아님)