1. 프로젝트 개요
Question Answering은 다양한 종류의 질문에 대해 대답하는 AI를 만드는 연구분야 입니다. 다양한 QA 시스템 중, Open-Domain Question Answering은 주어진 지문이 따로 존재하지 않고 사전에 구축되어 있는 Knowledge resource에서 질문에 대해 대답할 수 있는 문서를 찾는 과정이 추가되기 때문에 더 어려운 문제입니다. 네이버 커넥트재단 부스트캠프에서 개최한 대회에서 진행한 프로젝트입니다.
대회 기간
2022.12.19 ~ 2023.01.05
평가 방법
Exact Match (EM): 모델의 예측과, 실제 답이 정확하게 일치할 때만 점수가 주어집니다. 즉 모든 질문은 0점 아니면 1점으로 처리됩니다.
F1 Score: EM과 다르게 부분 점수를 제공합니다. 예를 들어, 정답은 "Barack Obama"지만 예측이 "Obama"일 때, EM의 경우 0점을 받겠지만 F1 Score는 겹치는 단어도 있는 것을 고려해 부분 점수를 받을 수 있습니다.
2. Open-domain question answering (ODQA)
지문이 따로 주어지지 않고, 방대한 World Knowledge에 기반해서 질의응답
Ex) Modern search engines: 연관문서 뿐만 아니라 질문의 답을 같이 제공
MRC: 지문이 주어진 상황에서 질의응답
2.1. History of ODQA
Text retrieval conference (TREC) QA Tracks(1999-2007)
연관 문서만 반환하는 Information Retrieval(IR)에서 더 나아가서, short answer with support 형태가 목표
1) Question processing
Query formulation: 질문으로부터 키워드를 선택
2) Passage retrieval
기존의 IR 방법을 활용해서 연관된 document를 뽑고, passage 단위로 자른 후 선별 (Named entity / Passage 내 question 단어의 개수 등과 같은 hand-crafted features 활용)
3) Answer processing
Hand-crafted features와 heuristic을 활용한 classifier 주어진 question과 선별된 passage들 내에서 답을 선택
2. 2. Retriever-Reader Approach
Retriever-Reader 접근 방식
Retriever: 데이터베이스에서 관련있는 문서를 검색(search) 함
- 입력
- 문서셋(Document corpus)
- 질문(query)
- 출력
- 관련성높은문서(document)
- TF-IDF, BM25 → 학습 없음
- Dense → 학습 있음
Reader: 검색된 문서에서 질문에 해당하는 답을 찾아냄
- 입력
- Retrieved된문서(document)
- 질문(query)
- 출력
- 답변(answer)
- SQuAD와 같은 MRC 데이터셋으로 학습
- 학습 데이터를 추가하기 위해서 Distant supervision 활용
Distant Supervision
- 목적: 질문-답변만 있는 데이터셋에서 MRC 학습 데이터(Supporting documents)를 만들기 위함
- 방법
- 위키피디아에서 Retriever를 이용해 관련성 높은 문서 검색
- 너무 짧거나 긴 문서, 질문의 고유명사를 포함하지 않는 등의 부적합한 문서 제거
- answer가 EM으로 들어잇지 않은 문서 제거
- 남은 문서 중 질문과 연관성이 가장 높은 단락을 supporting evidence로 채택!
Inference
- Retriever가 질문과 가장 관련성 높은 5개 문서 출력
- Reader는 5개 문서를 읽고 답변 예측
- Reader가 예측한 답변 중 가장 score가 높은 것을 최종 답으로 사용
2.3. Issues and Recent Approaches
Different granularities of text at indexing time
Retriever 단계에서 몇개 (top-k)의 문서를 넘길지 정해야 함
Granularity에 따라 k 가 다를 수 밖에 없음 (e.g. article → k=5, paragraph → k=29, sentence → k=78)
Single-passage training
(Single-passage): 현재 우리는 k 개의 passages 들을 reader이 각각 확인하고 특정 answer span에 대한 예측 점수를 나타냄. 그리고 이 중 가장 높은 점수를 가진 answer span을 고르도록 함
→ 이 경우 각 retrieved passages 들에 대한 직접적인 비교라고 볼 수 없음
Importance of each passage
Retriever 모델에서 추출된 top-k passage들의 retrieval score를 reader 모델에 전달
'Projects' 카테고리의 다른 글
[Open-domain question answering(ODQA)] 3. Retrieval Experiment - ElasticSearch(엘라스틱 서치) (0) | 2023.01.08 |
---|---|
[Open-domain question answering(ODQA)] 2. EDA, Pytorch Lightning Refactoring (0) | 2023.01.08 |
NLP 자동차 주제 데이터 제작 프로젝트 (0) | 2022.12.28 |
Relation Extraction(문장 내 개체간 관계 추출) 프로젝트 (1) | 2022.12.23 |
Semantic Text Similarity(문장 간 유사도 측정) 프로젝트 (0) | 2022.11.07 |