LTR|怎麼理解基於機器學習“四大支柱”劃分的學習排序方法

Learning to rank(LTR,L2R)也叫排序學習,泛指機器學習中任何用戶排序的技術,是指一類監督學習(Supervised Learning)排序算法。 LTR被應用在很多領域,比如信息檢索(Information Retrieval)、推薦系統(Recommend System)、搜索引擎(Search Engine)。

LTR框架

一般來講,根據機器學習的“四大支柱”,LTR分爲三類方法:Pointwise Approach、Pairwise Approach、Listwise Approach。不同的方法通過不同的方式去訓練模型,他們定義不同的輸入、不同的輸出、不同的假設、不同的損失函數。

什麼是機器學習的四大支柱?看下圖
機器學習的四大支柱

LTR框架對應的則是排序模型,一個通用的LTR框架如下:

LTR框架

通常來說,一個訓練集由nn個query組成qi(i=1,2,3...,n)q_i(i=1,2,3...,n),每一個query都會有一系列與之相關的documents(通常每個documents都有向量表示,向量內容可以是有意義的特徵,也可以是embedding得出的向量)Xi={xj(i)}y=1m(i)X^i = \{ x_j^{(i)} \}_{y=1}^{m^{(i)}}m(i)m^{(i)}表示與qiq_i相關的documents個數,yy代表documents的正確標籤(可能是0或者1,也能是相關度)。上圖中對應的流程是:準備訓練數據->特徵提取->訓練模型-數據預測->效果評估

Pointwise Approach

解釋

Pointwise是“逐樣本”的訓練方法,即僅考慮單個樣本的得分h(xi)h(x_i)與樣本的真實得分y(i)y^{(i)}的關係。

Pointwise 將問題轉化爲多分類或迴歸問題。如果歸結爲多分類問題,對於某個 Query,對文檔與此 Query 的相關程度打標籤,標籤分爲有限的類別,這樣就將問題轉爲多分類問題;如果歸結爲迴歸問題,對於某個 Query,則對文檔與此 Query 的相關程度計算相關度 Score,這樣就將問題歸結爲迴歸問題。

例如,對於一組樣本數據,用戶一段時間內在幾個商品類別下的瀏覽,收藏,分享,購買次數,然後label爲喜好等級或是否喜歡,如下表所示(數據僞造只爲了說明問題):

用戶 類別 瀏覽 收藏 分享 購買 喜好等級 是否喜歡
userA 數碼產品 43 8 4 2
userB 生活用戶 24 4 2 1
userC 辦公用品 12 1 4 0
userD 衣服 25 5 1 1

如上表所示,用戶在每個類別下的行爲特徵有四個,喜好等級分爲:高、中、低三檔。然後我們可以採用機器學習中的任意一種多分類方法計算用戶對物品類別的喜好等級,當然我們也可以採用二分類的方法計算用戶是否喜歡這個類別,這和推薦系統中基於CTR來做物品排序和pointwise中的二分類思路是一致的。

缺點

  • Pointwise完全從單文檔的分類角度計算,沒有考慮文檔之間的相對順序。而且它假設相關度是查詢無關的,只要(queryyi)(query,y_i)的相關度相同,那麼他們就被劃分到同一個級別中,屬於同一類。比如在CTR場景中構建的訓練集中,所有正樣本之間的相關性,Pointwise是不會考慮,同樣所有的負樣本之間的相關性Pointwise也是不會考慮的。
  • 損失函數中沒有捕獲預測排序中的位置信息,因此,損失函數可能無意的過多強調那些不重要的結果,即那些排序在後面對用戶體驗影響小的結果。

Pairwise Approach

解釋

相對Pointwise而言,Pairwise更在乎的是文檔之間的順序,他主要將排序問題歸結爲二元分類問題,這時候相應的機器學習算法就比較多了,比如Boost、SVM、神經網絡等。對於同一query的相關文檔集中,對任何兩個不同label的文檔,都可以得到一個訓練實例(yi,yj)(y_i,y_j),如果yi>yjy_i>y_j則賦值+1,反之-1,於是我們就得到了二元分類器訓練所需的訓練樣本了。

Pairwise通常用在搜索系統中,系統接收到用戶査詢後,返回相關文檔列表,所以問題的關鍵是確定文檔之間的先後順序關係。Pointwise方法完全從單個文檔的分類得分角度計算,沒有考慮文檔之間的順序關係。文檔對方法將排序問題轉化爲多個pair的排序問題,比較不同文章的先後順序。

在Pairwise算法中,每個輸入數據爲一對具有偏序關係(preference relation)的文檔,通過對這些數據對的有監督學習來獲得一個排序模型,其學習目標是使得結果列表中的錯誤的偏序對越少越好。
pairwise

目前公認最爲經典的三個Pairwise算法是:基於SVM的Ranking SVM算法、基於神經網絡的RankNet算法和基於Boosting的RankBoost算法。

缺點

  • 樣本數據大多數爲有序類別,轉化成 pairwise preference 後必定會損失掉一些更細粒度的相關度標註信息。
  • 轉化成 pairwise preference 後,樣本數量將會增加很多倍,在進行模型訓練時也會需要更大的計算資源。
  • Pairwise 類方法相對 Pointwise 類方法對噪聲標註更敏感,即一個錯誤標註會引起多個pair 標註錯誤。
  • Pairwise 類方法僅考慮了pair 的相對位置,同樣也沒有考慮樣本在預測排序中的位置信息,同時也沒有考慮同一個label對應的數據的內部依賴性。

Listwise Approach

解釋

Pariwise和Pointwise忽視了一個事實就是答案選擇就是從一系列候選句子中的預測問題,相對於 Pointwise 和 Pairwise 方法來說,它不再將排序問題轉化爲一個分類問題或者回歸問題,而是直接針對評價指標對文檔的排序結果進行優化,在listwise中單一訓練樣本是:query和它的所有候選回答句子。

ListWise中常用的優化指標有:MAP、NDCG。常用的ListWise方法有:LambdaRank、AdaRank、SoftRank、LambdaMART。

優缺點

  • 優點:相較 Pointwise、Pairwise 對 ranking 的 model 更自然,解決了 ranking 應該基於 query 和 position 問題。
  • 缺點:一些 ranking 算法需要基於排列來計算 loss,從而使得訓練複雜度較高。

Pointwise VS Pairwise

在推薦系統領域,Pointwise的應用是比Pairwise更廣的,因爲效果更好,但是在搜索系統領域Pairwsie表現比Pointwise更加出色。

在搜索系統中,搜索是帶 query 的、有意識的被動推薦,對於搜索而言,相關性是及其重要的事情。query 限制了你召回商品相關性,比如 “華爲手機”,召回回來一批相似性極高的手機,基於用戶的主觀訴求也決定了他將高度關注商品之間的細微差別,比如價格、顏色、配置等,因此這些商品纔有必要比個高下。

在推薦系統中,推薦是發散的、無意識的主動推薦,相比搜索而言,準確性不再是第一要務(想象下因爲你點過一些手機給你出一整屏手機的感覺),多樣性是一個必要的指標,這導致了推薦結果極其發散。用戶對推薦結果多樣性的訴求使得他不關注兩個商品之間的比較,對於算法而言不再關注商品之間兩兩的比較,我只要每個都預測準了,反正最後也要打散的。而且多樣性也導致了推薦場景沒有像搜索一樣適合做 Pairwise 的樣本。

因爲雖然用的都是學習排序算法,但是在不同的場景中,算法的選擇和使用還是有區別的,要因地制宜!

這篇文章分享就到這裏,如果你有不懂的可以在留言區留言,當然如果你覺得不錯,可以分享給更多人!


【技術服務】,詳情點擊查看: https://mp.weixin.qq.com/s/PtX9ukKRBmazAWARprGIAg

掃一掃 關注微信公衆號!號主 專注於搜索和推薦系統,嘗試使用算法去更好的服務於用戶,包括但不侷限於機器學習,深度學習,強化學習,自然語言理解,知識圖譜,還不定時分享技術,資料,思考等文章!


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章