(4강) Passage Retrieval - Sparse Embedding

newbie·2021년 10월 13일
0

강의소개

4강에서는 단어기반 문서 검색에 대해 배워보겠습니다. 먼저 문서 검색 (Passage retrieval)이란 어떤 문제인지에 대해 알아본 후, 문서 검색을 하는 방법에 대해 알아보겠습니다. 문서 검색을 하기 위해서는 문서를 embedding의 형태로 변환해 줘야 하는데, 이를 passage embedding 이라고 합니다. 이번 강의에서는 passage embedding이 무엇인지 알아보는 동시에, 단어 기반으로 만들어진 passage embedding인 sparse embedding, 그 중에서도 자주 쓰이는 TF-IDF에 대해 알아볼 예정입니다.

Further Reading


Introduction to Passage Retrieval

Passage Retrieval : 질문

  • (Query or question)이 주어졌을 때 DB에서 주어진 질문에 가장 적합한 문서(passage)를 찾는 것

Passage Retrieval with MRC

  • Passage Retrieval system을 MRC에 연결하면 Open-domain system 구축이 가능함
  • Open-domain Question Answering(ODQA) : 대규모의 문서 중에서 질문에 대한 답을 찾기
    • Passage Retrieval과 MRC를 이어서 2-stages의 pipeline으로 만들 수 있음
    • 답을 찾기 위한 정확한 지문을 전달해주는 모델과 지문 내에서 정답을 찾는 모델로 구성

Overview of Passage Retrieval

  • Query와 Passage를 임베딩 한 뒤 유사도로 랭킹(Similarity Ranking)을 매기고, 유사도가 가장 높은 Passage 선택

Passage Embedding and Sparse Embedding

Passage Embedding space

  • Passage Embedding의 벡터 공간
  • 벡터화된 Passage를 이용하여 Passage간 유사도 등을 알고리즘을 ㅗ계산 가능
  • inner product, cosine similirity 등으로 유사도를 측정해볼 수 있음

Sparse Embedding

  • Sparse는 Dense 반대말로, 0이 아닌 숫자가 상당히 적게 있는 것을 의미함
  • 대표적인 예로 BoW가 있음.
    • 문서를 embedding space로 mapping 시 문서에 존재하는 단어를 1, 아니면 0으로 표현하는데, 이 때 전체 vocab 기준으로 0의 개수가 1의 개수보다 상대적으로 매우 많다. 따라서 이러한 경우 1의 개수가 상대적으로 희박하므로 sparse하다라고 얘기할 수 있다.

Sparse Embedding 소개

    1. BoW를 구성하는 방법 : n-gram
    • unigram(1-gram), bigram(2-gram) 등
    1. Term value를 결정하는 방법
    • Term이 document에 등장하는지(binary)
    • Terrm이 몇 번 등장하는지(term frequency), 등(e.g. TF-IDF)

Sparse Embedding 특징

  1. Dimension of embedding vector = number of terms(=vocab size)
    • 등장하는 단어가 많아질수록 증가
    • N-gram의 n이 커질수록 증가
  2. Term overlap을 정확하게 잡아내야 할 때 유용 => 단어가 실제 문서 내에 포함되었는지 확인 가능
  3. 반면, 의미(semantic)가 비슷하지만 다른 단어인 경우 비교 불가

TF-IDF

TF-IDF(Term Frequency - Inverse Document Frequency) 소개

  • Term Frequency(TF) : 단어의 등장 빈도
  • Inverse Document Frequency (IDF) : 단어가 제공하는 정보의 양
    => 전체 정보에서, 특정 단어의 등장 빈도수가 높을수록 단어가 제공해주는 정보량이 적다고 판단

Term Frequency(TF)

  • 해당 문서 내 단어의 등장 빈도
    1. Raw count
    2. Adjusted for doc length : raw count / num words(TF)
    3. Other variants : binary, log normalization, etc.

Inverse Document Frequency (IDF)

  • 단어가 제공하는 정보의 양
  • IDF(t)=logNDF(t)IDF(t) = log \frac{N}{DF(t)}
    • Document Freqeuncy(DF) = Term t가 등장하는 document의 개수
    • N : 총 document 개수

Combine TF&IDF

  • TF-IDF(t,d) : TF-IDF for term t in document d
    • TF(t,d) X IDF(t)
  • a나 the등의 관사는 거의 모든 document에 존재하므로 TF는 높지만 IDF가 0으로 수렴하게 되므로, IF-IDF는 거의 0에 근접함
  • 자주 등장하지 않는 단어(고유명사 등)의 경우 IDF 값이 매우 커지므로 전체적인 IF-IDF 증가

TF는 document별 term을 고려하지만, IDF는 document 구분없이 구함

BM25란?

  • TF-IDF의 개념을 바탕으로, 문서의 길이까지 고려하여 점수를 매김
    • TF 값에 한계를 지정해두어 일정한 범위를 유지하도록 함
    • 평균적인 문서의 길이보다 더 작은 문서에서 단어가 매칭된 경우 그 문서에 대해 가중치를 부여
    • 실제 검색엔진, 추천 시스템 등에서 아직까지도 많이 사용되는 알고리즘
      Score(D,Q)=termQIDF(term)TFIDF(term,D)(k1+1)TFIDF(term,D)+k1(1b+bDavgdlScore(D,Q) = \sum_{term \in Q} IDF(term) \cdot \frac{TFIDF(term,D) \cdot (k_1 + 1)}{TFIDF(term,D)+k_1 \cdot (1-b+b \cdot \frac{|D|}{avgdl}}

MRC가 기존 RE Task와 다른 이유 중 하나가 바로 retrieval Model이 추가적으로 들어간다는 것을 다시 한 번 알게 되었으며, IF-IDF를 통해 관련 문서를 예측하는 과정을 실습을 통해 알게 되었다. 하지만 생각보다 점수가 높게 나오지 않고, elastric search나 다른 방식을 통해 구현하는 것들이 많은데 이 부분이 왜 그런지에 대해 추가로 학습을 해보고자 한다.

profile
DL, NLP Engineer to be....

0개의 댓글