본문 바로가기

Paper

[논문] Dense passage retrieval for Open-Domain QA

original paper: https://arxiv.org/pdf/2004.04906.pdf


Abstract

Open-domain question answering에서는 후보 context를 고르기 위한 passage retrieval 중요. 기존에는 TF-IDF와 같은 spare vector model 사용. 본 논문에서는 dual-encoder 모델을 활용한 dense passage retrieval 제시.

 

Intro

QA system

- context retriever: 질문에 대한 답을 포함하는 passage subsets을 고름

- reader: context retriever에서 고른 후보들 평가

Retrieval

- 기존에 사용하던 sparse vector model 보다 dense model을 사용하면 표현력을 높일 수 있고, 임배딩이 고정된 LUT이 아닌 trainable 한 장점이 있다.

 

Dense passage retriever

서로 다른 인코더(BERT) $E_Q, \ E_P$ 사용해서 question, passage를 d 차원에 임배딩 시킴. 모델의 목적은 question이 주어졌을 때 관련이 높은 k개의 passage를 추출하는 것. 논문에서는 두 임배딩 간 유사성을 다음과 같이 내적을 통해 구한다.

Encoder 

- BERT 사용, [CLS] token output을 임배딩 값으로 사용

- 임배딩 matrix 차원: (batch_size x embed_dim)

Inference

- 모든 passage를 학습된 $E_P$에 임배딩 시키고 FAISS를 이용해 index를 달아준다.

- Index를 통해 question이 주어졌을 때 가까운 passage 벡터를 빠르게 inference 할 수 있음

 

Training

The goal is to create a vector space such that relevant pairs of questions and passages will have smaller distance

- 관련있는(positive) question, passage는 가깝게, 관련 없는(negative) question, passage는 멀게 임배딩

- 하나의 positive sample과 n개의 negative sample을 하나의 instance로 학습

negative log likelihood loss

In-batch negative

따로 positive, negative 샘플 지정 안 하고 batch 안에서 계산하는 방법, 빠르고 효과적인 training method. $Q$, $P$를 각각 임배딩 된 question, passage라고 할 때(batch_size: B, embed_dim: d), 다음과 같이 loss를 계산한다.

$S$에 softmax 취한 뒤, 대각 원소 인덱스를 target으로 nll loss 계산한다.