引言
隨著預訓練語言模型在自然語言處理領域的蓬勃發展,基于預訓練語言模型的稠密檢索(dense retrieval)近年來也變成了主流的一階段檢索(召回)技術,在學術界和工業界均已經得到了廣泛的研究。與傳統的基于字面匹配的稀疏檢索(sparse retrieval)模型相比,稠密檢索模型通過學習低維的查詢和文檔向量來實現語義級別的檢索,能夠更好地理解用戶的查詢意圖,返回能夠更好地滿足用戶信息需求的結果。
通常情況下,訓練一個優秀的稠密檢索模型離不開大規模的人工標注數據,然而,在很多應用場景和業務問題上,這種與領域相關的大規模標注數據非常難以獲得,因此稠密檢索模型的零樣本域外泛化能力(zero-shot OOD generalizability)就變得非常重要。在實際應用中,不同領域之間通常存在較大差異,這種zero-shot能力直接影響著稠密檢索模型在現實場景中的大規模應用。相比之下,傳統的BM25可以簡單有效地部署在不同場景下,如果稠密檢索模型無法在現實場景中取得比BM25顯著優異的性能,則稠密檢索模型的應用價值將會大打折扣。
目前,已經有一些工作開始研究如何評估稠密檢索模型的zero-shot泛化能力以及提高該能力的方法。現有的一些研究指出,稠密檢索模型的zero-shot能力非常有限,在某些場景下甚至無法超越傳統的BM25算法。然而,現有研究的實驗設置相對比較單一,大多關注于模型在不同目標領域上的測試結果,而沒有關注不同的源域設置會如何影響模型的zero-shot泛化性能,從而導致我們并不清楚是什么因素影響了稠密檢索模型的零樣本泛化能力。
因此,本文針對zero-shot場景下的稠密檢索模型泛化能力進行了較為深入的研究,旨在理解何種因素影響了稠密檢索模型的zero-shot泛化能力,以及如何改善這些因素從而提升模型的zero-shot泛化能力。為此,我們設計了充分的實驗,從源域query分布、源域document分布、數據規模、目標域分布偏移程度等幾個方面進行了全面的分析,并發現了不同因素對模型zero-shot泛化能力的影響。另外,我們還系統梳理了近期出現的幾種提升zero-shot泛化性能的優化策略,并指出每種策略是如何影響上述幾個因素從而實現改進的。
背景和設置
Zero-shot場景下的稠密檢索
稠密檢索任務旨在通過給定的query,在一個龐大的document語料庫中召回與query高度相關的document(本文中document泛指語料庫中的文本內容,可以是句子,段落,文章等),其中query和document的語義相關性通常建模為query和document表示向量的點積或余弦相似度。本文主要關注zero-shot場景下的稠密檢索,即使用源域上的標注數據訓練模型,在目標領域的測試集上評估模型,且不能使用該目標域上的標注數據進一步訓練模型。
數據集
為了能夠更全面地評估稠密檢索模型的zero-shot泛化能力,我們收集了12個當前常用的檢索數據集,它們分屬于多個不同領域,其數據特性也各不相同。我們把這些數據集劃分為源域數據集和目標域數據集,其中每個數據集都有對應的query集合和document集合。數據的統計信息如下表所示:
表1 數據集概覽。上半部分為源領域數據集,下半部分為目標領域數據集
后續分析實驗中,我們采用控制變量法,分別調整源領域上訓練樣本的構造方式,從而探索樣本層面不同因素對于模型zero-shot能力的影響。我們使用
MSMARCO和NQ上的初步分析
為了初步理解稠密檢索模型的zero-shot泛化能力,我們首先在兩個最常用的公開檢索數據集MSMARCO和NQ上進行實驗。本文中我們使用RocketQAv2[1]作為基礎模型,在這兩個數據集上分別訓練模型(RocketQA(MSMARCO/NQ)),同時進行了域內和域外的模型性能評測,結果如下表所示:
表2 MSMARCO和NQ上的評估結果
可以發現,在這兩個數據集上,稠密檢索模型的zero-shot評估結果均優于BM25。同時,RocketQAv2(MSMARCO)的zero-shot泛化性能損失(MRR@10 61.1 -> 50.8)要低于RocketQAv2(NQ)的zero-shot泛化性能損失(MRR@10 38.8 -> 22.4),說明在MSMARCO上訓練的稠密檢索模型的zero-shot泛化性能更好。
進一步,我們還在六個目標域數據集上分別測試了RocketQAv2(MSMARCO)和RocketQAv2(NQ)的zero-shot性能(表3 A部分)。我們發現RocketQAv2(MSMARCO)幾乎在所有目標域數據集上的性能都領先于RocketQAv2(NQ)。另外值得注意的是,BM25也是一個較強的baseline,在某些數據集上大幅領先稠密檢索模型。
通過初步實驗,可以發現在不同的源域數據集上訓練的模型的zero-shot泛化能力存在差異,但是由于MSMARCO和NQ的差異點很多,從目前的實驗結果不能得到更多的結論。接下來,我們會從多個方面深入地分析有哪些因素影響著模型的zero-shot泛化能力。
表3 六個目標集上的評估結果。M@10和R@50分別為檢索模型的MRR@10和Recall@50的結果
分析與發現
1. 源領域query集合的影響
實驗結果
為了研究源域query集合分布的影響,我們在下面的實驗中固定住document集合不變,只改變query集合進行分析。
首先,我們固定MSMARCO作為document集合,分別使用NQ和MSMARCO的query集合構造訓練數據。另外,我們還收集了MRQA中的四個數據集,包括TriviaQA,SearchQA,HotpotQA和NQ,它們統一使用Wikipedia作為document集合。
表3(B部分)展示了模型在六個目標數據集上的zero-shot結果。使用NQ訓練的模型整體的zero-shot泛化性能弱于使用MSMARCO訓練的模型,和上面初步實驗中的結果一致,這也證明了源域query集合對稠密檢索模型的zero-shot能力有比較大的影響。同時我們發現HotpotQA訓練的模型在目標域數據集上的效果最差,因為它的query主要由多跳問題組成,說明特殊格式的源域query集合可能會影響模型的zero-shot泛化性能。
基于這些實驗分析,我們對更細節的因素進行了研究。
query的詞匯重疊
詞匯重疊率是衡量兩個領域相似性的重要指標,對于每個源域query集合和目標域query集合的組合,我們計算了它們的weighted Jaccard相似度,該指標越高說明兩個集合的詞匯重疊程度越高。
圖1(紅線)展示了在六個目標域上,不同的源域和目標域query詞匯重疊程度與模型zero-shot性能的關系(對應表3結果),我們發現它們之間存在一定的正相關關系,因為更大的詞項重疊程度意味著更大的領域相似度。document的詞匯重疊情況也有類似的結果(藍線),不再額外贅述。
圖1 詞項重疊程度與zero-shot性能的關系。橫坐標對應在不同源領域訓練模型從低到高的zero-shot性能,縱坐標表示源領域和目標領域間query/document的詞項重疊程度。
query的類型分布
另一個重要的因素是query的類型分布,我們分析了不同源域和目標域數據集各自的query類型分布,主要關注“WH”、”Y/N“和陳述類的query占整個query集合的比例,我們同時計算了每個query類型分布的信息熵來體現平衡性,如圖2所示。
首先,我們發現模型在query類型分布更均衡的源域數據集上訓練模型可能有助于更穩定的整體zero-shot泛化性能。如圖2所示,MSMARCO數據集包含最全面和多樣化的query類型,這使得在該數據集訓練的模型具有最好的zero-shot能力。雖然NQ數據集多樣性也較高,但是該數據集上占比最高query類型的是”Who“類型,我們猜測由于這種問題類型在其他大多數數據集中出現頻率較低,過度學習該類型的問題可能不利于模型的zero-shot泛化能力。
另外,當源域和目標域query集合的query類型分布一致性較高時,模型在該目標域上的zero-shot泛化性能也較好。比如在SearchQA上訓練的模型在ArguAna和SciFact數據集上都有不錯的表現,而這幾個數據集中的query絕大多數都為陳述類問題。
圖2 各數據集的query類型分布及信息熵
2. 源領域document集合的影響
與針對query集合的分析類似,我們在不同實驗設置下固定NQ的query集合作為源域query集合,并分別使用Wikipedia和MSMARCO作為源域document集合,另外我們還合并了這兩個集合組成一個新的document集合,用于研究在原document集合中引入額外document的影響。
測試結果如表3(C部分)所示,我們發現引入了額外document后,訓練出來的模型在目標域上的zero-shot性能有所下降。一個可能的原因是query集合的短答案標注是基于原始的document集合,而這種數據標注方式并不能很好地適應其他document集合,從而導致性能下降。但從整體上來看,document集合的影響不如query集合的影響顯著。
3. 數據規模的影響
由于稠密檢索比較依賴于大規模訓練數據,因此數據規模的影響也值得關注。
Query規模
Query的規模指源域數據集上訓練集query的數量。我們使用不同數據規模的NQ和MSMARCO數據集進行實驗,每個數據集的訓練集中隨機采樣10%、50%和100%的query子集,構造三組訓練集,分別訓練模型并進行域內和域外的測試。
表4展示了模型在NQ和MSMARCO上的域內測試效果,表3(D1部分)展示了模型在六個目標域上的zero-shot性能。首先可以發現,隨著query規模的提高,模型在域內和域外的性能都有提高,在數據規模較小時,模型性能對于query規模的變動可能更敏感。另外,“NQ 100%”和“MSMARCO 10%”數據量基本一致,但是MSMARCO訓練的模型仍然具有較好的zero-shot性能,說明了MSMARCO數據集上更好的zero-shot泛化能力并不完全來自于更大的query規模。
表4 不同規模query集合訓練的模型在NQ和MSMARCO上的領域內測試結果
Document規模
我們使用MSMARCOv2 passage版本的數據集進行document規模的分析,它擁有140M左右段落,據我們所知,這是目前最大的公開document集合。
我們隨機從MSMARCOv2的document集合中采樣了1%、10%和100%三個子集,各包含1.4M、14M和140M的document,結合MSMARCOv2的query集合,構造了三組訓練數據來訓練模型。
表5 MSMARCOv2上的不同document規模實驗
首先我們使用采樣的三組不同規模的document集合,在MSMARCOv2 dev集合上對三個模型進行了測試。如表5所示,在更大規模的域內document集合上訓練的模型在域內看起來有更好的性能。
之后,我們依然在目標領域上對上述三個模型進行了zero-shot性能測試。我們意外地發現使用1% document規模訓練的模型獲得了最好的zero-shot效果。我們猜測在更大規模的document集合上采樣的負樣本可能帶來更豐富的本領域特征,導致對本領域的過度擬合,這可能會損害模型在其他領域上的泛化能力。
進一步地,我們查看了MSMARCOv2上三個document集合、以及MSMARCO上document集合的主題重合情況,使用與前文類似的方法計算不同document集合間的詞項重疊率。我們發現雖然MSMARCOv2有大規模的document集合,但相比于MSMARCO和MSMARCOv2的兩個子集,并沒有帶來與數據量成正比的更豐富的主題,可能這也是模型在這種大規模document庫上效果不佳的原因之一,即對源域上的document集合產生了過擬合。
4. 目標集合的有偏情況
BEIR[2]指出了稀疏檢索模型通常被用于數據集構造,這可能導致BM25在這種數據集上的評測結果偏高。因此,我們定量地研究了這種有偏情況是如何影響稀疏檢索和稠密檢索模型的zero-shot泛化性能的。
我們計算了不同目標域測試集上query和正例document間的詞項重疊率,并研究這種詞項匹配程度如何影響不同檢索模型的zero-shot泛化性能。這里的詞項重疊率計算方式為每對query-document中出現詞項重疊的個數除以query長度(去掉停用詞后),并在整個測試集上求平均。
圖3 稠密檢索模型相比于BM25的效果提升比例和query與標注document的overlap coefficient間的關系
我們計算了六個目標域測試集上query和正例document的詞項重疊率,并據其對數據集做排序。圖3展示了其與稀疏、稠密檢索模型的性能差異的關系。
我們發現整體上,BM25在有更大詞項重疊率的目標域測試集上表現更好,這也與預期相符,而稠密檢索模型在詞項重疊率更小的時候有更好的表現,這說明現有的數據集中確實存在一定程度的模型偏好,從而導致BM25相比于稠密檢索模型有著更好的zero-shot泛化性能,這種有偏情況體現在query和標注的document之間的詞項重疊率中。
模型分析
現有方案歸納
表6總結了現有的zero-shot稠密檢索相關的方法。隨后,我們分類討論了目前的主要技術以及代表性方法。
表6 Zero-shot稠密檢索方法及其采用的技術和涉及到的影響因素。其中VO、QT和QS分別代表vocabulary overlap,query type和query scale
Query生成(QG)
Query生成方法通常使用現成的query生成模型為目標域的document生成偽query,從而實現目標域的數據增廣。這種方法可以提高源域和目標域的詞匯重疊率,同時也提高了訓練數據規模(query規模)。比如QGen[3]在源域訓練了一個生成模型,為目標域的document生成偽query;GPL[4]使用一個經過預訓練的T5模型生成偽query然后使用MarginMSE loss來實現更穩定的模型訓練。
知識蒸餾(KD)
知識蒸餾是稠密檢索中一個常用的方法,其利用一個性能更強大的教師模型來提升稠密檢索模型的性能。當前研究表明,這種方式也有助于提高模型的域外檢索性能。基于知識蒸餾的方法緩解了數據匱乏的問題,其相當于增加訓練數據規模(query規模)。比如AugSBERT[5]和GPL使用一個交互式模型來標注無標簽的query-document對訓練稠密檢索模型;SPAR[6]提出通過使用BM25召回的段落讓稠密檢索模型蒸餾BM25的知識。
對比學習預訓練(CP)
隨著無監督對比學習在NLP領域的興起,研究者開始應用該方法到zero-shot稠密檢索中。其基本思路為利用無標簽語料庫構造大規模偽標簽訓練數據,讓模型可以在預訓練階段就學會捕獲兩個文本間的匹配關系,其本質上仍然是增大訓練數據規模。Contriever[7]和LaPraDoR[8]是兩個典型的無監督預訓練方法,它們通過dropout等方法構造了大規模的偽標簽預訓練數據進行對比學習預訓練。
擴大模型規模(MSS)
增大預訓練語言模型的規模帶來性能提升已經成為了一個廣泛的共識。近期,這種方法也已經在zero-shot稠密檢索領域得到了證明。GTR[9]是一個基于50億參數的T5模型的稠密檢索模型,其使用了20億query-document對進行預訓練,證明了增大模型和數據的規模可以持續帶來性能提升。
結合稀疏檢索(ISR)
很多工作已經指出稀疏檢索在zero-shot場景下的強大能力,稀疏檢索和稠密檢索模型在處理不同數據時各有優劣。因此,對這兩種模型做一個有效的結合是很重要的性能提升手段,我們認為該方法更多地是實現了稠密檢索和稀疏檢索模型的集成。比如SPAR通過知識蒸餾的方式把稀疏檢索模型的能力融入稠密檢索模型中;LaPraDoR把稀疏檢索模型和稠密檢索模型的相似度打分進行了乘性結合,提升了模型的zero-shot泛化能力。
方法比較
我們本著盡量進行公平對比的原則,對現有的zero-shot稠密檢索方法性能進行了整理,提取或復現了部分方法在三個目標數據集上的效果,展示在表7中。
表7 不同方法在三個目標領域數據集上的NDCG@10結果
首先我們發現LaPraDoR整體表現最好,而去掉ISR策略后,模型性能在BioASQ和SciFact上有較大下滑,說明引入稀疏檢索模型在有偏情況較嚴重的數據集上更有效。GPL也獲得了較好的效果,它涉及到前文分析中的提升詞匯重疊程度、提高query規模和擬合query類型分布三個因素。我們也發現,除了結合稀疏檢索類方法,現有方法的zero-shot性能在BioASQ和SciFact數據集上仍然整體落后于BM25。我們猜測其原因很大程度上是前文分析提到的這兩個數據集比較依賴于詞項匹配,導致稠密檢索方法相比于稀疏檢索方法具有天然的劣勢。
總結和展望
本文深入地研究了稠密檢索模型在zero-shot場景下的泛化能力,廣泛地分析了不同因素對模型zero-shot泛化能力的影響。具體來講,我們發現詞匯重疊、query類型分布以及數據規模是影響該能力的重要因素。另外,數據集的構造方式可能會影響對稀疏檢索模型和稠密檢索模型的zero-shot泛化能力的對比。我們認為,稠密檢索模型的zero-shot泛化能力仍有提升空間,并且值得進一步地深入研究。
審核編輯 :李倩
-
模型
+關注
關注
1文章
3279瀏覽量
48974 -
檢索
+關注
關注
0文章
27瀏覽量
13170 -
自然語言處理
+關注
關注
1文章
619瀏覽量
13599
原文標題:總結和展望
文章出處:【微信號:zenRRan,微信公眾號:深度學習自然語言處理】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論