Learning to Rank:Point-wise、Pair-wise 和 List-wise區別


 機器學習的 ranking 技術——learning2rank,包括 pointwise、pairwise、listwise 三大類型。

 

 

【Ref-1】給出的:
<Point wise ranking 類似於回歸>
Point wise ranking is analogous to regression. Each point has an associated rank score, and you want to predict that rank score. So your labeled data set will have a feature vector and associated rank score given a query
IE: {d1, r1} {d2, r2} {d3, r3} {d4, r4}
where r1 > r2 > r3 >r4
 
<Pairwise ranking 類似於分類>
Pairwise ranking is analogous to classification. Each data point is associated with another data point, and the goal is to learn a classifier which will predict which of the two is "more" relevant to a given query.
IE: {d1 > d2} {d2 > d3} {d3 > d4}

 

  1、Pointwise Approach

  1.1 特點

  Pointwise 類方法,其 L2R 框架具有以下特征:

  • 輸入空間中樣本是單個 doc(和對應 query)構成的特征向量;
  • 輸出空間中樣本是單個 doc(和對應 query)的相關度;
  • 假設空間中樣本是打分函數;
  • 損失函數評估單個 doc 的預測得分和真實得分之間差異。

  這里討論下,關於人工標注標簽怎么轉換到 pointwise 類方法的輸出空間:

  1. 如果標注直接是相關度 s_j,則 doc x_j 的真實標簽定義為 y_j=s_j
  2. 如果標注是 pairwise preference s_{u,v},則 doc x_j 的真實標簽可以利用該 doc 擊敗了其他 docs 的頻次
  3. 如果標注是整體排序 π,則 doc x_j 的真實標簽可以利用映射函數,如將 doc 的排序位置序號當作真實標簽

  1.2  根據使用的 ML 方法不同,pointwise 類可以進一步分成三類:基於回歸的算法、基於分類的算法,基於有序回歸的算法。

  (1)基於回歸的算法

    此時,輸出空間包含的是實值相關度得分。采用 ML 中傳統的回歸方法即可。

  (2)基於分類的算法

    此時,輸出空間包含的是無序類別。對於二分類,SVM、LR 等均可;對於多分類,提升樹等均可。

  (3)基於有序回歸的算法

    此時,輸出空間包含的是有序類別。通常是找到一個打分函數,然后用一系列閾值對得分進行分割,得到有序類別。采用 PRanking、基於 margin 的方法都可以。

  1.3  缺陷  

    回顧概述中提到的評估指標應該基於 query 和 position,

  • ranking 追求的是排序結果,並不要求精確打分,只要有相對打分即可。
  • pointwise 類方法並沒有考慮同一個 query 對應的 docs 間的內部依賴性。一方面,導致輸入空間內的樣本不是 IID 的,違反了 ML 的基本假設,另一方面,沒有充分利用這種樣本間的結構性。其次,當不同 query 對應不同數量的 docs 時,整體 loss 將會被對應 docs 數量大的 query 組所支配,前面說過應該每組 query 都是等價的。
  • 損失函數也沒有 model 到預測排序中的位置信息。因此,損失函數可能無意的過多強調那些不重要的 docs,即那些排序在后面對用戶體驗影響小的 doc。

  1.4  改進

    如在 loss 中引入基於 query 的正則化因子的 RankCosine 方法。

  

  2、Pairwise Approach

    2.1 特點

  Pairwise 類方法,其 L2R 框架具有以下特征:

  • 輸入空間中樣本是(同一 query 對應的)兩個 doc(和對應 query)構成的兩個特征向量;
  • 輸出空間中樣本是 pairwise preference;
  • 假設空間中樣本是二變量函數;
  • 損失函數評估 doc pair 的預測 preference 和真實 preference 之間差異。

  這里討論下,關於人工標注標簽怎么轉換到 pairwise 類方法的輸出空間:

  1. 如果標注直接是相關度 s_j,則 doc pair (x_u,x_v) 的真實標簽定義為 y_{u,v}=2*I_{s_u>s_v}-1
  2. 如果標注是 pairwise preference s_{u,v},則 doc pair (x_u,x_v) 的真實標簽定義為y_{u,v}=s_{u,v}
  3. 如果標注是整體排序 π,則 doc pair (x_u,x_v) 的真實標簽定義為y_{u,v}=2*I_{π_u,π_v}-1

  2.2  基於二分類的算法  

  Pairwise 類方法基本就是使用二分類算法即可。

  經典的算法有 基於 NN 的 SortNet,基於 NN 的 RankNet,基於 fidelity loss 的 FRank,基於 AdaBoost 的 RankBoost,基於 SVM 的 RankingSVM,基於提升樹的 GBRank。

  2.3  缺陷  

  雖然 pairwise 類相較 pointwise 類 model 到一些 doc pair 間的相對順序信息,但還是存在不少問題,回顧概述中提到的評估指標應該基於 query 和 position,
  • 如果人工標注給定的是第一種和第三種,即已包含多有序類別,那么轉化成 pairwise preference 時必定會損失掉一些更細粒度的相關度標注信息。
  • doc pair 的數量將是 doc 數量的二次,從而 pointwise 類方法就存在的 query 間 doc 數量的不平衡性將在 pairwise 類方法中進一步放大。
  • pairwise 類方法相對 pointwise 類方法對噪聲標注更敏感,即一個錯誤標注會引起多個 doc pair 標注錯誤。
  • pairwise 類方法僅考慮了 doc pair 的相對位置,損失函數還是沒有 model 到預測排序中的位置信息。
  • pairwise 類方法也沒有考慮同一個 query 對應的 doc pair 間的內部依賴性,即輸入空間內的樣本並不是 IID 的,違反了 ML 的基本假設,並且也沒有充分利用這種樣本間的結構性。

  2.4  改進

   pairwise 類方法也有一些嘗試,去一定程度解決上述缺陷,比如:

  • Multiple hyperplane ranker,主要針對前述第一個缺陷
  • magnitude-preserving ranking,主要針對前述第一個缺陷
  • IRSVM,主要針對前述第二個缺陷
  • 采用 Sigmoid 進行改進的 pairwise 方法,主要針對前述第三個缺陷
  • P-norm push,主要針對前述第四個缺陷
  • Ordered weighted average ranking,主要針對前述第四個缺陷
  • LambdaRank,主要針對前述第四個缺陷
  • Sparse ranker,主要針對前述第四個缺陷

 

   3、Listwise Approach

  3.1 特點  

  Listwise 類方法,其 L2R 框架具有以下特征:

  • 輸入空間中樣本是(同一 query 對應的)所有 doc(與對應的 query)構成的多個特征向量(列表);
  • 輸出空間中樣本是這些 doc(和對應 query)的相關度排序列表或者排列;
  • 假設空間中樣本是多變量函數,對於 docs 得到其排列,實踐中,通常是一個打分函數,根據打分函數對所有 docs 的打分進行排序得到 docs 相關度的排列;
  • 損失函數分成兩類,一類是直接和評價指標相關的,還有一類不是直接相關的。具體后面介紹。

  這里討論下,關於人工標注標簽怎么轉換到 listwise 類方法的輸出空間:

  1. 如果標注直接是相關度 s_j,則 doc set 的真實標簽可以利用相關度 s_j 進行比較構造出排列
  2. 如果標注是 pairwise preference s_{u,v},則 doc set 的真實標簽也可以利用所有 s_{u,v} 進行比較構造出排列
  3. 如果標注是整體排序 π,則 doc set 則可以直接得到真實標簽

 

  3.2  根據損失函數構造方式的不同,listwise 類可以分成兩類直接基於評價指標的算法,間接基於評價指標的算法。

   (1)直接基於評價指標的算法

  直接取優化 ranking 的評價指標,也算是 listwise 中最直觀的方法。但這並不簡單,因為前面說過評價指標都是離散不可微的,具體處理方式有這么幾種:

  • 優化基於評價指標的 ranking error 的連續可微的近似,這種方法就可以直接應用已有的優化方法,如SoftRank,ApproximateRank,SmoothRank
  • 優化基於評價指標的 ranking error 的連續可微的上界,如 SVM-MAP,SVM-NDCG,PermuRank
  • 使用可以優化非平滑目標函數的優化技術,如 AdaRank,RankGP

  上述方法的優化目標都是直接和 ranking 的評價指標有關。現在來考慮一個概念,informativeness。通常認為一個更有信息量的指標,可以產生更有效的排序模型。而多層評價指標(NDCG)相較二元評價(AP)指標通常更富信息量。因此,有時雖然使用信息量更少的指標來評估模型,但仍然可以使用更富信息量的指標來作為 loss 進行模型訓練。

     (2)非直接基於評價指標的算法

  這里,不再使用和評價指標相關的 loss 來優化模型,而是設計能衡量模型輸出與真實排列之間差異的 loss,如此獲得的模型在評價指標上也能獲得不錯的性能。 
  經典的如 ,ListNet,ListMLE,StructRank,BoltzRank。

 

  3.3  缺陷  

listwise 類相較 pointwise、pairwise 對 ranking 的 model 更自然,解決了 ranking 應該基於 query 和 position 問題。

listwise 類存在的主要缺陷是:一些 ranking 算法需要基於排列來計算 loss,從而使得訓練復雜度較高,如 ListNet和 BoltzRank。此外,位置信息並沒有在 loss 中得到充分利用,可以考慮在 ListNet 和 ListMLE 的 loss 中引入位置折扣因子。

  3.4  改進

   pairwise 類方法也有一些嘗試,去一定程度解決上述缺陷,比如:

  • Multiple hyperplane ranker,主要針對前述第一個缺陷
  • magnitude-preserving ranking,主要針對前述第一個缺陷
  • IRSVM,主要針對前述第二個缺陷
  • 采用 Sigmoid 進行改進的 pairwise 方法,主要針對前述第三個缺陷
  • P-norm push,主要針對前述第四個缺陷
  • Ordered weighted average ranking,主要針對前述第四個缺陷
  • LambdaRank,主要針對前述第四個缺陷
  • Sparse ranker,主要針對前述第四個缺陷

 

以上,這三大類方法主要區別在於損失函數。不同的損失函數決定了不同的模型學習過程和輸入輸出空間。

 

 

rating數據集:
:所以關於這個問題,是要使用topN=1的對嗎?並把指標改為 AUC和 NDCG對嗎?
——是這樣,這個是一個rating數據集。
如果是按照pairwise ranking的正確率,應該是我們的oPR和oMRR,PR和MAP都是沒有用的。
如果不按照pairwise,(按照listwise),就是AUC和NDCG,所以我讓你算那個。
當然還有就是按照數值,(按照pointwise),RMSE,不過我們的沒法計算RMSE。
:啊這個“不按照pairwise”,沒太明白,還是按照原來的思路,用的 winner 和 loser 比較對呀。尤其在這個rating數據集,是每個比較對當成一個session,這點還是不變的吧??
——這不就是pairwise嗎?
rating是可以按照每個用戶得到一個排序的,這是listwise,也就是算出NDCG,AUC的指標。
還可以按照pointwise,每個分數預測的怎么樣,就是RMSE。

 

 

 

 

【Reference】


免責聲明!

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



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