在機器學習的 ranking 技術——learning2rank,包括 pointwise、pairwise、listwise 三大類型。
1、Pointwise Approach
1.1 特點
Pointwise 類方法,其 L2R 框架具有以下特征:
輸入空間中樣本是單個 doc(和對應 query)構成的特征向量;
輸出空間中樣本是單個 doc(和對應 query)的相關度;
假設空間中樣本是打分函數;
損失函數評估單個 doc 的預測得分和真實得分之間差異。
這里討論下,關于人工標注標簽怎么轉換到 pointwise 類方法的輸出空間:
如果標注直接是相關度 s_j,則 doc x_j 的真實標簽定義為 y_j=s_j
如果標注是 pairwise preference s_{u,v},則 doc x_j 的真實標簽可以利用該 doc 擊敗了其他 docs 的頻次
如果標注是整體排序 π,則 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 之間差異。
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 相關度的排列;
損失函數分成兩類,一類是直接和評價指標相關的,還有一類不是直接相關的。具 體后面介紹。
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,主要針對前述第四個缺陷
以上,這三大類方法主要區別在于損失函數。不同的損失函數決定了不同的模型學 習過程和輸入輸出空間。
部分文章來源與網絡,若有侵權請聯系站長刪除!