Open-Domain Question Answering
위키피디아 문서를 retrieve해서 ODQA 해결
Learnable retriever
TF-IDF 간의 BM25라는 지표를 사용해서 검색
- TF-IDF 기반 검색 ⇒ Sparse한 retrieval
-
Sparse한 retrieval (질문과 응답문장 간의 키워드 자체가 동일한 경우에 잘 동작한다)
DPR : Dense Passage Retrieval
- Vector로 변환해서 검색 ⇒ Dense vector retrieval
-
질문과 응답 문장 간의 키워드가 bad guy ↔ villain 으로 달라도 잘 동작한다
BERT의 pre-trained된 embedding을 활용하는 기법
ICT pre-training
retriever를 학습시키는 과정에서 ICT (Inverse Cloze Task)라는 사전학습 수행
여러 문단 중 하나의 문단에서 임의로 문장을 빼내고 그 문장과 어떤 문단이 가장 유사도가 높은지를 계산해서 유사도를 구함
[단점]
- 연산에 부담
- 일반 문장이 질문을 대용할 수 있는지는 not completely clear
passage에서 뽑은 문장을 pseudo question이라고 하지만 질문이 아니라 일반 문장인데 question의 형태를 완전히 커버할 수 있는지에 대해 의문 - passage encoder는 freeze하고, question encoder와 reader model만 fine-tuning을 통해서 업데이트 하는데 context에 대한 임베딩이 update되지 않기 때문에 QA task에 있어 optimal한 solution이 아니다
→ DPR : 추가적인 pre-train없이 question + passage만 갖고 dense embedding model을 학습시킬 수 있는가에 집중
⇒ open-domain QA task에 있어 reader보다는 retrieval의 성능 향상을 도모
DPR
목적 : M개의 passage가 주어졌을 때 모든 passage에 대한 Index를 연속적인 저차원 공간에 매핑하는 것
(이 때 passage의 개수 M은 매우 크다)
그 안에서 question과 연관된 top-k개의 passage를 빠르게 효과적으로 추출
k = 20-100
Question에 대한 BERT embedding과 Passage에 대한 BERT embedding으로 이뤄짐
임베딩된 두 값을 비교해서 유사한 passage를 빠르게 추출
[Inference]
모델의 파라미터가 고정되어있기 때문에 벡터 간 similarity를 빠르게 계산할 수 있는 Faiss라이브러리를 사용해서 embedding vector를 미리 계산하고, 새로운 질문이 입력으로 들어왔을 때 질문과 연관된 passage를 빠르게 반환한다
[Training]
목적 : 연관된 question-passage끼리 가까운 공간에 위치하는 vector space 구축

하나의 question에 대해 negative example은 너무 많음(하나의 passage 제외한 대부분의 passage가 negative)
→ negative example에 대한 신중한 선택이 뛰어난 encoder를 만들 수 있음
Negative example 선정하는 방법
- Random : corpus에서 아무 passage 선택
- BM25 : 정답을 포함하지 않지만 정답인 token이 가장 많이 포함되는 passage
- Gold : 다른 question의 정답을 이 question의 negative example로 사용
in-batch negatives
하나의 question에 대해 할당된 negative example 이외에 다른 mini batch에 있는 정보도 negative sample로 활용할 수 있다
5개의 mini-batch로 구성된 question embedding
각 embedding의 size는 3
→ 5x3 metric Q
passage의 embedding도 3
5개의 각 질문과 대응하는 5개의 positive passage
→ 3x5 metric P^T
두 metric을 곱하면 5x5 metric S
metric S에서 색칠된 부분 = positive passage의 유사도
색칠 안된부분 = negative passage의 유사도

dpr에서 유사도 계산할 때 question은 출처가 어디인가?