您好,登錄后才能下訂單哦!
如何分析Learning to Rank,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
LTR(Learning torank)學習排序是一種監(jiān)督學習(SupervisedLearning)的排序方法。LTR已經(jīng)被廣泛應用到文本挖掘的很多領域,比如IR中排序返回的文檔,推薦系統(tǒng)中的候選產(chǎn)品、用戶排序,機器翻譯中排序候選翻譯結果等等。IR領域傳統(tǒng)的排序方法一般通過構造相關度函數(shù),然后按照相關度進行排序。影響相關度的因素很多,比如上面提到的tf,idf,dl等。有很多經(jīng)典的模型來完成這一任務,比如VSM,Boolean model,概率模型等。對于傳統(tǒng)的排序方法,很難融合多種信息,比如向量空間模型以tf*idf作為權重構建相關度函數(shù),就很難利用其他信息了,并且如果模型中參數(shù)比較多,也會使得調參非常困難,而且很可能會出現(xiàn)過擬合現(xiàn)象。于是人們很自然的想到了用機器學習(Machine Learning)來解決這一問題,于是就有了Learning to rank。機器學習方法很容易融合多種特征,而且有成熟深厚的理論基礎,參數(shù)是通過迭代優(yōu)化出來的,有一套成熟理論解決稀疏、過擬合等問題。學習排序系統(tǒng)框架如圖2.1所示:
圖2.1 排序學習系統(tǒng)框架
對于標注訓練集,選定LTR方法,確定損失函數(shù),以最小化損失函數(shù)為目標進行優(yōu)化即可得到排序模型的相關參數(shù),這就是學習過程。預測過程將待預測結果輸入學習得到的排序模型中,即可得到結果的相關得分,利用該得分進行排序即可得到待預測結果的最終順序。
LTR一般說來有三類方法:單文檔方法(Pointwise),文檔對方法(Pairwise),文檔列表方法(Listwise)。
Pointwise處理對象是單一文檔,將文檔轉化為特征向量后,主要是將排序問題轉化為機器學習中常規(guī)的分類或回歸問題。我們現(xiàn)以多類分類為例進行舉例:表2-1是人工標注的部分訓練集合,每個文檔采用三個特征:查詢與文檔的BM25相似度,查詢與文檔的cosin相似度,以及頁面的PageRank值,query與di的相關性是多元的,label分為 5個等級,即{perfect,Excellent,good,fair,bad}。于是,產(chǎn)生了5個具有l(wèi)abel的訓練實例,然后我們可以使用機器學習的任一種多類分類算法進行學習,比如最大熵,支持向量機等。
Pointwise完全從單文檔的分類角度計算,沒有考慮文檔之間的相對順序。而且它假設相關度是查詢無關的,只要(query,di)的相關度相同,那么他們就被劃分到同一個級別中,屬于同一類。然而實際上,相關度的相對性是和查詢相關的,比如一個常見的查詢它會有很多相關的文檔,該查詢和它相關性相對靠后的文檔的label標注級別時可能會比一個稀有的查詢和它為數(shù)不多的高度相關文檔的label標準級別更高。這樣就導致訓練樣本的不一致,并且對于預測為同一label級別的文檔之間也無法相對排序。Pointwise常用方法有McRank等。當模型參數(shù)學習完畢后,之后就可利用模型進行相關性判斷,對新的查詢和文檔,通過模型的打分函數(shù)可以得到一個數(shù)值,利用該數(shù)值即可對文檔進行排序了。
Pairwise是目前比較流行的方法,相對pointwise他將重點轉向文檔順序關系。它主要將排序問題歸結為二元分類問題,這時候機器學習的方法就比較多了,比如Boost、SVM、神經(jīng)網(wǎng)絡等。對于同一query的相關文檔集中,對任何兩個不同label的文檔,都可以得到一個訓練實例(di,dj),如果di>dj則賦值+1,反之-1,于是我們就得到了二元分類器訓練所需的訓練樣本了,如圖2.2所示。測試時,只要對所有pair進行分類就可以得到所有文檔的一個偏序關系,從而實現(xiàn)排序。
圖2.2 Pairwise排序方法示意
盡管Pairwise對Pointwise做了改進,但該方法還是存在明顯的問題:
A.只考慮了兩篇文檔的相對順序,沒有考慮他們出現(xiàn)在搜索結果列表中的位置。排在前面的文檔更為重要,如果出現(xiàn)在前面的文檔判斷錯誤,懲罰函數(shù)要明顯高于排在后面判斷錯誤。因此需要引入位置因素,每個文檔對根據(jù)其在結果列表中的位置具有不同的權重,越排在前面權重越大,如果排錯順序其受到的懲罰也越大。
B.對于不同的查詢相關文檔集的數(shù)量差異很大,轉換為文檔對后,有的查詢可能只有十幾個文檔對,而有的查詢可能會有數(shù)百個對應的文檔對,這對學習系統(tǒng)的效果評價帶來了偏置。假設查詢1對應500個文檔對,查詢2對應10個文檔對,假設機器學習系統(tǒng)對應查詢1能夠判斷正確480個文檔對,對應查詢2能夠判斷正確2個。對于總的文檔對該系統(tǒng)準確率是(480+2)/(500+10)=95%,但從查詢的角度,兩個查詢對應的準確率分別為:96%和20%,平均為58%,與總的文檔對判斷準確率相差巨大,這將使得模型偏向于相關文檔集大的查詢。
Pairwise有很多的實現(xiàn),比如Ranking SVM,RankNet,F(xiàn)rank,RankBoost等。
Listwise與上述兩種方法不同,它是將每個查詢對應的所有搜索結果列表作為一個訓練樣例。Listwise根據(jù)訓練樣例訓練得到最優(yōu)評分函數(shù)F,對應新的查詢,評分F對每個文檔打分,然后根據(jù)得分由高到低排序,即為最終的排序結果。
對應如何訓練最優(yōu)評分函數(shù)F,本文介紹一種基于搜索結果排列組合的概率分布情況來訓練的方法。如圖2-2所示,對應查詢Q,假設搜索引擎返回結果A、B、C三個文檔,這三篇文檔可以產(chǎn)生6中排列方式,對應評分函數(shù)F,對三篇文檔進行相關度打分,得到F(A)、F(B)、F(C),根據(jù)這三個值可以計算6種排列組合情況各自的概率值。對應不同的評分函數(shù)F,六種排列的概率分布是不同的。
假設評分函數(shù)g是由人工標記得到的標準答案對應的評分函數(shù),它是怎樣的我們暫時不清楚,我們試圖找到一個評分函數(shù)f,使得f產(chǎn)生的打分和人工的打分盡可能相同。假設存在兩個其他評分函數(shù)h和f,他們的計算方法已知,對應的搜索排列組合概率分布如圖所示,通過KL距離可知,f比h更接近于虛擬的最優(yōu)函數(shù)g。訓練過程就是在盡可能的函數(shù)中尋找最接近虛擬函數(shù)g的那個函數(shù),預測時用該評分函數(shù)進行打分。
Listwise方法往往更加直接,它專注于自己的目標和任務,直接對文檔排序結果進行優(yōu)化,因此往往效果也是最好的。Listwise常用方法有AdaRank,SoftRank,LambdaMART等。
1.人工標注。如果需要大量的訓練數(shù)據(jù),人工標注不太現(xiàn)實
2.對應搜索引擎來說,可以通過用戶點擊記錄來獲取訓練數(shù)據(jù)。對應查詢返回的搜索結果,用戶會點擊其中的某些網(wǎng)頁,假設用戶優(yōu)先點擊的是和查詢更相關的網(wǎng)頁。盡管很多時候這種假設并不成立,但實際經(jīng)驗表明這種獲取訓練數(shù)據(jù)是可行的。
使用LTR時會選取一系列文本特征,利用機器學習方法很好的融合到一個排序模型中,來決定最終結果的順序,其中每一個特征我們稱為一個“feature”。對于一個網(wǎng)頁文本,feature所在的文檔區(qū)域可以包括body域,anchor域,title域,url域,whole document域等。
文檔的feature又可以分為兩種類型:一是文檔本身的特征,比如Pagerank值、內容豐富度、spam值、number of slash、url length、inlink number、outlink number、siterank等。二是Query-Doc的特征:文檔對應查詢的相關度、每個域的tf、idf值,bool model,vsm,bm25,language model相關度等。
關于如何分析Learning to Rank問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業(yè)資訊頻道了解更多相關知識。
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。