排序模型入門詳解

排序模型入門詳解



https://yq.aliyun.com/articles/18

1. 排序模型的應用場景

當商家需要向用戶提供多個商品供選擇時,往往會遇到這個問題:如何將商品按照一定的順序呈現給用戶,以便使用戶能夠儘可能地完成購買流程?這就涉及到對商品的排序,用到的模型稱排序模型。通常情況下,我們希望排在前面的商品是用戶更大概率會點擊的商品。

根據不同類型的訓練數據,可以將排序模型可以分爲三大類:

  1. 單點標註(point-wise)
  2. 兩兩標註(pair wise)
  3. 列表標註(list wise)

point-wise排序模型

輸入特徵向量集合表示爲{x(1),x(2),,x(m)}\{x^{(1)},x^{(2)},\cdots,x^{(m)}\},其中x(i)x^{(i)}是一個n維向量,各個維度的含義可以是商品的特徵例如評分、小量、價格以及用戶的特徵例如性別、年齡、偏好等,以及用戶和商品的關聯特徵例如是否點擊過該商品、是否購買過該商品、對該商品的評價等,以及場景特徵如時間、地點等;標籤集合爲y(1),y(2),,y(m)y^{(1)},y^{(2)},\cdots,y^{(m)},其中y(i)y^{(i)}的取值集合是一個實數,例如用戶沒有點擊過的商品爲1,用戶點擊過但是沒購買的商品爲3,用戶點擊併購買過的商品爲10.

在上述定義的基礎上,我, 可以將point-wise排序模型轉換爲一個分類問題或者回歸問題。如果將排序問題轉換爲分類問題,會導致輸出只有預先定義的那幾類(例如1,3,10),進而導致很多商品的label一樣,無法進一步區分次序。因此,實際中往往將point-wise排序模型轉換爲迴歸問題。

point-wise模型的缺點是,沒有考慮訓練樣本之間的相對順序。例如,在某次點擊事件中,用戶點擊了樣本x(i)x^{(i)},在另一次點擊事件中用於點擊了樣本x(j)x^{(j)}(且此次事件中存在樣本x(i)x^{(i)}但是用戶沒有點擊)。根據point-wise模型,x(i)x^{(i)}x(j)x^{(j)}的標籤一樣,但這顯然是不合理的(x(j)x^{(j)}應該比x(i)x^{(i)}更靠前才合理)。

pair-wise排序模型

在pair-wise模型彙總,我們不再從單文檔的分類或者回歸的角度去看待問題,而是從一個文檔對<d1,d2><d_1,d_2>來看待問題。如果用戶點擊了d1d_1而沒有點擊d2d_2,那麼說明d1d_1d2d_2更靠前,可以把d1d2d_1-d_2的label設置爲+1,d2d1d_2-d_1的label設置爲-1,對所有的文檔pair進行這樣標註,就得到了一系列用於二分類的訓練樣本。預測時,對測試集裏面的所有pair進行分類,便可以得到測試集的一個偏序關係,從而實現排序。SVM Rank、RankNet、FRank、RankBoost等方法都是pair-wise模型。

Ranknet

https://www.cnblogs.com/genyuan/p/9788294.html
RankNet提出的時候是爲了解決如下搜索排序問題:給定query集合,每個query都對應着一個文檔集合,如何對每個query返回排序後的文檔集合。
RankNet將輸入query的特徵向量xRnx\in R^n映射爲一個實數KaTeX parse error: Undefined control sequence: \inR at position 5: f(x)\̲i̲n̲R̲

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章