芝麻HTTP:Learning to Rank概述

Learning to Rank,即排序學習,簡稱爲 L2R,它是構建排序模型的機器學習方法,在信息檢索、天然語言處理、數據挖掘等場景中具備重要的做用。其達到的效果是:給定一組文檔,對任意查詢請求給出反映文檔相關性的文檔排序。本文簡單介紹一下 L2R 的基本算法及評價指標。html

背景

隨着互聯網的快速發展,L2R 技術也愈來愈受到關注,這是機器學習常見的任務之一。信息檢索時,給定一個查詢目標,咱們須要算出最符合要求的結果並返回,這裏面涉及一些特徵計算、匹配等算法,對於海量的數據,若是僅靠人工來干預其中的一些參數來進行排序的話,是遠遠不能達到要求的,而 L2R 算法就是用來解決這種問題的,L2R 將機器學習的技術很好地應用到了排序中,並提出了一些新的理論和方法,有效解決了排序的問題,並且效率上相比人工干預也有了幾個數量級的飛躍。web

L2R 算法

L2R 算法主要包括三種類別:Pointwise、Pairwise、Listwise,下面分別進行介紹。算法

1. Pointwise

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

模型

應用 Pointwise 模型有 Subset Ranking、OC SVM、McRank、Prank 等。函數

輸入

特定的 Query,文檔的特徵向量。性能

輸出

文檔與 Query 的標籤類別或相關性分數。學習

損失函數

迴歸 Loss、分類 Loss、有序迴歸 Loss。優化

優缺點

Pointwise 算法實現簡單,易於理解,但它只對給定 Query 單個文檔的相關度進行建模,僅僅考慮了單個文檔的絕對相關度,Pointwise 只學習到了文檔和 Query 的全局相關性,對排序前後順序有必定的影響。在某一些場景下,排在最前面的幾個文檔對排序結果的影響很是重要,如搜索引擎的第一頁的內容很是重要,而 Pointwise 沒有考慮這方面的影響,不對排序的前後順序優劣作懲罰。搜索引擎

2. Pairwise

上文提到 Pointwise 方法只考慮了單個文檔和 Query 的絕對相關度,Pairwise 考慮的則是兩個文檔之間的相對相關度,比較不一樣文檔的前後順序。Pairwise 方法是目前比較流行的方法,它將整個排序問題轉爲二元分類問題,即構建的是一個二分類器,對一個文檔對 <Doc1, Doc2> 作二分類,一類是 Doc1 排序前於 Doc2,另外一類則相反,經過兩兩比較,模型能夠學習到不一樣文檔之間的前後順序。spa

模型

應用 Pairwise 的模型有 Ranking SVM、RankBoost、RankNet、GBRank、IR SVM 等。

輸入

特定 Query,文檔對 <Doc1, Doc2>。

輸出

文檔對偏向得分,{-1, 1}。

損失函數

Pairwise 分類 Loss。

優缺點

Pairwise 方法經過考慮兩兩文檔之間的相關度來進行排序,有必定進步。但 Pairwise 使用的是兩文檔之間相關相關度的損失函數,而它和真正衡量排序效果的指標之間存在很大不一樣,甚至多是負相關的,如可能出現 Pairwise Loss 愈來愈低,但 NDCG 分數也愈來愈低的現象。另外此方法只考慮了兩個文檔的前後順序,且沒有考慮文檔在搜索列表中出現的位置,致使最終排序效果並不理想。

3. Listwise

Listwise 算法相對於 Pointwise 和 Pairwise 方法來講,它再也不將排序問題轉化爲一個分類問題或者回歸問題,而是直接針對評價指標對文檔的排序結果進行優化,如經常使用的 MAP、NDCG 等。

模型

應用 Listwise 的模型有 ListNet、ListMLE、SVM MAP、AdaRank、SoftRank、LambdaRank、LambdaMART。其中 LambdaMART(對 RankNet 和 LambdaRank 的改進)在 Yahoo Learning to Rank Challenge 表現出最好的性能。

輸入

特定Query,文檔集合

輸出

全部文檔的打分或者排列順序

損失函數

評價指標如 NDCG、MAP 等。

優缺點

因爲此種方法是針對評價指標直接進行優化,因此它每每表現出不錯的效果。

評價指標

L2R 評價指標主要有 NDCG、MAP、WTA、MRR 等,下面分別簡單介紹一下。

1. NDCG

NDCG,全稱爲 Normalized Discounted Cumulative Gain,是一種綜合考慮模型排序結果和真實序列之間的關係的一種指標,也是最經常使用的衡量排序結果的指標,其計算公式以下:

$$ \mathrm{NDCG@K} = \frac{DCG}{iDCG} $$

NDCG 實際上是由 DCG 的值計算出來的,分子爲模型計算出的 DCG 值,分母則爲理想狀況下的 DCG 值,而 DCG 的計算公式以下:

$$ \mathrm{DCG@K} = \sum_{i=1}^{k}{\frac {{2^{r(i)}-1}}{\log_{2}{(i+1)}}} $$

在 DCG 的表達式中,$\sum_{i=1}^{k}$ 是求和累積,${r(i)}$ 表示在模型給出的排序中,排名爲 i 的元素的實際分數,這裏經過 ${2^{r(i)}-1}$ 運算放大了其分數的差別,$\log_{2}{(i+1)}$ 是每一個元素的折價,因爲排序靠前的元素被選取的機率更大,因此這裏可使得排名前面的元素影響權重更大。

2. MAP

MAP,全稱爲 Mean Average Precision,即平均準確率。對於每一個真實相關的文檔,考慮其在模型排序結果中的位置 P,統計該位置以前的文檔集合的分類準確率,取全部這些準確率的平均值。

對於一個 Query,本來有 4 個相關結果,查詢時將 4 個結果都查詢出來了,其 rank 分別爲 1, 2, 4, 7,則 MAP 爲 (1/1 + 2/2 + 3/4 + 4/7)/4 = 0.83。對於另外一個 Query,本來有 5 個相關結果,查詢只有 3 個相關結果,其 rank 分別爲 1, 3, 5,則 MAP 爲 (1/1 + 2/3 + 3/5 + 0 + 0)/5 = 0.45。則 MAP = (0.83 + 0.45)/2 = 0.64。

3. WTA

WTA,全稱 Winners Take All,對於給定的查詢 Query,若是模型返回的結果列表中,第一個文檔是相關的,則 WTA =1, 不然爲 0。

如對於一個 Query,原本有 5 個相關結果,查詢結果中若是第一個結果是相關的,那麼 WTA = 1,若是第一個結果是不相關的,則 WTA = 0。

4. MRR

MRR,全稱 Mean Reciprocal Rank,是把相關文檔在結果中的排序倒數做爲準確度,而後再取平均。

如對於第一個 Query,查詢結果將正確結果排名 rank 爲 3,則其 Reciprocal Rank 爲 1/3,對於第二個 Query,查詢結果將正確結果排名 rank 爲 2,則其 Reciprocal Rank 爲 1/2,對於第三個 Query,查詢結果將正確結果排名 rank 爲 1,則其 Reciprocal Rank 爲 1,則 MRR = (1/3 + 1/2 + 1)/3 = 11/18 = 0.61。

參考資料

相關文章
相關標籤/搜索