일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- Optimization
- Bart
- pyTorch
- GPT
- 2023 현대차·기아 CTO AI 경진대회
- Attention
- AI Math
- 데이터 구축
- matplotlib
- RNN
- Bert
- KLUE
- 기아
- 현대자동차
- Ai
- N2N
- Data Viz
- mrc
- 딥러닝
- AI 경진대회
- 데이터 시각화
- passage retrieval
- Transformer
- word2vec
- ODQA
- dataset
- N21
- nlp
- seaborn
- Self-attention
- Today
- Total
쉬엄쉬엄블로그
(MRC) Passage Retrieval-Sparse Embedding 본문
이 색깔은 주석이라 무시하셔도 됩니다.
Passage Retrieval-Sparse Embedding
Sparse Embedding
Introduction to Passage Retrieval
Passage Retrieval
질문(query)에 맞는 문서(passage)를 찾는 것
Passage Retrieval with MRC
Open-domain Question Answering : 대규모의 문서 중에서 질문에 대한 답을 찾기
Passage Retrieval과 MRC를 이어서 2-Stage로 만들 수 있음
Overview of Passage Retrieval
Query와 Passage를 임베딩한 뒤 유사도로 랭킹을 매기고, 유사도가 가장 높은 Passage를 선택함
Passage Embedding and Sparse Embedding
Passage Embedding Space
Passage Embedding의 벡터 공간
벡터화된 Passage를 이용하여 Passage간 유사도 등을 알고리즘으로 계산할 수 있음
Sparse Embedding 소개
Sparse는 Dense의 반대어로써 0이 아닌 숫자가 상당히 적게 있는 것을 의미함
Bag-of-Words (BoW)
- 벡터의 길이는 vocabulary의 사이즈와 같아짐
BoW를 구성하는 방법 → n-gram
- unigram(1-gram) : It was the best of times ⇒ It, was, the, best, of, times
- bigram(2-gram) : It was the best of times ⇒ It was, was the, the best, best of, of times
Term value를 결정하는 방법
Term이 document에 등장하는지(binary)
Term이 몇번 등장하는지(term frequency), 등. (e.g. TF-IDF)
Sparse Embedding 특징
Dimension of embedding vector = number of terms
- 등장하는 단어가 많아질수록 증가
- N-gram의 n이 커질수록 증가
Term overlap을 정확하게 잡아내야 할 때 유용
반면, 의미(semantic)가 비슷하지만 다른 단어인 경우에는 비교가 불가
TF-IDF
TF-IDF (Term Frequency - Inverse Document Frequency) 소개
Term Frequency(TF) : 단어의 등장빈도
Inverse Document Frequency(IDF) : 단어가 제공하는 정보의 양
ex) It was the best of times
It, was, the, of : 자주 등장하지만 제공하는 정보량이 적음
best, times : 좀 더 많은 정보를 제공
Term Frequency(TF)
해당 문서 내 단어의 등장 빈도
Raw count
Adjusted for doc length : raw count / num words(TF)
Other variants : binary, log normalization, etc.
Inverse Document Frequency(IDF)
단어가 제공하는 정보의 양
$IDF(t)=log\frac{N}{DF(t)}$
Document Frequency(DF) = Term t가 등장한 document의 개수
N : 총 document의 개수
Combine TF & IDF
- TF-IDF(t, d) : TF-IDF for term t in document d, $TF(t,d)\times IDF(t)$
- ‘a’, ‘the’ 등 관사 ⇒ Low TF-IDF
: TF는 높을 수 있지만, IDF가 0에 가까울 것
(거의 모든 document에 등장 ⇒ $N\sim DF(t)$ ⇒ $log(N/DF)\sim 0$) - 자주 등장하지 않는 고유 명사 (ex. 사람 이름, 지명 등) ⇒ High TF-IDF
: IDF가 커지면서 전체적인 TF-IDF 값이 증가
TF-IDF 계산하기
실험할 데이터
문서 제목 문서 내용 음식 주연은 과제를 좋아한다 운동 주연은 농구와 축구를 좋아한다 영화 주연은 어벤져스를 가장 좋아한다 음악 주연은 BTS의 뷔가 가장 잘생겼다고 생각한다 토크나이저
Term Frequency(TF) : 단어의 등장 빈도
$TF(t,d)$ : TF for term t and document dInverse Document Frequency(IDF) : 단어가 제공하는 정보의 양
$IDF(t)=log\frac{N}{DF(t)}$TF-IDF 계산
$TF(t,d)\times IDF(t)$
TF-IDF를 이용해 유사도 구해보기
목표 : 계산한 문서의 TF-IDF를 가지고 질의 TF-IDF를 계산한 후 가장 관련있는 문서를 찾기
사용자가 입력한 질의를 토큰화
기존에 단어 사전에 없는 토큰들은 제외
질의를 하나의 문서로 생각하고, 이에 대한 TF-IDF 계산
질의 TF-IDF 값과 각 문서별 TF-IDF 값을 곱하여 유사도 점수 계산
가장 높은 점수를 가지는 문서 선택
BM25란?
TF-IDF의 개념을 바탕으로, 문서의 길이까지 고려하여 점수를 매김
TF 값에 한계를 지정해두어 일정한 범위를 유지하도록 함
평균적인 문서의 길이보다 더 작은 문서에서 단어가 매칭된 경우 그 문서에 대해 가중치를 부여
실제 검색엔진, 추천 시스템 등에서 아직까지도 많이 사용되는 알고리즘
[참조자료] Pyserini BM25 MSMarco Document Retrieval 예시
출처: 부스트캠프 AI Tech 4기(NAVER Connect Foundation)
'부스트캠프 AI Tech 4기' 카테고리의 다른 글
(MRC) Passage Retrieval-Scaling Up (0) | 2023.09.13 |
---|---|
(MRC) Passage Retrieval-Dense Embedding (0) | 2023.09.12 |
(MRC) Generation-based MRC (0) | 2023.09.08 |
(MRC) Extraction-based MRC (1) | 2023.09.07 |
(MRC) MRC Intro (0) | 2023.09.06 |