排序模型入門詳解
https://yq.aliyun.com/articles/18
1. 排序模型的應用場景
當商家需要向用戶提供多個商品供選擇時,往往會遇到這個問題:如何將商品按照一定的順序呈現給用戶,以便使用戶能夠儘可能地完成購買流程?這就涉及到對商品的排序,用到的模型稱排序模型。通常情況下,我們希望排在前面的商品是用戶更大概率會點擊的商品。
根據不同類型的訓練數據,可以將排序模型可以分爲三大類:
- 單點標註(point-wise)
- 兩兩標註(pair wise)
- 列表標註(list wise)
point-wise排序模型
輸入特徵向量集合表示爲,其中是一個n維向量,各個維度的含義可以是商品的特徵例如評分、小量、價格以及用戶的特徵例如性別、年齡、偏好等,以及用戶和商品的關聯特徵例如是否點擊過該商品、是否購買過該商品、對該商品的評價等,以及場景特徵如時間、地點等;標籤集合爲,其中的取值集合是一個實數,例如用戶沒有點擊過的商品爲1,用戶點擊過但是沒購買的商品爲3,用戶點擊併購買過的商品爲10.
在上述定義的基礎上,我, 可以將point-wise排序模型轉換爲一個分類問題或者回歸問題。如果將排序問題轉換爲分類問題,會導致輸出只有預先定義的那幾類(例如1,3,10),進而導致很多商品的label一樣,無法進一步區分次序。因此,實際中往往將point-wise排序模型轉換爲迴歸問題。
point-wise模型的缺點是,沒有考慮訓練樣本之間的相對順序。例如,在某次點擊事件中,用戶點擊了樣本,在另一次點擊事件中用於點擊了樣本(且此次事件中存在樣本但是用戶沒有點擊)。根據point-wise模型,和的標籤一樣,但這顯然是不合理的(應該比更靠前才合理)。
pair-wise排序模型
在pair-wise模型彙總,我們不再從單文檔的分類或者回歸的角度去看待問題,而是從一個文檔對來看待問題。如果用戶點擊了而沒有點擊,那麼說明比更靠前,可以把的label設置爲+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的特徵向量映射爲一個實數KaTeX parse error: Undefined control sequence: \inR at position 5: f(x)\̲i̲n̲R̲。