[ODQA] 5. Passage Retrieval - Dense Embedding
1. Introduction to Dense Embedding
2.Training Dense Encoder
3. Passage Retrieval with Dense Encoder
sparse embedding이 가지는 한계점들에 대해 알아보고, 이를 해결할 수 있는 dense embedding에 대해 설명한다.
Dense embedding의 개념을 알아보고, 어떻게 dense embedding을 학습하고 문서 검색을 수행할 수 있는지 설명한다.
1. Introduction to Dense Embedding
▮ Limitation of Sparse Embedding
- Passage Embedding : Passage를 벡터로 변환하는 것
- Sparse Embedding의 한계점
- 벡터의 크기는 아주 크지만 벡터 내에 실제로 0이 아닌 숫자는 상당히 적다.
(사실상 90% 이상의 dimension들이 보통은 0이되는 경우가 발생)
→ Compressed format으로 극복 가능 : 벡터 전체를 저장하지 않고 0이 아닌 값의 위치와 값만 저장 - 그러나 가장 큰 문제점은 유사성을 고려하지 못한다는 점
- 벡터의 크기는 아주 크지만 벡터 내에 실제로 0이 아닌 숫자는 상당히 적다.
▮ Dense Embedding
- Sparse Representation의 단점을 보완한다.
- 작은 차원의 고밀도 벡터(length = 50~1000)
- 각 차원이 특정 term에 대응하지 않는다.
- 대부분의 요소가 non-zero 값
▮ Retrieval : Sparse vs Dense
- Sparse Embedding
- 단어의 존재 유무를 retrieval 하는데는 유용하다.
- 임베딩이 구축되고 나서는 추가적인 학습이 불가능하다.
- dimension이 크므로 활용할 수 있는 알고리즘에 한계가 있다.
- Dense Embedding
- 단어의 유사성 또는 맥락을 파악해야하는 경우 유용하다.
- 학습을 통해 임베딩을 만들며 추가적인 학습 또한 가능하다.
- dimension이 비교적 작으므로 활용할 수 있는 알고리즘도 많다.
→ 최근 사전학습 모델의 등장, 검색 기술의 발전 등으로 인해 Dense Embedding 을 활발히 이용되고 있다.
→ 현업에서 Sparse Embedding도 많이 사용되지만 Sparse 혼자만으로 많은 것을 하기는 쉽지 않다.
▮ Overview of Passage Retrieval with Dense Embedding
Question Encoder는 question을 encoding하여 [CLS] 토큰에 해당되는 $h_{q}$ vector를 출력한다.
Passage Encoder도 passage를 encoding하여 [CLS] 토큰에 해당되는 $h_{b}$ vector를 출력한다.
두 벡터는 같은 size로 dot product를 통해 유사도를 계산할 수 있다.
훈련 대상은 BERT 부분의 Encoder이다.
두 Encoder의 architecture는 동일하다.
passage들 마다의 유사도 점수를 계산해서 가장 높은 점수를 가진 passage를 추려 MRC 모델에 전달한다.
2. Training Dense Encoder
▮ What can be Dense Encoder?
- BERT 와 같은 Pre-trained language model (PLM)이 사용된다.
그 외 다양한 neural network 구조도 가능하다. - BERT를 사용하는 방법은 MRC와 상당히 유사하지만
차이점은 MRC는 passage와 question을 둘 다 input으로 넣어주는 반면
Retrieval의 경우 각각의 Encoder에 passage와 question을 독립적으로 넣어주고 각각의 embedding을 구한다. - 또 다른 차이점은 MRC는 passage 내 답변이 어디있을지 예측하기 위해 각 토큰 별로 score를 계산하지만
Retrieval의 경우 embedding을 구하는 것이 목적이므로 [CLS] 토큰의 output만 구한다.
▮ Dense Encoder 구조
- 정답일 경우 유사도가 높아지도록, 정답이 아닐 경우 유사도가 낮아지도록 BERT를 학습한다.
- 학습목표
연관된 Question과 Passage의 Dense Embedding 간의 거리를 좁히는 것 (inner product 값을 높이는 것)
▮ Negative Sampling
- 연관된 Question과 Passage 간의 dense embedding 거리를 좁힌다. → Positive
- 연관되지 않은 Question과 Passage 간의 dense embedding 거리는 멀게한다. → Negative
▮ Choosing Negative Examples
- Corpus 내에서 랜덤하게 추출
- 헷갈리는 Hard Negative 샘플 추출
: 높은 TF-IDF score를 가지지만 정답은 아닌 sample
▮ Objective function
- Positive passage에 대한 negative log likelihood (NLL) Loss를 사용한다.
Positive passage score를 확률화 하기 위해 positive passage 와 question간의 Similarity score와 negative sample에 대한 Similarity score를 가져와 Softmax를 취한 값의 확률값을 negative log likelihood에 적용해서 학습한다.
▮ Evaluation Metric for Dense Encoder
- Top-k retrieval accuracy
: retrieve 된 passage 중에 답을 포함하는 passage 의 비율
3. Passage Retrieval with Dense Encoder
▮ From dense encoding to retrieval
Inference
: Passage 와 query를 각각 embedding 한 후, query로부터 가까운 순서대로 passage 의 순위를 매긴다.
▮ From dense encoding to ODQA
Retriever를 통해 찾아낸 Passage 을 활용해 MRC 모델로 답을 찾는다.
▮ How to make better dense encoding
- 학습 방법 개선 (e.g. DPR)
- 인코더 모델 개선 (BERT 보다 큰, 정확한 Pretrained 모델)
- 데이터 개선 (더 많은 데이터, 전처리, 등)