Learning to Rank學習筆記3:The Listwise Approach

Listwise是對query下的整個文檔集合進行排序。Listwise的算法大致可以分為兩種,一種是直接想辦法去優(yōu)化NDCG、MAP這些評價指標,另一種是去自定義優(yōu)化損失函數(shù)。NDCG與MAP這些基于排序位置來計算的指標是不連續(xù)、不可微的。第一種方法是想辦法將這些評價指標轉(zhuǎn)化為連續(xù)可微的近似指標,然后去優(yōu)化。在這里我們介紹第二種方法中的ListNet算法。ListNet的損失函數(shù)是用這種排列下的概率分布來定義的。使用的概率分布是Plackett–Luce model。

假設(shè)一共有m篇文檔,π代表一種排列方式,s代表一種打分函數(shù)。則有該排列方式出現(xiàn)的概率為

代表文檔被排在第j位置的分數(shù),\varphi 是一種轉(zhuǎn)換函數(shù),可以為線性指數(shù)或者sigmoid形式。

觀察后面的式子,含義可以看作,一個文檔有可能排在1-m各個位次,該式是這個文檔排在第j位的概率。將所有位置的文檔排列在該位置的概率乘起來,就是這個排列出現(xiàn)的概率。

書中指到,plackett-luce模型在一定條件下具有尺度不變性和平移不變性。例如,當我們使用指數(shù)函數(shù)作為轉(zhuǎn)換函數(shù)時,在將相同的常數(shù)添加到所有排名分數(shù)之后,plackett–luce模型定義的排列概率分布將不會改變。當我們使用線性函數(shù)作為轉(zhuǎn)換函數(shù)時,所有的排名分數(shù)乘以相同的常數(shù)后,排列概率分布不會改變。這些特性與我們的對排名的直覺相近。

在這個概率定義以后,用KL散度或者交叉熵來衡量某排列與ground truth的差異。

書中提到,這樣計算出的損失函數(shù)與真實的NDCG損失是相關(guān)性很強的,可以看作是一種不錯的替代。由于排列組合的多樣性,該算法在完整排列上應(yīng)用起來計算量很大,所以一般只計算TOP-K的出現(xiàn)概率。

簡書怎么老是吞字,服了。。。

Pointwise的不足之處:

Pointwise使用傳統(tǒng)的分類,回歸或者OrdinalRegression來對給定query下的單個文檔的相關(guān)度進行建模,沒有文檔位置對排序結(jié)果的影響,而回歸和分類的損失函數(shù)會盡量擬合所有的數(shù)據(jù),算法為了整體損失最小,有可能把排在前面的文檔的損失變得更大,或者把排在后面的文檔的損失變得更小,從而導(dǎo)致排序難以取得良好的效果。

Pairwise的不足:

文檔較多時,pair的數(shù)目是平方級增長的,計算量太大;Pair對不同級別之間的區(qū)分度一致對待,沒有對排在前面的結(jié)果作更好的區(qū)分。對于搜索引擎而言,用戶更傾向于點擊前幾頁的結(jié)果;相關(guān)文檔集大小帶來模型的偏置。如果一個query下文檔遠多于另一query,支持向量就會向該query偏置,導(dǎo)致分類器對后者區(qū)分不好。

個人感覺ListNet由于計算量以及數(shù)據(jù)準備困難的問題,線上應(yīng)該比較難實現(xiàn).lambdaMART考慮到了排序位置的因素,某種意義上也算是一種Listwise算法,而且可以直接調(diào)包,應(yīng)該是線上最常見的一種排序算法。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容