Learning to Rank 簡介


  去年實習時,因為項目需要,接觸了一下Learning to Rank(以下簡稱L2R),感覺很有意思,也有很大的應用價值。L2R將機器學習的技術很好的應用到了排序中,並提出了一些新的理論和算法,不僅有效地解決了排序的問題,其中一些算法(比如LambdaRank)的思想非常新穎,可以在其他領域中進行借鑒。鑒於排序在許多領域中的核心地位,L2R可以被廣泛的應用在信息(文檔)檢索,協同過濾等領域。

  本文將對L2R做一個比較深入的介紹,主要參考了劉鐵岩、李航等人的幾篇相關文獻[1,2,3],我們將圍繞以下幾點來介紹L2R:現有的排序模型,為什么需要使用機器學習的方法來進行排序,L2R特征的選取,L2R訓練數據的獲取,L2R訓練和測試,L2R算法分類和簡介,L2R效果評價等。

1.現有的排序模型

  排序(Ranking)一直是信息檢索的核心研究問題,有大量的成熟的方法,主要可以分為以下兩類:相關度排序模型和重要性排序模型。

1.1 相關度排序模型(Relevance Ranking Model)

  相關度排序模型根據查詢和文檔之間的相似度來對文檔進行排序。常用的模型包括:布爾模型(Boolean Model),向量空間模型(Vector Space Model),隱語義分析(Latent Semantic Analysis),BM25,LMIR模型等等。

1.2 重要性排序模型(Importance Ranking Model)

  重要性排序模型不考慮查詢,而僅僅根據網頁(亦即文檔)之間的圖結構來判斷文檔的權威程度,典型的權威網站包括Google,Yahoo!等。常用的模型包括PageRank,HITS,HillTop,TrustRank等等。

2. 為什么需要使用機器學習的方法來進行排序

  對於傳統的排序模型,單個模型往往只能考慮某一個方面(相關度或者重要性),所以只是用單個模型達不到要求。搜索引擎通常會組合多種排序模型來進行排序,但是,如何組合多個排序模型來形成一個新的排序模型,以及如何調節這些參數,都是一個很大的問題。

  使用機器學習的方法,我們可以把各個現有排序模型的輸出作為特征,然后訓練一個新的模型,並自動學得這個新的模型的參數,從而很方便的可以組合多個現有的排序模型來生成新的排序模型。

3. L2R的特征選取

  與文本分類不同,L2R考慮的是給定查詢的文檔集合的排序。所以,L2R用到的特征不僅僅包含文檔d本身的一些特征(比如是否是Spam)等,也包括文檔d和給定查詢q之間的相關度,以及文檔在整個網絡上的重要性(比如PageRank值等),亦即我們可以使用相關性排序模型和重要性排序模型的輸出來作為L2R的特征。

  1). 傳統排序模型的輸出,既包括相關性排序模型的輸出f(q,d),也包括重要性排序模型的輸出。

  2). 文檔本身的一些特征,比如是否是Spam等。

4. L2R訓練數據的獲取

  L2R的訓練數據可以有三種形式:對於每個查詢,各個文檔的絕對相關值(非常相關,比較相關,不相關,等等);對於每個查詢,兩兩文檔之間的相對相關值(文檔1比文檔2相關,文檔4比文檔3相關,等等);對於每個查詢,所有文檔的按相關度排序的列表(文檔1>文檔2>文檔3)。這三種形式的訓練數據之間可以相互轉換,詳見[1]。

  訓練數據的獲取有兩種主要方法:人工標注[3]和從日志文件中挖掘[4]。

  人工標注:首先從搜索引擎的搜索記錄中隨機抽取一些查詢,將這些查詢提交給多個不同的搜索引擎,然后選取各個搜索引擎返回結果的前K個,最后由專業人員來對這些文檔按照和查詢的相關度進行標注。

  從日志中挖掘:搜索引擎都有大量的日志記錄用戶的行為,我們可以從中提取出L2R的訓練數據。Joachims提出了一種很有意思的方法[4]:給定一個查詢,搜索引擎返回的結果列表為L,用戶點擊的文檔的集合為C,如果一個文檔di被點擊過,另外一個文檔dj沒有被點擊過,並且dj在結果列表中排在di之前,則di>dj就是一條訓練記錄。亦即訓練數據為:{di>dj|di屬於C,dj屬於L-C,p(dj)<p(di)},其中p(d)表示文檔d在查詢結果列表中的位置,越小表示越靠前。

5. L2R模型訓練

  L2R是一個有監督學習過程。

  對與每個給定的查詢-文檔對(query document pair),抽取相應的特征(既包括查詢和文檔之間的各種相關度,也包括文檔本身的特征以及重要性等),另外通過或者人工標注或者從日志中挖掘的方法來得到給定查詢下文檔集合的真實序列。然后我們使用L2R的各種算法來學到一個排序模型,使其輸出的文檔序列和真實序列盡可能相似。

6. L2R算法分類和簡介

  L2R算法主要包括三種類別:PointWise,PairWise,ListWise。

1). PointWise L2R

  PointWise方法只考慮給定查詢下,單個文檔的絕對相關度,而不考慮其他文檔和給定查詢的相關度。亦即給定查詢q的一個真實文檔序列,我們只需要考慮單個文檔di和該查詢的相關程度ci,亦即輸入數據應該是如下的形式:

  Pointwise方法主要包括以下算法:Pranking (NIPS 2002), OAP-BPM (EMCL 2003), Ranking with Large Margin Principles (NIPS 2002), Constraint Ordinal Regression (ICML 2005)。

  Pointwise方法僅僅使用傳統的分類,回歸或者Ordinal Regression方法來對給定查詢下單個文檔的相關度進行建模。這種方法沒有考慮到排序的一些特征,比如文檔之間的排序結果針對的是給定查詢下的文檔集合,而Pointwise方法僅僅考慮單個文檔的絕對相關度;另外,在排序中,排在最前的幾個文檔對排序效果的影響非常重要,Pointwise沒有考慮這方面的影響。

 2). Pairwise L2R

  Pairwise方法考慮給定查詢下,兩個文檔之間的相對相關度。亦即給定查詢q的一個真實文檔序列,我們只需要考慮任意兩個相關度不同的文檔之間的相對相關度:di>dj,或者di<dj。

  Pairwise方法主要包括以下幾種算法:Learning to Retrieve Information (SCC 1995), Learning to Order Things (NIPS 1998), Ranking SVM (ICANN 1999), RankBoost (JMLR 2003), LDM (SIGIR 2005), RankNet (ICML 2005), Frank (SIGIR 2007), MHR(SIGIR 2007), Round Robin Ranking (ECML 2003), GBRank (SIGIR 2007), QBRank (NIPS 2007), MPRank (ICML 2007), IRSVM (SIGIR 2006) 。

  相比於Pointwise方法,Pairwise方法通過考慮兩兩文檔之間的相對相關度來進行排序,有一定的進步。但是,Pairwise使用的這種基於兩兩文檔之間相對相關度的損失函數,和真正衡量排序效果的一些指標之間,可能存在很大的不同,有時甚至是負相關,如下圖所示(pairwise的損失函數和NDCG之呈現出負相關性):

  另外,有的Pairwise方法沒有考慮到排序結果前幾名對整個排序的重要性,也沒有考慮不同查詢對應的文檔集合的大小對查詢結果的影響(但是有的Pairwise方法對這些進行了改進,比如IR SVM就是對Ranking SVM針對以上缺點進行改進得到的算法)。

3). Listwise L2R

  與Pointwise和Pairwise方法不同,Listwise方法直接考慮給定查詢下的文檔集合的整體序列,直接優化模型輸出的文檔序列,使得其盡可能接近真實文檔序列。

  Listwise算法主要包括以下幾種算法:LambdaRank (NIPS 2006), AdaRank (SIGIR 2007), SVM-MAP (SIGIR 2007), SoftRank (LR4IR 2007), GPRank (LR4IR 2007), CCA (SIGIR 2007), RankCosine (IP&M 2007), ListNet (ICML 2007), ListMLE (ICML 2008) 。

  相比於Pointwise和Pairwise方法,Listwise方法直接優化給定查詢下,整個文檔集合的序列,所以比較好的解決了克服了以上算法的缺陷。Listwise方法中的LambdaMART(是對RankNet和LambdaRank的改進)在Yahoo Learning to Rank Challenge表現出最好的性能。

7. L2R效果評價

  L2R是用機器學習的方法來進行排序,所以評價L2R效果的指標就是評價排序的指標,主要包括一下幾種:

  1) WTA(Winners take all) 對於給定的查詢q,如果模型返回的結果列表中,第一個文檔是相關的,則WTA(q)=1,否則為0.

  2) MRR(Mean Reciprocal Rank) 對於給定查詢q,如果第一個相關的文檔的位置是R(q),則MRR(q)=1/R(q)。

  3) MAP(Mean Average Precision) 對於每個真實相關的文檔d,考慮其在模型排序結果中的位置P(d),統計該位置之前的文檔集合的分類准確率,取所有這些准確率的平均值。

  4) NDCG(Normalized Discounted Cumulative Gain) 是一種綜合考慮模型排序結果和真實序列之間的關系的一種指標,也是最常用的衡量排序結果的指標,詳見Wikipedia

  5) RC(Rank Correlation) 使用相關度來衡量排序結果和真實序列之間的相似度,常用的指標是Kendall's Tau。 

 

  參考文獻:

  [1]. Learning to Rank for Information Retrieval. Tie-yan Liu.

  [2]. Learning to Rank for Information Retrieval and Natural Language Processing. Hang Li.

  [3]. A Short Introduction to Learning to Rank. Hang Li.

  [4]. Optimizing Search Engines using Clickthrough Data. Thorsten Joachims. SIGKDD,2002.

  [5]. Learning to Rank小結


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM