推荐系统的个性化排名
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
这两个损失是可互换的个性化排名推荐。
3. 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.