本文介紹了本小組發表于EMNLP2022 Industry Track的論文SimANS,其設計了一簡單有效的通用困惑負樣本采樣方法,在5個數據集上提升了SOTA的稠密檢索模型的效果。
論文下載地址:https://arxiv.org/pdf/2210.11773.pdf
論文開源代碼:https://github.com/microsoft/SimXNS
前言
在各類檢索任務中,為訓練好一個高質量的檢索模型,往往需要從大量的候選樣本集合中采樣高質量的負例,配合正例一起進行訓練。已有的負采樣方法往往采用隨機采樣策略(Random Sampling)或直接基于該檢索模型自身選擇Top-K負例(Top-K Hard Negative Sampling),前者易得到過于簡單的樣例,無法為模型訓練提供足夠信息;后者很可能采樣得到假負例(False Negative),反而干擾模型訓練。本文針對稠密檢索場景,通過一系列基于負例梯度的實驗對隨機采樣和Top-K采樣兩種方式導致的問題進行分析,發現前一種負例產生的梯度均值較小、后一種負例產生的梯度方差較大,這兩者都不利于檢索模型訓練。此外,以上實驗還發現,在所有負例候選中,與Query的語義相似度接近于正例的負例可以同時具有較大的梯度均值和較小的梯度方差,是更加高質量的困惑負樣本。因此我們設計了一個簡單的困惑負樣本采樣方法SimANS,在4個篇章和文檔檢索數據集,以及Bing真實數據集上均成功提升了SOTA模型的效果,且該方法已經應用于Bing搜索系統。
一、研究背景與動機
1、稠密檢索
給出用戶的查詢Query,檢索任務關注于從大量的候選文檔集中檢索最相關的Top-K文檔。隨著近年來文本表示方法的發展,稠密檢索任務開始成為該任務的主流方法,其通常采用一雙塔模型架構,分別將查詢Query和候選Document轉換成低維的稠密表示,然后基于Query和Document稠密表示的點積來預測兩者的語義相關性,并依此進行候選文檔的排序。這一計算方式支持ANN等方法加速,故可以推廣到千萬級別文檔的查詢。
近年來,由于預訓練語言模型的出現,已有的稠密檢索方法往往采用預訓練語言模型作為Query和Document的Encoder,然后將其編碼后生成的[CLS]表示作為其稠密表示。
2、負采樣方法
為訓練該稠密檢索模型,已有方法通常基于一對比學習訓練目標,即拉近語義一致的Query和Document的表示(Positive),并推遠語義無關的Document(Negative)。由于在大量的候選文檔集中,大量的文檔都是語義無關的,故需要采用一合適的負采樣方法,從中選擇高質量的負例來進行訓練,依此減少需要的負樣本數量。
2.1.隨機負采樣
該類方法直接基于一均勻分布從所有的候選Document中隨機抽取Document作為負例,這一過程中由于無法保證采樣得到的負例的質量,故經常會采樣得到過于簡單的負例,其不僅無法給模型帶來有用信息,還可能導致模型過擬合,進而無法區分某些較難的負例樣本。
2.2.Top-K負采樣
該類方法往往基于一稠密檢索模型對所有候選Document與Query計算匹配分數,然后直接選擇其中Top-K的候選Document作為負例。該方法雖然可以保證采樣得到的負例是模型未能較好區分的較難負例,但是其很可能將潛在的正例也誤判為負例,即假負例(False Negative)。如果訓練模型去將該部分假負例與正例區分開來,反而會導致模型無法準確衡量Query-Document的語義相似度。
二、先導實驗
1、理論分析不同負例訓練時對梯度的影響
以稠密檢索常用的BCE loss為例,正例與采樣的負例在計算完語義相似度分數后,均會被softmax歸一化,之后計算得到的梯度如下所示:
上式中是經過softmax歸一化后的語義相似度分數。對于隨機采樣方法,由于其采樣得到的負例往往過于簡單,其會導致該分數接近于零,,進而導致其生成的梯度均值也接近于零,,這樣過于小的梯度均值會導致模型不易于收斂。對于Top-K采樣方法,由于其很容易采樣得到語義與正例一致的假負例,其會導致正負樣本的右項值相似,但是左項符號相反,這樣會導致計算得到的梯度方差很大,同樣導致模型訓練不穩定。
2、實驗驗證不同負例的梯度與語義相似度關系
我們基于SOTA的稠密檢索模型AR2,在MS-MARCO數據集上,首先計算候選Document與Query的語義相似度分數,然后將這些Document進行排序,并計算其梯度的均值與方差。如下圖所示,我們可以看到實驗結論與以上分析一致,排名靠前的Top-K負例產生的梯度均值和方差均很大;而排名靠后的負例產生的均值和方差均很小,兩者不能很好的平衡大均值和小方差這兩個很重要的負例性質。作為對比的是,與正例語義相似度接近的負例往往能夠同時取得較大的梯度均值和較小的梯度方差,有利于模型訓練。我們將其命名為困惑樣本(既不過于難又不過于容易區分),并關注于對其進行采樣。
三、SimANS:簡單的困惑樣本采樣方法
基于上述實驗,我們考慮對與正例語義相似度接近的困惑負例樣本進行采樣。故設計的采樣方法應該具有以下特點:(1)與Query無關的Document應被賦予較低的相關分數,因其可提供的信息量不足;(2)與Query很可能相關的Document應被賦予較低的相關分數,因其可能是假負例;(3)與正例語義相似度接近的Document應該被賦予較高的相關分數,因其既需要被學習,同時是假負例的概率相對較低。
困惑樣本采樣分布
通過以上分析可得,在該采樣分布中,隨著Query與候選Document相關分數和與正例的相關分數的差值的縮小,該候選Document被采樣作為負例的概率應該逐漸增大,故可將該差值作為輸入,配合任意一單調遞減函數即可實現(如)。故可設計采樣分布如下所示:
其中為控制該分布密度的超參數,為控制該分布極值點的超參數,是一隨機采樣的正例樣本,是Top-K的負例。通過調節K的大小,我們可以控制該采樣分布的計算開銷。以下為該采樣方法具體實現的偽代碼:
四、實驗結果
1、主實驗
我們在4個公開的文檔檢索數據集上進行實驗,分別是Natural Question(NQ)、Trivia QA(TQ)、MS-MARCO Passage Ranking(MS-Pas)和MS-MARCO Document Ranking(MS-Doc)數據集;同時還在Bing真實工業數據集上進行實驗,實驗結果如下表所示。通過對比可以清晰地看出我們的方法可以提升SOTA的AR2模型的效果,進一步領先其他模型。
2、該負采樣方法的通用性
我們還在RocketQA和ANCE這兩個經典的稠密檢索模型上實現了我們提出的SimANS方法,來提升這些模型的性能。可以看出,在采用該方法之后,以上兩個模型的的表現都超過了原始模型,證明了我們提出的方法的通用性。
3、負采樣分布的可視化
在實驗的最后,我們將SimANS得到的采樣分布制作成圖,可以看到我們的采樣分布函數確實能夠懲罰過于難和過于簡單的負例,并保證與正例的語義相似度接近的負例的采樣概率較大。實現了我們的設計初衷。
審核編輯 :李倩
-
參數
+關注
關注
11文章
1839瀏覽量
32287 -
語言模型
+關注
關注
0文章
528瀏覽量
10292 -
數據集
+關注
關注
4文章
1208瀏覽量
24731
原文標題:EMNLP2022 | SimANS:簡單有效的困惑負樣本采樣方法
文章出處:【微信號:zenRRan,微信公眾號:深度學習自然語言處理】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論