[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 ].
'Machine Learning > NLP' 카테고리의 다른 글
[code]BERT example code (0) | 2023.07.20 |
---|---|
자연어처리 흐름 한눈에 보기 (0) | 2023.07.07 |
[summary]what is Embedding? (0) | 2023.07.05 |
what is Encoder model, Decoder model, Encoder&Decoder model ??? (0) | 2023.07.05 |
[논문 리뷰]Fusion-in-Decoder(FiD) (0) | 2023.07.05 |