Learning to Rank之Ranking SVM 簡介


  排序一直是信息檢索的核心問題之一,Learning to Rank(簡稱LTR)用機器學習的思想來解決排序問題(關於Learning to Rank的簡介請見我的博文Learning to Rank簡介)。LTR有三種主要的方法:PointWise,PairWise,ListWise。Ranking SVM算法是PointWise方法的一種,由R. Herbrich等人在2000提出, T. Joachims介紹了一種基於用戶Clickthrough數據使用Ranking SVM來進行排序的方法(SIGKDD, 2002)。

1. Ranking SVM的主要思想

  Ranking SVM是一種Pointwise的排序算法, 給定查詢q, 文檔d1>d2>d3(亦即文檔d1比文檔d2相關, 文檔d2比文檔d3相關, x1, x2, x3分別是d1, d2, d3的特征)。為了使用機器學習的方法進行排序,我們將排序轉化為一個分類問題。我們定義新的訓練樣本, 令x1-x2, x1-x3, x2-x3為正樣本,令x2-x1, x3-x1, x3-x2為負樣本, 然后訓練一個二分類器(支持向量機)來對這些新的訓練樣本進行分類,如下圖所示:

  左圖中每個橢圓代表一個查詢, 橢圓內的點代表那些要計算和該查詢的相關度的文檔, 三角代表很相關, 圓圈代表一般相關, 叉號代表不相關。我們把左圖中的單個的文檔轉換成右圖中的文檔對(di, dj), 實心方塊代表正樣本, 亦即di>dj, 空心方塊代表負樣本, 亦即di<dj

2. Ranking SVM

  將排序問題轉化為分類問題之后, 我們就可以使用常用的機器學習方法解決該問題。 Ranking SVM使用SVM來進行分類:

  

  其中w為參數向量, x為文檔的特征,y為文檔對之間的相對相關性, ξ為松弛變量。

3. 使用Clickthrough數據作為訓練數據

  T. Joachims提出了一種非常巧妙的方法, 來使用Clickthrough數據作為Ranking SVM的訓練數據。

  假設給定一個查詢"Support Vector Machine", 搜索引擎的返回結果為

  其中1, 3, 7三個結果被用戶點擊過, 其他的則沒有。因為返回的結果本身是有序的, 用戶更傾向於點擊排在前面的結果, 所以用戶的點擊行為本身是有偏(Bias)的。為了從有偏的點擊數據中獲得文檔的相關信息, 我們認為: 如果一個用戶點擊了a而沒有點擊b, 但是b在排序結果中的位置高於a, 則a>b。

  所以上面的用戶點擊行為意味着: 3>2, 7>2, 7>4, 7>5, 7>6。

4. Ranking SVM的開源實現

  H. Joachims的主頁上有Ranking SVM的開源實現。

  數據的格式與LIBSVM的輸入格式比較相似, 第一列代表文檔的相關性, 值越大代表越相關, 第二列代表查詢, 后面的代表特征

3 qid:1 1:1 2:1 3:0 4:0.2 5:0 # 1A
2 qid:1 1:0 2:0 3:1 4:0.1 5:1 # 1B 
1 qid:1 1:0 2:1 3:0 4:0.4 5:0 # 1C
1 qid:1 1:0 2:0 3:1 4:0.3 5:0 # 1D  
1 qid:2 1:0 2:0 3:1 4:0.2 5:0 # 2A  
2 qid:2 1:1 2:0 3:1 4:0.4 5:0 # 2B 
1 qid:2 1:0 2:0 3:1 4:0.1 5:0 # 2C 
1 qid:2 1:0 2:0 3:1 4:0.2 5:0 # 2D  
2 qid:3 1:0 2:0 3:1 4:0.1 5:1 # 3A 
3 qid:3 1:1 2:1 3:0 4:0.3 5:0 # 3B 
4 qid:3 1:1 2:0 3:0 4:0.4 5:1 # 3C 
1 qid:3 1:0 2:1 3:1 4:0.5 5:0 # 3D

  訓練模型和對測試數據進行排序的代碼分別為:

  ./svm_rank_learn path/to/train path/to/model 
 ./svm_classify path/to/test path/to/model path/to/rank_result

 

參考文獻:

  [1]. R. Herbrich, T. Graepel, and K. Obermayer. Large margin rank boundaries for ordinal regression. In Advances in Large Margin Classifiers, 2000. 

  [2]. T. Joachims. Optimizing Search Engines using Clickthrough Data. SIGKDD, 2002.

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

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

  [5]. Learning to Rank簡介

 


免責聲明!

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



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