Machine Learning/NLP

[논문리뷰]Dense Passage Retrieval for open-Domain Questionestions and passages Answering(2020)

뚜둔뚜둔 2023. 7. 5. 00:51

[paper]Dense Passage Retrieval for open-Domain Questionestions and passages Answering(2020)

질문이 주어졌을 때, 질문에 대한 답을 찾기 위해 위키피디아 문서에서 검색을 하고, 분석을 진행

🟨Open-domain Question Answering

질문과 위키피디아 안에서의 연관성을 찾아서 답을 찾아가는 과정

-> TF-IDF 와 BM25를 사용

🟨ORQA: Learnable retriever

학습하는 과정에서 질문과 유사한 문장을 찾는 것 ( 임베딩을 통해서 유사도를 산출) 

의미상 유사한 단어가 있어도 문장을 잘 파악해서 찾아냄.

🟨ORQA: Inverse Close Task(ICT)

Inverse Close Task(ICT) : 사전 학습을 먼저 진행

1. 각 Passage들을 가지고있고,각 Passage의 임의의 문장을 추출해 옴

2. 임의로 추출해온 문장이 그 Passage와 유사한지를 확인

3. 나머지 Passage와 유사한 context인지 확인  

=> 사전학습 Block encoder는 freezer, question encoder 만 fine-tuning 수행

 

Can we train a better dense embedding model using only pairs of questions and passages (or answers) without additional pertaining?

 

Abstract

open-domain question answering에서는 후보 context를 고르기 위한 passage retieval 중요

기존에는 TF-IDFdhk rkxdms spare vector model 을 사용

본 논문에서는 dual-encoder model을 활용한 dense passage retrueval 제시

Intro

  • QA system
    •  context retriever: 질문에 대한 답을 포함하는 passage subsets을 고름
    • reader: context retriever 에서 고른 후보들 평가
  • Retrueval
    • 기존에 사용하던 sparse vector model모다 dense model을 사용하면 표현력을 높일 수 있고, 임베딩이 고정된 LUT이 아닌 trainable한 장점이 있음

Dense passage retriever

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

  • Encoder
    • BERT 사용 [CLS] token output을 임베딩 값으로 사용
    • embedding matrix 차원: (batch_size x embed_dim)
  • Inference
    • 모든 passage를 학습된 Ep에 임베딩 시키고 FAISS를 이용해 index를 달아 줌
    • Index를 통해 question이 주어졌을 때 가까운 passage 벡터를 빠르게 inference 할 수 있음
    • Faiss라이브러리를 사용하여 passage encoder의 임베딩 벡터 미리 계산

 

Traning

 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 로 학습
  •  
  • 목적 : 연관된 question-passage끼리 가까운 공간에 위치하는 vector space 구축

DPR - training(1) : positive/ negative passages

  • Negative example을 선정할 수 있는 범위가 너무 넓음
  • Negative example에 대한 신중한 선택이 뛰어난 encoder를 만들 수 있음

DPR - training(2) : in-batch negatives

  • 간단하고 메모리 효율적이다
  • 각 문장과 정답(?)문장을 제외한 것들은 다 오답지로 사용할 수 있다 

 

 

 

참고 : 고려대학교 산업경영공학부 DSBA 연구실 [ https://www.youtube.com/watch?v=u4GE0sloBQU ]. 

참고 : https://hyunlee103.tistory.com/123

반응형