본문 바로가기

boostcamp AI tech/boostcamp AI

Passage Retrieval - Sparse Embedding, TF-IDF

728x90

open domain question answering 시스템의 첫 부분이다. query가 들어왔을 때 질문과 관련된 지문을 대규모의 문서 중에서 선별하는 단계를 말한다. MRC 모델은 선별된 지문을 읽고 정답을 찾게 된다.

대략적인 passage retrieval의 단계는 위와 같다. 질문 문장과 passage를 각각 vector로 임베딩을하고 두 임베딩 벡터간의 유사도가 높은 passage를 선별한다.

문장과 지문들을 벡터로 변환한다는 건 고차원 vector space에서 하나의 점으로 매핑이 가능하다는 말이다. 직관적인 거리 혹은 inner product 연산을 통해 유사도를 계산할 수 있다.

 

이어서 문장, 문단을 vector로 임베딩하는 방법론들을 알아보자.

 

1. Sparse Embedding

문장에 포함된 단어들의 등장 여부를 기록하는 vector를 만드는 방법이다. vector의 차원은 vocab의 크기가 된다. 이를 Bag of Words라고 한다.

위 그림의 예시는 unigram 방식이다. bigram방식으로 BoW를 구성한다고 하면 'It was' 가 1이 되고 'was the'가 1이 된다. 하지만 단어가 많을 수록 벡터의 차원이 기하급수적으로 커진다.

단어가 단순히 등장했다/안했다를 1/0으로 나타낼 수도 있지만 등장 횟수를 벡터에 담을 수도 있다. TF-IDF는 좀 더 advanced한 방법이다.

 

이런 sparse embedding의 경우 정확히 query에 담긴 단어가 context에 포함되어 있는지 알기 쉬우나 semantic한 유사성을 잡아내지 못한다는 단점이 있다.

 

2. TF-IDF (Term Frequency - Inverse Document Frequency)

TF는 단어의 등장 빈도를 의미한다.

단순히 단어의 등장 횟수를 기록할 수도 있지만(Raw Count) normalization을 적용해서 전체 문서에서 단어가 차지하는 비중을 기록할 수도 있다.

IDF는 단어가 제공하는 정보의 양을 의미한다. 어떤 단어가 모든 document에서는 자주 등장하지 않는데 특정 문서에서는 자주 등장한다면 그 단어는 중요한 정보라고 볼 수 있다.

it was 같은 단어는 거의 모든 문장에 들어가 있을 수 있다. 그럼 it 같은 term의 DF('it')는 매우 클 것이고 IDF('it')은 작은 값을 갖는다. 반대로 security같은 단어를 예로 들면 DF('security')는 작은 값을 가지고 IDF('security')는 큰 값을 갖게 된다.

최종 TF-IDF 스코어는 둘의 곱으로 계산된다. 자주 등장하는 a, the같은 경우 TF는 높을 수 있지만 IDF가 0에 가까울 것이다. 사람 이름 같은 고유명사 같은 경우는 TF가 낮더라도 IDF가 클 것이다.

 

3. TF-IDF 구해보기

실험 데이터는 위와 같다.

문서들의 TF를 구해보면 위와 같다.

문서들의 IDF를 구했다. '주연은'의 경우는 모든 문서에 등장 빈도가 높기 때문에 IDF 스코어가 낮은게 보인다.

두 테이블을 곱해서 TF-IDF 스코어를 구해보자. 각 문서가 가진 고유한 단어가 TF-IDF가 높은 걸 볼 수 있다. 반대로 자주 출현하는 단어는 tf-idf score가 낮다.

이제 임베딩은 끝났다. 사용자의 질의(Q)와 가장 유사도가 높은 문서(D)를 구할때 대표적으로 cosine 유사도를 (Inner product) 활용할 수 있을 것이다.

 

4. BM25

TF-IDF를 바탕으로 문서의 길이까지 고려하여 스코어를 구하는 방식이다. 대표적으로 추천 시스템, 검색 엔진에서 자주 쓰인다고 한다. 상대적으로 짧은 문서에서 단어가 매칭된 경우 더 큰 가중치를 부여한다. 

728x90
반응형

'boostcamp AI tech > boostcamp AI' 카테고리의 다른 글

Passage Retrieval - Scaling up, FAISS  (0) 2024.02.19
Passage Retrieval - Dense Embedding  (0) 2024.02.16
Generation-based MRC  (1) 2024.02.07
Extraction-based MRC  (0) 2024.02.06
Intro to MRC(Machine Reading Comprehension)  (2) 2024.02.05