(4강) Passage Retrieval - Sparse Embedding
Last updated
Was this helpful?
Last updated
Was this helpful?
단어기반 문서 검색
문서 검색이란 어떤 문제인지에 대해 알아보고 문서를 검색하는 방법
검색을 위해 문서를 embedding 형태로 변환해주는 passage embedding 소개
sparse embedding, TF-IDF 에 대해 소개
[Reference + Further Reading]
Sklearn feature extractor ⇒ text feature extractor 부분 참고
질문(Query)에 맞는 문서(Passage)를 찾는 것.
open-domain Question Answering: 대규모의 문서중에서 질문에 대한 답을 찾는 Task
질문에 대한 문서를 찾는 passage retrieval
질문에 대한 답을 찾는 MRC
Query와 Passage를 임베딩한 뒤 유사도로 랭킹을 매기고, 유사도가 가장 높은 Passage를 선택
Passage에 대한 임베딩은 미리 만들어 두게 되고, 실시간으로 Query에 대한 임베딩을 통해 유사도를 측정한다.
nearest neighbor, 내적 곱 같은 탐색법을 사용한다.
passage embedding의 벡터공간
벡터화 된 passage를 이용하여 passage간의 유사도 등을 알고리즘으로 계산할 수 있
BoW를 구성하는 방법 -> n-gram
unigram(1-gram): It was the best of times => It, was, the, best, of, times
bigram(2-gram): It was the best of times => It was, was the, the best, best of, of times
Term value 를 결정하는 방법
Term이 document에 등장하는지(binary)
Term이 몇번 등장하는지 (term frequency), 등. (e.g. TF-IDF)
Dimension of embedding vector -> number of terms
등장하는 단어가 많아질수록 증가
N-gram의 n이 커질수록 증가 (최대 n제곱개만큼 커질 수 있음)
Term overlap을 정확하게 잡아 내야 할 때 유용하다.
실제로 그 단어가 문장에 포함되어있는지를 체크하기에 좋음
반면, 의미(semantic)가 비슷하지만 다른 단어인 경우 비교가 불가
Term Frequency (TF): 단어의 등장 빈도
Inverse Document Frequency (IDF): 단어가 제공하는 정보의 양
ex) It was the best of times
it, was, the, of : 자주 등장하지만 제공하는 정보량이 적음
best, times: 더 많은 정보를 제공
해당 문서 내 단어의 등장 빈도
Raw count
Adjusted for doc length: raw count / num words (TF)
Other variants: binary, log normalization
단어가 제공하는 정보의 양
DF(document frequency) = Term t가 등장한 document의 개수
the 같은 term은 모든 문서에 나타날 것이다. -> log1 = 0
N: 총 Document의 갯수
TF-IDF(t, d): TF-IDF for term t in document d
a, the 등의 관사는 위 3.3) 에서 본 것과 같이 DF의 값이 0에 가까워 TF-IDF 값이 작다.
자주 등장하지 않는 고유명사(사람이름, 지명)는 IDF값이 커지면서 전체적인 TF-IDF의 값이 증가한다.
위 두 가정은 많은 수의 document를 가질 때 일반적으로 나타나는 현상으로 봐야한다.
TF-IDF 의 개념을 바탕으로, 문서의 길이까지 고려하여 점수를 매김
TF 값에 한계를 두어 일정한 범위를 유지하도록 둠
평균적인 문서의 길이보다 더 은 문서에서 단어가 매칭된 경우 그 문서에 대해 가중치를 부여
실제 검색엔진, 추천 시스템 등에서 아직까지도 많이 사용되는 알고리즘