반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- MRC
- GPT-3
- 밑시딥
- andoriod with kotlin
- gradiant descent
- 모두의 딥러닝
- 안드로이드 구조
- 다중분류
- 베스트 모델
- 선형회귀
- 면접왕이형
- 경사하강법
- ESG 채권
- 면접왕 이형
- 밑바닥부터 시작하는 딥러닝
- 예측선
- 딥페이크
- 경제신문스크랩
- k겹 교차검증
- 과적합
- 코틀린
- 로지스틱 회귀법
- 보이스피싱
- 학습 자동 중단
- 독서 #독서후기 #피로사회 #행동과잉 #긍정과잉
- nlp
- 안드로이드
- ESG
- 뉴로 심볼릭
- 밑시딥2
Archives
- Today
- Total
Practice makes perfect!
Week 11 (5) Passage Retrieval - Dense Embedding 본문
1. Introduction to Dense Embedding
TF-IDF와 같은 sparse embedding은 벡터의 크기는 아주 크지만 그 안에 0이 아닌 숫자는 아주 적음
벡터의 차원 수가 매우 큰 것은 compressed format으로 극복 가능하지만, 유사성을 고려하지는 못함.
이 단점을 극복하기 위해 dense embedding이 많이 사용됨
1) Complementary to sparse representations by design
- 더 작은 차원의 고밀도 벡터 (length = 50-1000)
- 각 차원이 특정 term에 대응되지 않음. 차원이 모두 합쳐져 벡터 스페이스 상에서의 위치가 의미를 나타내도록 복합/부분적인 의미를 가짐
- 대부분의 요소가 non-zero값 (의미있는 값을 가짐)
2) Retrieval: Sparse vs Dense
sparse
- 각 dimesion마다 하나의 원소에 대응되고 많은 요소가 zero값을 가짐. 단어의 존재 유무 등을 알아맞히기에는 유용하나, 의미적으로 해석하기는 어려움
- 항상 dimension이 dense에 비해 크기 때문에 활용가능한 알고리즘에 한계가 있음
- 장점 : 중요한 term들이 정확히 일치해야 하는 경우 성능이 뛰어남 -> 현업에서 sparse와 dense를 동시에 쓰는 방식으로 retrieval을 구축하기도 함
- 단점 : 임베딩이 구축되고 나서는 추가적인 학습이 불가능함
dense
- 의미가 같더라도 다른 단어로 표현된 경우를 detect할 수 있는 방법론을 사용함
- dense가 작아 활용가능한 알고리즘이 많음
- 최근 사전학습 모델의 등장으로 dense embedding을 배우는 것이 용이해졌음
- 장점
- 단어의 유사성 또는 맥락을 파악해야하는 경우 성능이 뛰어남
- 학습을 통해 임베딩을 만들며 추가적인 학습 또한 가능함
2. Training Dense Encoder
1) Dense Encoder
- Dense Encoder로 BERT와 같은 Pre-trained language model (PLM)이 자주 사용됨
- 그 외 다양한 neural network 구조도 가능
- MRC에서는 passage와 question을 둘다 input으로 넣어줬던 반면에, dense encoder에서는 각각을 독립적으로 넣어줌 (각각의 임베딩을 구하기 위해)
- 기존에는 passage 내에 답변이 어디있을 지 예측하기 위해 각 토큰별로 score를 내는 것이 목적이었다면, 이번에는 임베딩을 output 하는 것이 목적이기 때문에 [CLS] 토큰의 output 사용
- bert를 활용해 q와 p를 vector로 내보내고 유사도를 측정해 최종 유사 점수를 냄
- 학습 시에는 bert를 fine-tune해 실제 정답 p는 유사도 점수가 높게, 아닌 것은 유사 점수가 -로 갈 수 있도록 학습함
2) Dense Encoder 학습 목표와 학습 데이터
- 학습목표 : 연관된 question과 passage dense embedding 간의 거리를 좁히는 것 (= inner
product를 높이는 것 = higher similarity) - Challenge : 연관된 question / passage를 어떻게 찾을 것인가? -> 기존 MRC 데이터셋을 활용
- 관련없는 passage는 random하게 샘플링, 관련있는 passage는 question이 속해있던 passage를 활용해 한쪽은 거리를 좁히고, 한쪽은 거리를 멀리하는 방식으로 학습 진행함.
Negative Sampling
- 연관된 question과 passage 간의 dense embedding 거리를 좁히는 것 (higher similarity) ⇒ Positive
- 연관 되지 않은 question과 passage간의 embedding 거리는 멀어야 함 ⇒ Negative
- Choosing negative examples
- Corpus 내에서 랜덤하게 뽑기
- 좀 더 헷갈리는 negative 샘플들 뽑기 (ex. 높은 TF-IDF 스코어를 가지지만 답을 포함하지 않는 샘플 <- 모델입장에서 구분하기 어려운 샘플)
Evaluation Metric for Dense Encoder
- Top-k retrieval accuracy : retrieve 된 passage 중에 답을 포함하는 passage의 비율
- extractive mrc에서는 passage내에 답이 없으면 절대 답을 낼 수 없음 -> upper bound
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)
- https://arxiv.org/abs/2004.04906
- 인코더 모델 개선 (BERT보다 큰, 정확한 Pretrained 모델)
- 데이터 개선 (더 많은 데이터, 전처리, 등)
* competition하면서 올바른 문서를 찾아오는 방법을 개선하는 것이 중요
반응형
'Study > AI Tech' 카테고리의 다른 글
Week 12 (7) Linking MRC and Retrieval (0) | 2021.10.20 |
---|---|
Week 11 (6) Passage Retrieval – Scaling Up (0) | 2021.10.18 |
Week 11 (4) Passage Retrieval - Sparse Embedding (0) | 2021.10.14 |
Week 11 (3) Generation-based MRC (0) | 2021.10.13 |
Week 11 (2) Extraction-based MRC (0) | 2021.10.13 |
Comments