(5강) Passage Retrieval - Dense Embedding

💡
Dense Embedding에 대해 알아본다.

Introduction to Dense Embedding

이전 강의에서 살펴본 TF-IDF의 Vector는 Sparse한 특징을 갖는다. Sparse Embedding 방식은 단어의 유무를 정확하게 파악하는데는 유용하지만, 다양한 한계점을 갖는다. 차원의 수가 매우 크며, 각 단어의 유사성을 고려하지 못하는 것이 일례이다.

위와 같은 한계점을 극복할 수 있는 방안이 Dense Embedding이다.

Dense Embedding Model의 Overview는 다음과 같다.

Dense Embedding을 생성할 Encoder를 훈련하고, 질문과 문서를 비교하여 관련 문서를 추출하는 형태로 이루어진다.

Training Dense Encoder

Dense Embedding을 생성할 Encoder로는 PLM (Pre-trained Language Model)을 주로 사용한다. BERT의 경우, [CLS] Token의 Output을 각 질문이나 문서의 Vector로 활용한다.

Dense Encoder의 학습은 다음과 같은 목표를 갖는다.

Passage Retrieval with Dense Encoder

위의 방법을 통해 학습한 Encoder와, 해당 Encoder로부터 얻은 Vector를 통해 Retrieval을 수행할 수 있다.


(6강) Scaling up with FAISS

💡
Scale이 큰 상황에서 효율적으로 검색하는 방법에 대해 알아본다.

Passage Retireval and Similarity Search

기존까지 살펴본 Retrieval 방식은 Scale에 따라서 필요로 하는 자원량이 증가하게 된다. Wikipedia나, Google과 같이 매우매우 많은 수의 문서 중에서 Query에 해당하는 문서를 찾기 위한 방법에 대해 알아보자.

먼저, 이전까지 계산해왔던 Similarity는 엄밀히 말했을 때 L2와 같은 '거리'가 아니고, '내적'값의 최대화였음을 기억하자.

MIPS의 방식은 문서집합과의 계산을 통해 이루어지는데, 이때 모든 문서 임베딩을 일일히 보면서 검색할 수는 없는 Scale을 가정하자. 즉, 자원 사용의 최적화와 속도를 위해 수행되는 작업이다.

Approximating Similarity Search

위와 같은 상황에서 접근해볼 수 있는 대표적인 방법은 다음과 같다.

Introduction to FAISS

FAISS는 위 두 방법을 모두 활용하여, 높은 속도를 자랑하는 유사도 측정 Library이다. 문서뿐 아니라 다양한 형태의 Data에 대해 사용할 수 있다.

Scaling up with FAISS

FAISS를 사용하는 실습 코드에 대해 알아보자.


Reference

Dense Passage Retrieval for Open-Domain Question Answering

Open domain QA tutorial: Dense retrieval

FAISS blog

FAISS github

FAISS tutorial


Project

오늘의 목표 및 진척상황

  • 음절 단위 Tokenizing

직면했던 문제와 학습한 내용

  1. 음절 단위 Tokenizing

    Baseline만 며칠째 보고있고, 해당 함수를 구현하려고 하면 막막해서 손을 놓게 된다.

추가로 진행 할 사항

  • 정신 차리기

'네이버 부스트캠프 AI Tech' 카테고리의 다른 글

[P3] Day 67 (21.05.04)  (0) 2021.06.26
[P3] Day 66 (21.05.03)  (0) 2021.06.26
[P3] Day 64 (21.04.29)  (0) 2021.06.26
[P3] Day 63 (21.04.28)  (0) 2021.06.26
[P3] Day 62 (21.04.27)  (0) 2021.06.26

+ Recent posts