Practice makes perfect!

Week 11 (5) Passage Retrieval - Dense Embedding 본문

Study/AI Tech

Week 11 (5) Passage Retrieval - Dense Embedding

na0dev 2021. 10. 14. 17:56

1. Introduction to Dense Embedding

TF-IDF와 같은 sparse embedding은 벡터의 크기는 아주 크지만 그 안에 0이 아닌 숫자는 아주 적음

벡터의 차원 수가 매우 큰 것은 compressed format으로 극복 가능하지만, 유사성을 고려하지는 못함.

이 단점을 극복하기 위해 dense embedding이 많이 사용됨

1) Complementary to sparse representations by design

  • 더 작은 차원의 고밀도 벡터 (length = 50-1000)
  • 각 차원이 특정 term에 대응되지 않음. 차원이 모두 합쳐져 벡터 스페이스 상에서의 위치가 의미를 나타내도록 복합/부분적인 의미를 가짐
  • 대부분의 요소가 non-zero값 (의미있는 값을 가짐)

2) Retrieval: Sparse vs Dense

sparse

  • 각 dimesion마다 하나의 원소에 대응되고 많은 요소가 zero값을 가짐. 단어의 존재 유무 등을 알아맞히기에는 유용하나, 의미적으로 해석하기는 어려움
  • 항상 dimension이 dense에 비해 크기 때문에 활용가능한 알고리즘에 한계가 있음
  • 장점 : 중요한 term들이 정확히 일치해야 하는 경우 성능이 뛰어남 -> 현업에서 sparse와 dense를 동시에 쓰는 방식으로 retrieval을 구축하기도 함
  • 단점 : 임베딩이 구축되고 나서는 추가적인 학습이 불가능함

dense 

  • 의미가 같더라도 다른 단어로 표현된 경우를 detect할 수 있는 방법론을 사용함
  • dense가 작아 활용가능한 알고리즘이 많음
  • 최근 사전학습 모델의 등장으로 dense embedding을 배우는 것이 용이해졌음 
  • 장점
    • 단어의 유사성 또는 맥락을 파악해야하는 경우 성능이 뛰어남
    • 학습을 통해 임베딩을 만들며 추가적인 학습 또한 가능함

2. Training Dense Encoder

 1) Dense Encoder

  • Dense Encoder로 BERT와 같은 Pre-trained language model (PLM)이 자주 사용됨
  • 그 외 다양한 neural network 구조도 가능
  • MRC에서는 passage와 question을 둘다 input으로 넣어줬던 반면에, dense encoder에서는 각각을 독립적으로 넣어줌 (각각의 임베딩을 구하기 위해)
  • 기존에는 passage 내에 답변이 어디있을 지 예측하기 위해 각 토큰별로 score를 내는 것이 목적이었다면, 이번에는 임베딩을 output 하는 것이 목적이기 때문에 [CLS] 토큰의 output 사용

Dense Encoder 구조

  • bert를 활용해 q와 p를 vector로 내보내고 유사도를 측정해 최종 유사 점수를 냄
  • 학습 시에는 bert를 fine-tune해 실제 정답 p는 유사도 점수가 높게, 아닌 것은 유사 점수가 -로 갈 수 있도록 학습함

2) Dense Encoder 학습 목표와 학습 데이터

  • 학습목표 : 연관된 question과 passage dense embedding 간의 거리를 좁히는 것 (= inner 
    product를 높이는 것 = higher similarity)
  • Challenge : 연관된 question / passage를 어떻게 찾을 것인가? -> 기존 MRC 데이터셋을 활용
  • 관련없는 passage는 random하게 샘플링, 관련있는 passage는 question이 속해있던 passage를 활용해 한쪽은 거리를 좁히고, 한쪽은 거리를 멀리하는 방식으로 학습 진행함.

Negative Sampling

  • 연관된 question과 passage 간의 dense embedding 거리를 좁히는 것 (higher similarity) ⇒ Positive
  • 연관 되지 않은 question과 passage간의 embedding 거리는 멀어야 함 ⇒ Negative
  • Choosing negative examples
    1. Corpus 내에서 랜덤하게 뽑기
    2. 좀 더 헷갈리는 negative 샘플들 뽑기 (ex. 높은 TF-IDF 스코어를 가지지만 답을 포함하지 않는 샘플 <- 모델입장에서 구분하기 어려운 샘플)

Evaluation Metric for Dense Encoder

  • Top-k retrieval accuracy : retrieve 된 passage 중에 답을 포함하는 passage의 비율
  • extractive mrc에서는 passage내에 답이 없으면 절대 답을 낼 수 없음 -> upper bound

3. Passage Retrieval with Dense Encoder

From dense encoding to retrieval
Inference : Passage와 query를 각각 embedding한 후, query로부터 가까운 순서대로 passage의
순위를 매김

 

From retrieval to open-domain question answering
Retriever를 통해 찾아낸 Passage를 MRC (Machine Reading Comprehension) 모델에 넣어 답을
찾음.

 

How to make better dense encoding

 

Dense Passage Retrieval for Open-Domain Question Answering

Open-domain question answering relies on efficient passage retrieval to select candidate contexts, where traditional sparse vector space models, such as TF-IDF or BM25, are the de facto method. In this work, we show that retrieval can be practically implem

arxiv.org

  • 인코더 모델 개선 (BERT보다 큰, 정확한 Pretrained 모델)
  • 데이터 개선 (더 많은 데이터, 전처리, 등)

 

* competition하면서 올바른 문서를 찾아오는 방법을 개선하는 것이 중요

 

반응형
Comments