네이버 부스트캠프/LEVEL-2

[부스트캠프][P-stage][WK11 / Day48] MRC 2

1. 강의 내용

Passage Retrieval - Sparse Embedding (서민준 교수님)

1) Introduction to Passage Retrieval

Passage Retrieval

질문(query)에 맞는 문서(passage)를 찾는 것.

Passage Retrieval with MRC

  • Open-domain Question Answering: 대규모의 문서 중에서 질문에 대한 답을 찾기

Overview of Passage Retrieval

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

2) Passage Embedding and Sparse Embedding

Passage Embedding Space

Passage Embedding의 벡터 공간이며 벡터화된 Passage를 이용하여 Passage 간 유사도 등을 알고리즘으로 계산할 수 있습니다.

Sparse Embedding

첫 번째 방법으로 Bag-of-Words(BoW)가 있으며 주로 n-gram으로 표현합니다. n개의 단어를 묶어 해당 묶음을 단어 하나로 보고 vocab을 형성합니다. 이 경우 n이 커질수록 vocab의 크기가 크게 증가합니다. 두 번째 방법으로 Term value 를 결정하는 방법이 있는데, binary한 방법과 term frequency한 방법이 있습니다.

특징

  • Dimension of embedding vector = number of terms: 등장하는 단어가 많아질수록 증가, N-gram의 n이 커질수록 증가
  • Term overlap을 정확하게 잡아 내야 할 때 유용
  • 반면, 의미(semantic)가 비슷하지만 다른 단어인 경우 비교가 불가

3) TF-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)

단어가 제공하는 정보의 양


-> Document Frequency (DF): Term t가 등장한 document의 개수
N: 총 document의 개수

TF-IDF


-> t: term, d: document
TF-IDF를 이용하면 'a', 'the'와 같은 관사는 낮은 값을 가지고 자주 등장하지 않는 고유 명사는 높은 값을 가지게 됩니다.


-> TF


-> IDF


-> TF-IDF

  • TF-IDF를 이용해 유사도 구해보기
    1. 사용자가 입력한 질의를 토큰화
    2. 기존에 단어 사전에 없는 토큰들은 제외
    3. 질의를 하나의 문서로 생각하고, 이에 대한 TF-IDF 계산
    4. 질의 TF-IDF 값과 각 문서별 TF-IDF 값을 곱하여 유사도 점수 계산
    5. 가장 높은 점수를 가지는 문서 선택

BM25

TF-IDF 의 개념을 바탕으로, 문서의 길이까지 고려하여 점수를 매김

  • TF 값에 한계를 지정해두어 일정한 범위를 유지하도록 함
  • 평균적인 문서의 길이 보다 더 작은 문서에서 단어가 매칭된 경우 그 문서에 대해 가중치를 부여
  • 실제 검색엔진, 추천 시스템 등에서 아직까지도 많이 사용되는 알고리즘

Passage Retrieval - Dense Embedding (서민준 교수님)

1) Introduction to Dense Embedding

  • Passage Embedding: 구절(Passage)을 벡터로 변환하는 것

Sparse Embedding은 Sparse한 방법으로, 차원의 수가 매우 크고 유사성을 고려하지 못한다는 문제가 있습니다. 이러한 단점의 극복을 위해 Dense Embedding이 쓰입니다.

Dense Embedding

  • Complementary to sparse representations by design
    • 더 작은 차원의 고밀도 벡터 (length = 50-1000)
    • 각 차원이 특정 term에 대응되지 않음
    • 대부분의 요소가 non-zero값

Retrieval: Sparse vs Dense

Dense는 의미가 같지만 다른 단어인 경우도 detect 할 수 있습니다.


-> 최근 사전학습 모델의 등장, 검색 기술의 발전 등으로 인해 Dense Embeddinf을 활발히 이용합니다.

Overview of Passage Retrieval with Dense Embedding

 

2) Training Dense Encoder

BERT와 같은 Pre-trained language model (PLM)이 자주 사용되며, 그 외 다양한 neural network 구조도 가능합니다. 여기서 BERT의 경우, [CLS] token의 output을 이용합니다.

Dense Encoder 구조

Dense Encoder 학습 목표와 학습 데이터

  • 학습목표: 연관된 question과 passage dense embedding 간의 거리를 좁히는 것 (또는 inner product를 높이는 것). 즉 higher similarity. 연관 되지 않은 question과 passage간의 embedding 거리는 멀어야 함
    여기서 연관된 question / passage pair를 어떻게 찾을 것인가가 중요한 문제입니다. 이는 기존 MRC 데이터셋을 이용하는 등의 방식으로 해결할 수 있습니다.
  • Negative Sampling
    1. Corpus 내에서 랜덤하게 뽑기
    2. 좀 더 헷갈리는 negative 샘플들 뽑기 (ex. 높은 TF-IDF 스코어를 가지지만 답을 포함하지 않는 샘플)

Objective function

Positive passage 에 대한 negative log likelihood (NLL) loss 사용

Evaluation Metric for Dense Encoder

  • Top-k retrieval accuracy: retrieve 된 passage 중에 답을 포함하는 passage의 비율

3) Passage Retrieval with Dense Encoder

From dense encoding to retrieval

  • Inference: Passage와 query를 각각 embedding한 후, query로부터 가까운 순서대로 passage의 순위를 매김

From retrieval to open-domain question answering

Retriever를 통해 찾아낸 Passage을 활용, MRC (Machine Reading Comprehension) 모델로 답을 찾음.

How to make better dense encoding

  • 학습 방법 개선 (e.g. DPR)
  • 인코더 모델 개선 (BERT보다 큰, 정확한 Pretrained 모델)
  • 데이터 개선 (더 많은 데이터, 전처리, 등)

2. 과제 수행 과정 / 결과물 정리


3. 피어세션 정리

  • 스몰톡 + 진행상황 공유
  • 강의 내용 질의응답
  • 서베이 논문 관련 토의
  • 아이디어 회의
  • 코드팀 및 작업 룰 논의
  • 데이터팀 버전 관리 등 논의