포스팅 개요
본 포스팅은 Open Domain Question Answering의 첫 번째 과정인 Passage Retrieval(단락 검색)에 대해 정리한 글입니다. passage의 embedding을 생성하는 두 가지 방식(sparse embedding, dense embedding)을 중심으로 정리하였습니다.
1. Introduction to Passage Retrieval
- Passage Retrieval
- 질문(query)과 연관있는 문서(passage)를 찾는 것
- Passage Retrieval with MRC
- Open-domain Question Answering
- 대규모의 문서 속에서 질문(query)에 대한 정답(answer)을 찾는 task
- 대규모의 문서 속에서 질문과 연관된 문서를 찾고 (passage retrieval), 해당 문서로부터 정답을 찾는 단계(MRC)로 세분화됨
- Open-domain Question Answering
- Overview of Passage Retrieval
- query와 passage들을 각각 embedding
- sparse embedding과 dense embedding으로 구분
- query와 각 passage들 간의 유사도 측정
- 유사도가 가장 높은 passage를 선택
- query와 passage들을 각각 embedding
2. Sparse Embedding
sparse embedding의 특징
- 각 차원이 각각의 term에 대응되므로, embedding vector의 차원이 전체 term의 개수와 일치함
- 사용되는 단어가 많아질수록 embedding vector의 차원이 커짐
- n-gram의 n이 커질수록 embedding vector의 차원이 커짐
- 같은 term이 사용된 경우를 정확하게 캐치해야 할 때 유용한 반면, 의미가 비슷한 다른 단어의 경우 비교 불가
Bag-of-Words (BoW)
TF-IDF
- TF-IDF (Term Frequency - Inverse Document Frequency)
- TF
- 문서 내 단어의 등장 빈도
- 문서에서 해당 단어가 등장한 횟수 / 문서의 전체 단어 수
- IDF
- 단어가 제공하는 정보의 양
- \(d f(t)=|\{d \in D: t \in d\}|\)
- \(i d f(d, t)=\ln \left(\frac{D}{1+d f(t)}\right)\)
- TF-IDF
- \(TF-IDF(t, d) = TF(t, d) * IDF(t)\)
- TF
BM25
- TF-IDF를 기반으로 하는 질문(query)와 문서(document) 간 유사도 지표
- \(\operatorname{Score}(D, Q)=\sum_{\text {term } \in Q} I D F(\text { term }) \cdot \frac{\operatorname{TFIDF}(\text { term }, D) \cdot\left(k_1+1\right)}{\operatorname{TFIDF}(\text { term }, D)+k_1 \cdot\left(1-b+b \cdot \frac{|D|}{\operatorname{avgdl} }\right).}\)
3. Dense Embedding
dense embedding의 특징
- 비교적 작은 차원의 고밀도 벡터로, 각 차원이 특정 term에 대응되지 않음
- 대부분의 요소가 non-zero
- sparse embedding vs dense embedding
sparse embedding dense embedding 각 차원이 각각의 term에 대응되므로, embedding vector의 차원이 전체 term의 개수와 일치하여 차원의 수가 비교적 큰 편 각 차원이 각각의 term에 대응되지 않으며, 비교적 작은 차원의 고밀도 벡터로 구성 중요한 term들이 정확히 일치해야 하는 경우 성능이 뛰어남 단어의 유사성 또는 맥락을 파악해야 하는 경우 성능이 뛰어남 embedding이 한 번 구축된 후로는 추가적인 학습이 불가능함 training을 통해 embedding을 형성하기 때문에 추가적인 학습이 가능함
Passage Retrieval with Dense Encoder
- overview of Passage Retrieval with Dense Encoder
- dense embedding을 생성할 encoder 훈련
- 질문(question)과 문서들(block)의 embedding 생성
- 질문과 각 문서 embedding간의 유사도를 추출한 후, 질문과의 유사도가 높은 k개의 문서를 선택함으로써 질문과 관련한 문서를 추출
Training Dense Encoder
- model
- 주로 BERT와 같은 Pre-trained Language Model (PLM)을 사용
- 그 외 다양한 neural network 구조 또한 사용 가능
- dense encoder의 학습 데이터
- question - passage 쌍
- dense encoder의 학습 목표
- 연관된 question과 passage의 dense embedding를 유사하다고 판단하는 것 = 두 embedding 간의 거리를 좁히는 것
- 연관된 question - passage의 dense embedding 간 유사도는 높아야 함 (positive)
- 연관되지 않은 question - passage의 dense embedding 간 유사도는 낮아야 함 (negative)
- corpus 내에서 랜덤하게 negative sample 추출
- 높은 TF-IDF값을 가지지만 답을 포함하지 않는 sample을 추출하는 등 비교적 난이도 있는 negative sample 추출
- → negative sampling을 통해 연관되지 않은 question - passage 데이터를 생성
- 연관된 question과 passage의 dense embedding를 유사하다고 판단하는 것 = 두 embedding 간의 거리를 좁히는 것
- dense encoder의 object function
- positive passage에 대한 negative log likelihood (NLL) loss
- dense encoder의 evaluation metric
- top-k retrieval accuracy: retrieve된 passage 중 정답을 포함하는 passage의 비율
'NLP > Concept' 카테고리의 다른 글
[NLP] Open Domain Question Answering: Linking MRC and Retrieval (0) | 2023.06.09 |
---|---|
[NLP] Passage Retrieval: Scaling Up (0) | 2023.06.07 |
[NLP] Machine Reading Comprehension (1) | 2023.06.06 |
[NLP] BERT basic (0) | 2023.05.05 |
[NLP] Beam Search (0) | 2023.04.03 |
댓글