본문 바로가기
AI/딥러닝

[MRC] Passage Retrieval – Dense Embedding

by 채채씨 2021. 10. 17.
728x90
반응형


Passage Retrieval을 위해 Passage를 적절한 벡터로 변환하는 Passage Embedding에 대해 알아볼 것이다.  지난 포스팅에서는 Sparse Embedding에 대해 다루었고, 이번에는 Dense Embedding에 대해 살펴볼 것이다.



먼저 Sparse Embedding에서 배운 TF-IDF는 Bag-of-Word를 기반으로 하기 때문에 zero value가 많고, 벡터 차원이 굉장히 크다. 그러나 이 부분은 non-zero의 위치와 값만 저장하는 등의 compressed format으로 극복 가능하다.



Sparse Embedding의 장 큰 문제점은 단어간 유사성을 고려하지 못한다는 것이다. 같은 의미를 갖는 다른 단어는 완전히 다른 벡터로 임베딩 되며, vector space에서도 유사성을 고려할 수 없는 형태가 된다.

이런 단점을 보완한 방식으로 Dense Embedding이 있다.


Dense Embedding


■ Sparse Embedding VS Dense Embedding

Sparse Embedding은 보통 vocab size길이의 벡터를 갖는 반면, Dense Embedding은 50~1000정도의 작은 차원의 고밀도 벡터를 갖는다. 또한 각 차원이 특정 term에 대응되지 않고 합쳐진 하나의 벡터의 vector space상의 위치가 의미를 가진다.

아래 그림의 왼쪽은 Sparse Embedding이고 오른쪽은 Dense Embedding이다. Sparse Embedding은 각 차원이 term으로 구성되어 있으며, zero value가 많다. 반면 Dense Embedding은 굉장히 compact하며 대부분 non-zero value로 채워져있다.


이외에도 아래 그림과 같은 차이점이 존재한다.


※ 학습을 통해 Embedding을 구축하는 Dense Embedding의 경우, 사전 학습 모델의 등장으로 더 활발히 사용되고 있다.


■ Overview of Passage Retrieval with Dense Embedding


Question과 Passage모두 각각의 weight를 가진 encoder를 통해 [CLS] 토큰에 해당되는 Embedding을 얻는다. 이를 각각hq, hb라 하며, 이 둘을 내적하여 유사도를 계산한다. 이 과정을 모든 Passage에 대해 수행한 후, 가장 높은 유사도를 갖는 Passage를 선택한다.


Training Dense Encoder


Dense Encoder는 보통 Bert와 같은 Pre-trained Language Model (PLM)을 사용한다.

ex) Bert의 경우, [CLS]토큰의 output을 이용하여 Vector를 얻는다.



■ Dense Encoder의 학습 목표와 데이터셋

  • 학습 목표: 관련있는 question과 passage dense embedding의 거리를 좁히는 것, inner product를 높이는 것
  • 데이터셋: MRC데이터셋 활용



■ Negative Sampling

  • Negative Sampling 개념알기 → https://wikidocs.net/69141
  • 학습과정: 관련있는 question과 passage의 embedding거리는 좁히고(positive), 관련 없는 question과 passage의 embedding거리는 멀게해야 한다(negative).
  • negative examples선택 방법
    • corpus내에서 랜덤 추출
    • TF-IDF점수가 높지만 답을 포함하지 않는 헷갈리는 sample선택



■ Object Function

negative sampling에 corss entropy를 사용한 Negative Log Likelihood를 Loss로 사용한다.

[참고]



■ Inference

Passage와 Query을 미리 Embedding해둔 것에 대해, Query로부터 가까운 거리에 있는 Passage의 순위를 매긴다.



■ ODQA로 확장

Retriever를 통해 Passage를 찾은 후, MRC모델로 질문에 대한 답변을 찾는다.



■ Dense Encoding 개선 방향

  • 학습 방법 개선: DPR 등
  • Encoder 모델 개선: 더 크고 정확한 Pretrained모델 등
  • 데이터 개선: 데이터 추가, 전처리 등


728x90
반응형

댓글