elasticsearch入門系列">elasticsearch入門系列
1480
2022-05-29
RocketQA主要研究基于稠密向量的文章搜索召回技術,論文對于整體模型沒有任何優化,還是最為經典的雙塔模型(dual-encoder model),采用預訓練語言模型將query和answer編碼為稠密向量,通過計算向量之間的距離來衡量query與answer之間的相關程度,利用Faiss等高維向量檢索方法召回TopK的相關文章。主要的思路是優化模型訓練時負采樣的過程,以及擴充、優化訓練數據的方式,解決經典雙塔模型在訓練過程和數據樣本中存在的問題。
其主要想要解決的是如下幾個問題:
負樣本的無限性與計算資源的有限性之間的矛盾:在模型使用過程中,query的“負例”是文檔庫中的幾乎所有文章,而模型在訓練過程中,受限于計算資源,模型無法在保證足夠Batch Size的基礎上,對負樣本進行充分的采樣。通常為了節約資源,會僅僅對Batch內的樣本做互相負樣本處理(in-batch negatives),這大大限制了模型對負樣本的學習,降低了模型泛化能力。
無標記文檔≠負樣本文檔:就統計概率上說,大規模文檔庫上構建的數據集中,無標記文檔≈負樣本文檔是成立的,但是由于標注形式與標注代價的制約,無標記文檔中肯定存在大量的正樣本文檔。再加上為了讓模型有足夠好的區分度,在負采樣過程中常常會傾向采樣那些與query和正例answer相關度較高的文檔作為負樣本。這樣一來,標記數據的質量大大降低,成為制約模型效果的障礙。
標記數據空間與文檔空間之間的矛盾:模型要有好效果,除了要求數據集與實際場景之間同分布以外,還需要要求數據集是實際場景的“充分”采樣。在搜索場景中,文檔庫一般來說是非常大的,包含有無數“主題”的文章;用戶的query空間是近乎無限的;而標注數據是非常有限的而且代價昂貴的。在這種情況下,自動生成出較高質量的標注數據,對于模型效果的提升是明顯的。
文章提出的解決上述問題的方案:
跨批次負采樣(cross-batch negatives):本質是共享了多個GPU之間的負樣本表示。傳統模型在多GPU架構中運行時,僅僅共享了單個GPU內部的passage樣本表示,如圖1中表示:GPU1計算了q11,q12,…,q1B的encoder表示,以及p11,p12,…,p1B的encoder表示,然后互為負樣本進行pairwise loss計算進行訓練,其他GPU上面的計算類似,多個GPU之間計算的px1,px2,…,pxB表示是無法共享的,于是每一個query只有B-1個負樣本;而對于跨批次負采樣來說,通過共享了多個GPU之間計算的文章表示(px1,px2,…,pxB),實現了每個query有A*B-1個負樣本,提升了每個batch訓練時query的負樣本數量。當然這里所述是比較理想的情況,每個answer樣本都有與之對應的query,實際情況中肯定存在很多純負樣本,處理情況與上述一致。
負樣本降噪(denoised hard negatives):假的負樣本對于模型的傷害是巨大的,模型提出可以使用一個cross-encoder模型來輔助判斷哪些樣本是偽負樣本。首先,使用經典的設置(無標記文檔=負樣本文檔)訓練一個dual-encoder召回模型M(0)D;緊接著,利用召回模型M(0)D的分布確定相關度得分排在Top的無標記文本作為負樣本,訓練cross-encoder模型MC;最后,使用召回模型M(0)D的分布確定相關度得分排在Top的無標記文本,其中在模型MC的相關度得分較低的部分作為負樣本,訓練dual-encoder模型M(1)D。整體過程有點像自監督學習中的teacher和student。
數據擴充(data augmentation):利用上面訓練得到的dual-encoder模型M(1)D做召回,用cross-encoder模型MC進行相關度計算,在新query集合中找出執行度較高的正樣本和負樣本,對標注數據進行擴充。最后得到的模型M(2)D是在原始標注數據集DL和擴充數據集DU基礎上,使用M(1)D生成潛在負樣本,使用MC篩選負樣本,訓練而來。
實驗與結論:
論文在MSMARCO和Natural Questions兩個數據集上進行實驗,都取得了很好的效果,在召回模型中達到了state-of-art。
References
[1] RocketQA: An Optimized Training Approach to Dense Passage Retrieval for Open-Domain Question Answering
[2] PAIR: Leveraging Passage-Centric Similarity Relation for Improving Dense Passage Retrieval
[3] RocketQAv2: A Joint Training Method for Dense Passage Retrieval and Passage Re-ranking
機器學習 深度學習
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。