본문 바로가기
NLP/Concept

[NLP] Passage Retrieval

by iamzieun 2023. 6. 7.

포스팅 개요

본 포스팅은 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)로 세분화됨

  • Overview of Passage Retrieval
    1. query와 passage들을 각각 embedding
      • sparse embedding과 dense embedding으로 구분
    2. query와 각 passage들 간의 유사도 측정
    3. 유사도가 가장 높은 passage를 선택
     

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)\)
      → ‘a’, ‘the’와 같은 관사들은 TF가 높지만 IDF가 0에 가까운 값이 되어 TF-IDF가 작아지는 반면, 자주 등장하지 않는 고유명사의 경우 TF가 낮지만 IDF가 높아 TF-IDF가 커짐

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
    1. dense embedding을 생성할 encoder 훈련
    2. 질문(question)과 문서들(block)의 embedding 생성
    3. 질문과 각 문서 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 데이터를 생성

  • 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

댓글