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)
해당 문서 내 단어의 등장 빈도
- Raw count
- Adjusted for doc length: raw count / num words (TF)
- 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를 이용해 유사도 구해보기
- 사용자가 입력한 질의를 토큰화
- 기존에 단어 사전에 없는 토큰들은 제외
- 질의를 하나의 문서로 생각하고, 이에 대한 TF-IDF 계산
- 질의 TF-IDF 값과 각 문서별 TF-IDF 값을 곱하여 유사도 점수 계산
- 가장 높은 점수를 가지는 문서 선택
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
- Corpus 내에서 랜덤하게 뽑기
- 좀 더 헷갈리는 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. 피어세션 정리
- 스몰톡 + 진행상황 공유
- 강의 내용 질의응답
- 서베이 논문 관련 토의
- 아이디어 회의
- 코드팀 및 작업 룰 논의
- 데이터팀 버전 관리 등 논의
'네이버 부스트캠프 > LEVEL-2' 카테고리의 다른 글
[부스트캠프][P-stage][WK11 / Day49,50] MRC 3 (0) | 2021.10.16 |
---|---|
[부스트캠프][P-stage][WK11 / Day47] MRC 1 (0) | 2021.10.16 |
[부스트캠프][P-stage][WK10] P-stage level2 KLUE RE 결산 및 개인회고 (0) | 2021.10.10 |
[부스트캠프][P-stage][WK09 / Day41] KLUE RE 5 (0) | 2021.10.02 |
[부스트캠프][P-stage][WK09 / Day40] KLUE RE 4 (0) | 2021.10.02 |