새소식

부스트캠프 AI Tech 4기

[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이 아닌 값의 위치와 값만 저장
    • 그러나 가장 큰 문제점은 유사성을 고려하지 못한다는 점

 

 

▮ 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와 상당히 유사하지만
    차이점은 MRCpassage와 question을 둘 다 input으로 넣어주는 반면
    Retrieval의 경우 각각의 Encoder에  passage와 question을 독립적으로 넣어주고 각각의 embedding을 구한다.
  • 또 다른 차이점은 MRCpassage 내 답변이 어디있을지 예측하기 위해 각 토큰 별로 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 모델)
  • 데이터 개선 (더 많은 데이터, 전처리, 등)

 

 

 

 

728x90
Contents