-
논문 리뷰) GPL - Generative Pseudo Labeling for Unsupervised Domain AdaptationAI 논문 리뷰 2024. 5. 22. 23:46
[요약]
GPL은 GenQ에서 진보된 Unsupervised 방법론으로 볼수 있다.
GenQ는 T5를 이용하여, Passage(문서)에서 Query(질문 또는 찾고자 하는 검색어)를 생성하고, 생성된 Query/Passage Pair를 SBERT 학습에 활용하는 것이 핵심이다.GPL은 GenQ에서 몇가지 단계가 추가된다.
1) Query Generation via T5:
doc2query 논문에서 제안한 T5를 이용한 Query 생성 방법론을 활용, Passage로부터 Query를 생성.
허깅페이스 기준 doc2query/msmarco-t5-base-v1 등의 모델 활용, 여기까지는 GenQ와 동일
2) Negative Mining via Dense Retrieval :
Dense Retrieval(SBERT)을 통해, 생성된 Query와 유사한 문서를 검색 (50개).그리고 이 검색된 문서들을 Negative Passage로써 활용.
쿼리와 유사하지만 사용자가 관련성이 없다고 생각되는 문서라면 더 좋다.(관련이 있어도, 괜찮음)
예를 들어, 'What is Python' Query에 대해, 'Java is a class-based programming language'라는 Passage가 그럴 것이다.
3) Pseudo Labeling:
계산 속도는 느리지만, 유사도를 판단하는데 성능이 좋은 Cross-Encoder를 활용하여,Labeling(Query와 Passage 간의 유사도 score)을 실시한다.
4) Training :
학습은 MarginMSELoss를 활용한다.
MarginMSELoss는 |sim(Query, Pos) - sim(Query, Neg)|와|gold_sim(Query, Pos) - gold_sim(Query, Neg)| 간의 차이를 MSE Loss로 취한 것이다.
여기서 gold_sim은 성능이 좋은 Cross-Encoder가 그 역할을 수행하게 되고,그냥 sim은 학습 대상이 되는 모델이 된다.
즉, Loss가 줄어들수록 모델이 Croos-Encoder의 유사도 측정 수준을 따라가게 되는 것이다.(Teacher/Student 지식증류와 같은 개념)
이때, 해당 논문에서는 |gold_sim(Query, Pos) - gold_sim(Query, Neg)|을 Margin이라 표현함.
MultipleNegativesRankingLoss는
batch 내 다른 샘플들을 무조건 negative로 간주하므로,
관련있는 문서가 batch에 존재할 경우, 학습에 방해요소가 된다.
그러나, MarginMSELoss는 그림과 같이
Positive와 유사한 문서인 Negative3 문서가 존재하게 되더라도, Query와 Negative3 문서 간의 유사도 score를 구하여 Query와 Negative3 문서가 높은 유사성이 존재한다는 것이 수치적으로 반영되어 있다.
그리고 이 수치만큼 label의 역할을 하는, |gold_sim(Query, Pos) - gold_sim(Query, Neg)|의 차이도 적을 것이다.
즉, MarginMSELoss는 Negative 문서 중에서 Query와 가까운 문서는 가까운 대로,Query와 관련이 없는 문서는 관련이 없는대로 label의 역할을 하는 gold_sim의 값이 달라지므로,
학습에 방해가 없게된다.
Loss의 초점이 얼마나 CrossEncoder 모델과 유사하게 예측했냐에 있기 때문이다.
즉, 높은 성능을 갖는 cross-encoder의 score margin을 dense retriever가 닮아가도록 가르칠수 있게된다.※ Domain Adaption
Domain Adaption을 위한 '사전학습' 방법론은
대표적으로 MLM, TSDAE가 존재한다.
(사전 학습 방법이라는 것이 불편한 점을 만들게 됨,
학습 완료된 모델을 파인튜닝 방법으로는 적합하지 않을수 있음)GPL과 QGen은 '사후학습'으로도 Domain Adaptaion이 가능한 방법이다.
아래 표처럼 사후 학습으로 TSADE, MLM 보다 Domain Retrieval 성능이 더 좋았다.[1. Introduction]
dense retrieval 방식은 많은 훈련 데이터를 요구한다. 특히, domain shift에 매우 민감하다.
우리는 unsupervised 방식으로 dense retrieval 모델에 domain adaptation을 수행할수 있는 테크닉을 제안한다.
우리는 query generation, negative mining, and the cross-encoder(psuedo-label) 단계에 대해 공개된 오픈 모델이자 MS MARCO로 학습된 모델을 활용하였다.
GPL은 SOTA(QGen)보다 높은 성능을 보였을뿐만 아니라, 학습이 쉽고 빠르고, 데이터에 효율적이다.
기존에 연구된 6가지 사전학습 방법과 Domain adaptaion 측면에서 비교해보았으며, GPL이 가장 좋았다.
그리고 TSDAE + GPL로 학습을 하면 더 좋았다.[2. Related work]
SimCSE, CT, 그리고 TSDAE는 첨부 E의 테이블 10.을 봤을때,
retrieval과 같은 domain adaptaion에 효과적이지 않은 것으로 보인다.
이러한 사전학습 방법이 retrieval과 같은 domain adapation에 활용될수 있을지는 불명확하다
Doc2Query를 통해 passage(문서)에서 query를 생성하는 방법이 있었고,QGen에서도 T5로 passage로 부터 query를 생성하여,
dense retriver로 학습하는 방법을 제안하였다.
Thakur 등은 QGen을 강력한 MS MARCO 검색기를 대상 도메인에적응시키기 위한 '사후 훈련 방법'(post-training)으로 보고 있다
QGen은 좋은 성능을 보였지만, in-batch negative로써, cross-entropy를 고려하였다.
여기에서 더 나아가 우리는 hard negative 적용과 cross-encoder를 통한 psuedo-label를 통해 더 높은 성능을 보였다.
이전의 연구결과를 보면, cross-encoder가 더 성능이 좋고, domain shift도 적게 일어나는 경향이 있다.
그러나, 계산 cost가 높기 때문에 상용화에는 맞지 않다.
cross-encoder에서 bi-encoder로 지식증류하려는 연구가 있었는데,
teacher로부터의 (query, positive)-pairs와 student로 부터의
(query, negative)-pairs에 대해 MSE를 계산하는 MarginMSELoss를 통해서 학습하는 방법이 제안되었다.(여기서도 해당 Loss를 활용)
[3. Method]
passage당 3개의 쿼리를 생성.
생성된 쿼리당 50개의 관련 문서를 검색/선택.
이를 Negative Passage로 활용. 이때, 검색은 기존의 존재하는 모델중 선택.
|sim(Query, Pos) - sim(Query, Neg)|와 |gold_sim(Query, Pos) - gold_sim(Query, Neg)| 간의 차이를 MSE Loss로 구하는 MargineMSE loss를 적용.
여기서, Margin은 |gold_sim(Query, Pos) - gold_sim(Query, Neg)|을 의미
MultipleNegativesRanking는 쿼리와 passage 간의 관계를 positive와 negative로만 단정짓는다.
하지만 passage로부터 생성된 query가 부정확할수도 있고,검색된 negative passage가 실제로는 query와 관련이 있을수도 있다.
반면에, MarginMSELoss는 Negative 문서 중에서 Query와 가까운 문서는 가까운 대로,Query와 관련이 없는 문서는 관련이 없는대로 label의 역할을 하는 gold_sim의 값이 달라지므로,
학습에 방해가 없게된다.
즉, 높은 성능을 갖는 cross-encoder의 score margin을 dense retriever가 닮아가도록 가르칠수 있게 된다.
score 계산에는 dot-product를 주로 활용하였다.[4. Experiments]
domain으로서 MS MARCO를 채택
Table 1을 보면, 기존의 SOTA들이 6가지의 도메인 검색에서 잘 작동하지않는 것을 볼 수 있다.
TSDAE를 제외한 다른 방법들은 domain 사전학습을 했는데도 BM25보다도 성능이 안나왔다.
다음과 같은 내용으로 실험을 진행하였다.
1. DistilBERT를 학습 모델로 채택
2. title과 body를 합쳐서 input text로함.
3. 최대 input 길이는 350
4. mean pooling과 dot product로 적용
5. training step 140k번
6. batch size 32
7. query 생성은 DocT5Query 활용
(MS MARCO로 학습된) temperature =1, k=25, p=0.95
8. negative passage를 검색할 모델은 MS MARCO로 훈련된
msmarco-distilbert-base-v3 and msmarco-MiniLML-6-v3 모델 2개로 함.
9. Negative passage는 query 당 검색기마다 50개씩 검색
10. Pseudo label을 위한 Cross-Encoder는 ms-marco-MiniLM-L6-v2를 활용
Section 6의 Table 2와 같이, Corpora가 50k에서 최대 성능을 내고, 그 이상이 되면 하향되는 모습을 보였다.
따라서, corpus의 양이 적으면 많은 query를 생성해야되고, corpus 양이 많으면 문서 당 적은 query를 생성하는 것이 좋다.
Passage당 생성되는Query의 개수와 Corpus size의 곱이 250k가 넘지않게 하되,
Passage당 생성되는 Query의 개수가 최소 3이상은 되도록 하였다.
250k가 넘는다면, Query의 개수는 3이 될것이고 (FiQA)
250k가 넘지않는다면, 250k / Corpus-size가 Query 생성 개수가 된다 (Robust04, 5)[5. Result]
SimCSE와 CD, CT는 domain 사전학습이후, MS MARCO를 한 것보다
MS MARCO만 학습한 것이 더 성능이 좋았다. 즉, domain adaptation이 되지 않는 모습이다.
그러나, TSDAE는 효과가 있었다.
(사후학습 또는 추가학습으로)
GPL을 적용한 결과가 성능이 더 잘나왔다.728x90'AI 논문 리뷰' 카테고리의 다른 글