![]()
這項由韓國高麗大學(Korea University)及其人類啟發人工智能研究院(Human-inspired AI Research)聯合開展的研究,發表于2026年第49屆國際ACM SIGIR信息檢索研究與發展會議(SIGIR '26),會議時間為2026年7月20日至24日,地點為澳大利亞墨爾本。論文預印本編號為arXiv:2604.04734,有興趣深入了解的讀者可通過該編號查詢完整論文。
**當你向搜索引擎提問,背后發生了什么?**
每當你在搜索框里敲下一個問題,互聯網背后有一套精密的機器在飛速運轉。粗略來說,這套機制分為兩個階段:第一步是"海選",從數以億計的網頁中快速篩選出幾百個候選結果;第二步是"精排",從這幾百個候選中仔細甄別,給出真正最相關的答案。
完成第一步"海選"任務的,就是本文的主角——**稠密檢索模型(Dense Retrieval Model)**。通俗地說,這類模型會把每一篇文章壓縮成一個高維數字向量,就像給每篇文章做一張"基因指紋",然后通過比較問題和文章的"基因指紋"有多相似,來判斷相關性。這種方式速度極快,適合大規模檢索。
然而,把一整篇文章壓縮進一個向量,難免會丟失很多細節。正因如此,稠密檢索模型在精度上往往遜于那些能夠逐字逐句比對問題與文章的精排模型(稱為"交叉編碼器")。好比說,一個能把整本書濃縮成一句話摘要的人,在理解能力上自然比不過一個能逐字通讀全書的人。
為了彌補這個差距,研究人員發明了一種叫**知識蒸餾(Knowledge Distillation)**的訓練方法。道理很簡單:讓精排模型這位"讀書達人"扮演"老師",給各種文章打分,評出哪篇最相關、哪篇次之、哪篇完全無關;再讓稠密檢索模型這個"學生"努力學習老師的打分習慣。這樣,學生雖然不能像老師那樣精讀全書,卻能從老師的評價體系中汲取智慧,大幅提升檢索質量。
問題是:老師打了那么多分,學生到底該學哪些樣本?
韓國高麗大學的研究團隊發現,在如何選擇"學習材料"這件事上,過去的方法存在一個根本性的盲區。而正是這個盲區,可能悄悄地拉低了整個檢索系統的水平。
一、為什么只盯著"最難的題目"可能適得其反
在知識蒸餾的訓練過程中,研究人員一直有一個主流共識:要給學生挑選"難題"來練習,也就是選擇那些對檢索模型來說難以區分的負樣本,行話叫**"難負樣本"(Hard Negatives)**。
這背后的邏輯乍聽起來很有道理——就像備考時專攻錯題集,哪里不會就練哪里,效率最高。具體操作上,常見的做法是取檢索器初步召回的排名靠前的文檔(retriever-top),或者直接取教師模型打分最高的若干個負樣本(reranker-top),作為訓練數據。
然而,韓國高麗大學的團隊提出了一個反直覺的問題:如果你在考試備考時,只專注于最難的那幾道題,你真的能把整門課都學扎實嗎?
答案未必是肯定的。假設你在準備一場音樂考試,老師對所有曲目都有細致的品味評價——從"完全聽不下去"到"還湊合"再到"非常精彩",構成一個完整的喜好光譜。但如果你作為學生只拿到老師對"幾首最難區分的中等水平曲目"的評分,你能真正學會老師的品味標準嗎?你只了解了老師喜好光譜中間那一小段,對于極好和極差的作品,你依然一無所知。
這正是當前主流方法的問題所在。通過只挑選難負樣本(無論是檢索器認為最難的,還是精排老師給分最高的),模型接觸到的其實只是老師評分分布中的一個狹窄切片。學生從未見過老師如何評價"明顯無關"的文檔,也沒有見過老師如何評價"中等相關"的文檔,更沒有從整體上理解老師的完整偏好結構。
這種訓練方式的后果是:模型在處理訓練數據分布內的問題時還湊合,但一旦遇到訓練時沒見過的新領域或新類型問題(即"域外泛化"問題),就會明顯表現變差。
高麗大學團隊由此提出了一個核心命題:**知識蒸餾的本質,不是讓學生做難題,而是讓學生完整地理解老師的整體評分邏輯。** 要實現這一點,訓練樣本必須均勻地覆蓋老師打分的整個范圍,而不是集中在某一個區間。
二、"老師的評分單":一個關于分數分布的思考實驗
為了更直覺地理解這個問題,不妨把整個過程類比成一位美食評論家(老師模型)給一百道菜打分的場景。
這位美食評論家非常嚴苛,會給每道菜打一個從0到1的分數:0分代表"簡直難以下咽",1分代表"人間極品"。現在,你想培訓一個新廚師(學生模型),讓他學會這位評論家的口味標準。
過去常見的做法是這樣的:只給新廚師看那些得分在0.6到0.8之間的菜(這些菜是評論家覺得"還不錯但有些差強人意"的難以區分的中等菜肴)。這相當于"只盯最難的題目"——評論家對這些菜的區分判斷,確實包含了最微妙的信息。
然而,新廚師從來沒見過那些得0.1分的"難吃透頂"的菜,也沒見過那些得0.95分的"令人驚艷"的菜。他對這位評論家口味的理解是殘缺的、片面的。當他以后遇到一道全新的菜,可能就無法準確判斷評論家會打幾分。
高麗大學團隊的方案是:**把這一百道菜的分數均勻地切成8段,從每一段中各抽一道菜給新廚師看。** 這樣,從最難吃到最好吃,每個分數區間都有代表。新廚師雖然只見了8道菜,卻對評論家的整體口味圖譜有了完整的認識。
這就是他們提出的**分層抽樣(Stratified Sampling)**的核心思想。
三、分層抽樣:如何在數學上"復刻"老師的完整口味
研究團隊將這一直覺想法轉化為了嚴密的算法。具體操作如下:
對于每一個用戶查詢,系統首先準備一個包含200篇候選負樣本文檔的候選池(下文會介紹這個候選池是怎么建立的)。然后,用"精排老師"——在這項研究中使用的是當前最強大的語言模型之一Qwen3-Reranker-8B——給這200篇文檔以及那1篇正樣本文檔(共201篇)打分。
為了讓不同查詢之間的分數具有可比性,研究團隊對每條查詢的所有分數進行了"最小-最大歸一化"處理,將所有分數統一映射到0到1之間。這樣,每條查詢下,最高分的文檔得1分,最低分的得0分,其他文檔的分數按比例分布在中間。
接下來是分層抽樣的核心步驟。假設要從200篇負樣本中選出K篇(默認K=8)。研究團隊會在0到1之間均勻設置K個"錨點"——如果K=8,錨點就是0、1/7、2/7、3/7、4/7、5/7、6/7、1這8個數值。然后,從200篇文檔中,分別找出得分最接近每個錨點的那篇文檔,將這K篇文檔作為最終的訓練樣本。
這個過程是完全確定性的,不依賴隨機性,也不需要調整任何參數。簡單來說就是:把老師的評分光譜均勻切成K段,從每一段各取一個最具代表性的文檔。
為了驗證這種方法的效果,研究團隊精心設計了一個受控實驗環境:用Qwen3-Embedding-8B檢索每條查詢的前100篇文檔,再從整個語料庫中隨機抽取另外100篇文檔(排除已檢索到的),合并成200篇候選池。這樣設計的目的是讓候選池同時包含"難"樣本(檢索器認為相關的文檔)和"容易"樣本(隨機抽取的,大概率和查詢無關),從而覆蓋完整的難度范圍。
在這200篇候選文檔的基礎上,研究團隊比較了六種不同的抽樣策略:取檢索器排名最高的K篇(retriever-top),取精排老師打分最高的K篇負樣本(reranker-top),取精排老師打分最低的K篇(low),取分數中間段的K篇(mid),隨機抽取K篇(random),以及本文提出的分層抽樣(stratified)。
四、嚴格的雙階段訓練:讓實驗結果更可信
為了確保實驗結論的可靠性,研究團隊設計了嚴格的雙階段訓練流程,將模型本身的能力和訓練數據的影響分離開來。
第一階段叫做**對比學習(Contrastive Learning)**。研究團隊用MS MARCO這個大型信息檢索訓練數據集(包含880萬篇文檔和53.2萬條查詢),對三種不同的基礎編碼器模型進行預訓練,分別是bert-base-uncased、distilbert-base-uncased和co-condenser-marco。這個階段只用查詢本身對應的正樣本和同一批次內其他查詢的文檔作為負樣本(即"批內負樣本"),不使用任何專門挖掘的難負樣本。目的是讓三種模型都先具備基本的文本匹配能力,處于同一起跑線上。
第二階段才是**知識蒸餾(Knowledge Distillation)**階段。以第一階段訓練好的模型為起點,研究團隊用不同的抽樣策略構建訓練數據,并分別使用兩種不同的損失函數——KL散度(KL-divergence)和MarginMSE——來訓練模型學習老師的打分偏好。
KL散度是一種"分布匹配"的方法,目標是讓學生模型給一組文檔打出的分數分布盡量接近老師打出的分數分布;MarginMSE則是一種"差值回歸"的方法,目標是讓學生模型正確學習正樣本和每個負樣本之間的分數差距。兩種方法各有特點,組合使用可以更全面地評估不同抽樣策略的效果。
整個實驗使用批大小1024進行對比學習,批大小16進行知識蒸餾,最大序列長度512,均值池化,學習率2e-5,每個階段訓練1個輪次。
五、實驗數據說話:分層抽樣的全面勝出
實驗結果以一張大表格的形式呈現,覆蓋了三種模型(bert、distilbert、co-condenser)和兩種損失函數(KL散度、MarginMSE)的組合,共6種模型配置,每種配置下測試了六種抽樣策略。評估指標包括域內評估(MS MARCO開發集上的MRR@10和Recall@1000,以及TREC深度學習賽道2019的nDCG@10)和域外評估(BEIR基準的13個數據集上的平均nDCG@10)。
結果展現出相當一致的規律。分層抽樣(stratified)和隨機抽樣(random)在幾乎所有配置下都排在前兩名,而偏向某一極端的策略——無論是只選高分的reranker-top、只選低分的low,還是只選檢索器靠前結果的retriever-top——往往表現欠佳,有時甚至嚴重失效。
以最強的基礎模型co-condenser為例,在KL散度損失下,分層抽樣在MS MARCO Dev上的MRR@10達到了0.313,Recall@1000達到0.959,TREC DL 19的nDCG@10為0.587,域外BEIR-13的nDCG@10為0.365,全面領先其他策略。檢索器頂部策略(retriever-top)在BEIR上的表現是0.319,與分層抽樣相差0.046;而精排器頂部策略(reranker-top)的BEIR表現是0.334,乍看還湊合,但在MarginMSE損失下,reranker-top直接導致co-condenser模型完全崩潰——MRR@10僅為0.006,連隨機水平都不如,堪稱"訓練崩潰"的典型案例。相比之下,同樣條件下分層抽樣的MRR@10為0.307,表現穩健。
這種MarginMSE下的"崩潰現象"尤其值得關注。研究團隊的解釋是:MarginMSE是一種回歸型目標函數,對訓練數據中的分布偏差和噪聲更為敏感。當你只給模型看精排器打分最高的那些負樣本時,這批文檔的分數都非常接近,彼此之間的差距微乎其微;模型在試圖擬合這些幾乎沒有差異的分數時,很容易陷入數值不穩定的困境,最終導致訓練失敗。相反,分層抽樣提供了從高到低均勻分布的分數,模型能夠從清晰的分數差異中學到有意義的排序信號,訓練過程因此保持穩定。
六、用數字證明:分層抽樣最完整地還原了老師的"品味地圖"
為了從理論層面解釋為什么分層抽樣效果最好,研究團隊對六種策略生成的訓練數據進行了統計分析,計算了三個衡量分數分布多樣性的指標:覆蓋度(Coverage,即所選文檔分數的最大值與最小值之差)、熵(Entropy,衡量分數分布的均勻程度,用8個等寬區間的香農熵計算)、標準差(Standard Deviation,衡量分數的離散程度)。
統計結果印證了直覺判斷。分層抽樣在三個指標上全部排名第一:覆蓋度0.990,熵1.523,標準差0.359。這意味著分層抽樣選出的文檔橫跨了老師評分的幾乎整個范圍(從最低分附近到最高分附近),且在各個區間上分布相對均勻,分數彼此之間差異顯著。
排名第二的隨機抽樣雖然也有一定的多樣性(覆蓋度0.759,熵1.270,標準差0.295),但因為隨機性的存在,有時會湊巧覆蓋分布較廣,有時則會不幸集中在某一區間,導致性能不穩定。
而中間段策略(mid)的覆蓋度只有0.323,檢索器頂部策略(retriever-top)更是只有0.196,精排器頂部策略(reranker-top)僅為0.106,低分策略(low)則低到了0.046。這些策略的熵和標準差同樣極低,說明它們選出的文檔在老師評分分布上非常集中,只展示了老師品味圖譜的一個極小片段。
最關鍵的發現是:三個多樣性指標的排名與實際檢索性能的排名高度一致。這種一致性強有力地說明,保留老師評分分布的多樣性,才是知識蒸餾取得良好泛化效果的真正關鍵所在。
七、K值變化下的穩健性:隨著數據增多,優勢愈發明顯
研究團隊還測試了當訓練樣本數量K從4變化到8再到16時,各策略的性能表現如何變化,使用distilbert-base作為骨干模型,同時測試了KL散度和MarginMSE兩種損失函數。
實驗圖表揭示了分層抽樣的另一個重要優勢:**對K值的變化具有高度穩健性**。無論K等于4、8還是16,分層抽樣的表現始終處于所有策略的最前列,不會因為K值的變動而出現忽高忽低的波動。
檢索器頂部和精排器頂部策略則表現不穩定,在某些K值下崩潰,在另一些K值下勉強湊合,缺乏可預測性。隨機抽樣在K=4時的域外表現略強于分層抽樣,這可以理解為:當K非常小時,隨機偶爾會碰巧選出分布較廣的幾個點,而分層抽樣用4個點覆蓋整個范圍時,每個區間的代表性還不夠充分。
然而一旦K增大,分層抽樣的系統性優勢就變得越來越明顯。這是因為隨著K增大,分層抽樣會越來越密地填滿評分光譜上的空白,每新增一個樣本都帶來了一個之前從未見過的新區間的信息,學習信號是真正互補的。而隨機抽樣在K增大時,很可能出現大量重復覆蓋同一個分數區間的樣本,新增樣本提供的額外信息越來越少,邊際效益遞減。
在所有實驗配置中,性能峰值出現在MarginMSE損失、K=16、分層抽樣的組合下:TREC DL 19的nDCG@10達到0.531,BEIR的nDCG@10達到0.343。這進一步說明,當訓練數據能夠更完整地呈現老師的評分分布時,回歸型目標函數能夠從中提取出更精準的學習信號。
說到底,這項研究講述了一個關于"學習方式"的故事。過去,大家都覺得給檢索模型訓練時應該專攻難題,多做那些容易搞混的例子。高麗大學的團隊卻用嚴謹的實驗告訴我們:真正重要的不是難題的數量,而是你能否完整地接觸到老師對事物評價的全貌。
就好比學一位美食評論家的口味,光盯著那些他覺得"還行但差一點點"的菜是不夠的,你還需要知道他覺得"極好"的是什么樣,覺得"難吃透頂"的又是什么樣。只有把整個品味譜系都摸清了,才算真正學到了精髓。
這個發現的實際意義不容小覷。現如今,幾乎所有的互聯網搜索引擎、企業內部知識庫檢索、學術文獻搜索,背后都有稠密檢索模型在工作。訓練這些模型時,如果采用分層抽樣這個簡單而免參數的方法來構建訓練數據,就能在不增加任何計算復雜度的情況下,顯著提升檢索系統在各類場景下的準確度和魯棒性。
分層抽樣本身的操作極為簡單:把教師模型的評分均勻切段,每段取一個最接近中點的文檔就行了,不需要復雜的調度算法,不需要課程學習,也不需要動態調整任何超參數。這對于工業界的工程師來說,是一個難得的"低成本高回報"的改進方案。
當然,這項研究也留下了一些值得繼續探索的問題。實驗中的候選池是人工構建的受控環境,真實工業場景中的候選文檔質量和分布可能更為復雜多變。分層抽樣在更大規模、更多樣化候選池中的表現如何,以及是否可以與動態負樣本挖掘等方法結合,都是值得進一步研究的方向。你是否也在思考:如果同時對候選池的構成方式也進行優化,會帶來多大的性能提升?
有興趣深入了解實驗細節和完整數據的讀者,可以通過arXiv編號2604.04734查閱這篇論文的全文。
Q&A
Q1:知識蒸餾在信息檢索中具體是怎么工作的?
A:知識蒸餾在信息檢索中的工作方式是:讓一個精排能力強但計算慢的"教師模型"(通常是交叉編碼器)給一批候選文檔打分,反映它對每篇文檔與查詢相關性的判斷;然后讓一個速度快但精度稍低的"學生模型"(稠密檢索器)學習模仿教師的這些打分結果。學生通過最小化自己與教師之間的分數差異(用KL散度或MarginMSE等損失函數衡量),逐漸習得教師的排序偏好,從而在保持高速檢索效率的同時,盡可能接近精排模型的準確度。
Q2:分層抽樣和隨機抽樣有什么本質區別?
A:隨機抽樣是從候選文檔中不加區分地隨機選取,運氣好時可能碰巧覆蓋整個分數范圍,運氣不好時則可能集中在某一區間,結果不穩定。分層抽樣則是先將教師的評分范圍均勻切成K段,再從每段中各取一個最具代表性的文檔,保證每個分數區間都有且僅有一個代表,結果完全確定、不依賴隨機性。統計數據顯示,分層抽樣的分數覆蓋度(0.990)、熵(1.523)和標準差(0.359)均高于隨機抽樣,且在實驗中表現更穩定,隨K值變化時波動也更小。
Q3:為什么只用精排器打分最高的負樣本訓練會導致模型崩潰?
A:精排器打分最高的負樣本意味著這些文檔與正樣本非常接近,彼此之間的分數差異極小。當使用MarginMSE這種需要擬合正負樣本分數差值的回歸型損失函數時,這些幾乎相同的分數差值會讓模型陷入數值不穩定,因為模型要從近乎為零的差值中學習有意義的排序信號,極易出現梯度問題。在co-condenser模型搭配MarginMSE損失的實驗中,這種策略導致MRR@10僅為0.006,模型幾乎完全失去了檢索能力,而分層抽樣在同等條件下達到了0.307,充分說明分數分布多樣性對訓練穩定性至關重要。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.