推薦系統的個性化排名

推薦系統的個性化排名

Personalized Ranking for Recommender Systems

在前幾節中,只考慮了明確的反饋,並根據觀察到的評分對模型進行了訓練和測試。這種方法有兩個缺點:第一,大多數反饋不是顯式的,而是在實際場景中隱含的,並且顯式反饋的收集成本可能更高。第二,完全忽略了可以預測用戶興趣的未觀察到的用戶項對,使得這些方法不適用於由於用戶偏好而不是隨機缺失評級的情況。未觀察到的用戶項對是真實的負反饋(用戶對項目不感興趣)和缺失值(用戶將來可能與項目交互)的混合體。簡單地忽略了矩陣分解和自迴歸中未觀察到的對。顯然,這些模型無法區分觀察到的和未觀察到的對,並且通常不適合個性化的排序任務。

爲此,一類基於隱式反饋生成排名推薦列表的推薦模型得到了廣泛的應用。一般來說,個性化的排名模型可以用逐點、成對或列表方式進行優化。點態方法一次只考慮一個交互,訓練分類器或迴歸器來預測個人偏好。矩陣因子分解和自迴歸以點爲目標進行優化。成對方法爲每個用戶考慮一對項目,並旨在近似該對項目的最佳排序。相對排序法更適合於任務的排序。列表方法近似於整個項目列表的排序,例如,直接優化排序指標,如標準化折扣累積收益(NDCG)。然而,與逐點或成對方法相比,列表方法更復雜,計算量更大。在本節中,將介紹兩個成對的目標/損失,貝葉斯個性化排序損失和鉸鏈損失,以及各自的實現。

  1. Bayesian Personalized Ranking Loss and its Implementation

Bayesian personalized ranking(BPR)[Rendle et al.,2009]是一種基於最大後驗估計量的成對個性化排名損失。已被廣泛應用於許多現有的推薦模型中。BPR的訓練數據由正負兩對(缺失值)組成。假設用戶更喜歡積極的項目,而不是所有其未觀察到的項目。
在形式上,訓練數據是以元組(u,i,j)的形式構造的(which represents
that the user uu prefers the item ii over the item j),以後驗概率最大化爲目標的業務流程再造的貝葉斯公式如下:
在這裏插入圖片描述
在這裏插入圖片描述
將實現基類mxnet.gluon。Loss損失和覆蓋的前向方法構造貝葉斯個性化排序損失。首先導入Loss類和np模塊。

from mxnet
import gluon, np, npx

npx.set_np()

BPR的Loss實現如下:

#@save

class BPRLoss(gluon.loss.Loss):

def __init__(self, weight=None, batch_axis=0, **kwargs):

    super(BPRLoss, self).__init__(weight=None, batch_axis=0, **kwargs)

def forward(self, positive, negative):

    distances = positive - negative

    loss = - np.sum(np.log(npx.sigmoid(distances)), 0, keepdims=True)

    return

loss

5.2. Hinge Loss and its Implementation

排序的Hinge loss損失與通常用於SVM等分類器的gluon library庫中的Hinge loss損失有不同的形式。推薦系統中用於排名的損失如下表所示。
在這裏插入圖片描述
m安全邊際量大小。

目的是把消極的東西從積極的東西中推開。與BPR類似,目標是優化正樣本和負樣本之間的相關距離,而不是絕對輸出,使其非常適合推薦系統。

#@save

class HingeLossbRec(gluon.loss.Loss):

def __init__(self, weight=None, batch_axis=0, **kwargs):

    super(HingeLossbRec, self).__init__(weight=None, batch_axis=0,  **kwargs)

def forward(self, positive, negative, margin=1):

    distances = positive - negative

    loss = np.sum(np.maximum(- distances + margin, 0))

    return loss

這兩個損失是可互換的個性化排名推薦。

  1. Summary

· There are three types of ranking losses available for the personalized ranking task in recommender systems, namely, pointwise, pairwise and listwise methods.

· The two pairwise loses, Bayesian personalized ranking loss and hinge loss, can be used interchangeably.

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