RankingSVM

將排序問題轉化為pairwise的分類問題,然後使用SVM分類模型進行學習並求解。

排序問題轉化為分類問題


排序函数為f(x),我們根據f(x)的大小来決定哪個document排在前面,哪個document排在後面。即如果f(xi) > f(xj),則xi應該排在xj的前面,反之亦然。可以用下面的公式表示:

對於任意兩個feature vector xi和 xj,在f(x)是線性函數的前提下,下面的關係都是存在的:

便可以對xi和 xj的差值向量考慮二元分類問題。我們可以對其賦值一個label:

Linear SVM


假設一個查詢q,d1>d2>d3(d1最相關,d3最不相關),令X1、X2、X3為d1、d2、d3的特徵向量。

為了使用機器學習的方法進行排序,將排序轉化為分類問題,並定義新的訓練樣本,令X1-X2、X1-X3、X2-X3為正樣本,X2-X1、X3-X1、X3-X2為負樣本,然後訓練一個二分類器對新的訓練樣本進行分類。

一個橢圓代表一個查詢,橢圓內的點代表要計算和該查詢的相關度(三角表高度相關、圓表一般相關、叉表不相關)的文件。

將上圖的單一文件轉換為文件對(di, dj),實心方塊代表正樣本,亦即di>dj,空心方塊代表負樣本,亦即dj>di。

IR SVM


使用了cost sensitive classification,它對來自不同等级的document pair,或者來自不同query的document pair,賦予了不同的loss weight。

  1. 對於Top document,即相似度等级較高的document所在的pair,賦予較大的loss weight。
  2. 對於document數目較少的query,對其下面的document pair賦予較大的loss weight。

RankNet


使用交叉熵作为損失函数,學習出一些模型(例如神經網路、決策樹等)來計算每個pair的排序得分,過程可以使用梯度下降法(找到函數的局部及小值)。RankNet算法沒有使用衡量指標直接作為損失函數的原因,他的函數形式並不是很連續,不好求導也不好用梯度下降法。

網頁u比網頁v與搜索更相關的的概率:

在機器學習中,一般來說訓練就要有個損失函数,來衡量當前模型與訓練樣本的差距,訓練的過程就是把差距不斷減少的過程。

這裡是以最小化文件對的分類錯誤為目標,當兩個文件不相關時,給予一定的懲罰,讓他們分開。

梯度下降法更新疊代求最優的模型參數w。顯然,我們需要設置一定的學習步長,不斷的更新學習新的w,具體公式如下:

求損失函數C關於w的偏導計算公式 :

上式中,得分s關於w的偏導和具體的學習模型有關,原始的RankNet方法使用的是神經網絡模型。這個需要具體模型,具體分析,

這樣我們便直到了如何通過梯度下降法來求RankNet中的打分模型。

results matching ""

    No results matching ""