推荐系统中learning to rank(学习排名)

内容:
learn to rank排名的方法
learn to rank排名的评价指标

learn to rank排名的方法

在现实生活中,有很多应用场景需要给用户推荐排名更靠前的的列表,比如实时的商品推荐,基于之前的构面记录给用户推荐下一个要购买的商品,推荐列表中商品的靠前的位置更需要满足用户的偏好。
推荐系统Learning to rank包括三种策略【1】:pointwise(点损失),pairwise(配对损失),listwise(列表损失)

pointwise:实现简单,但是没有考虑商品之间的顺序关系。
pairwise:考虑了商品之间的顺序关系,但是考虑的顺序关系不全面,只是认为交互的商品大于未交互的商品,交互商品之间的排名没有被细致的排名
listwise:针对pairwise缺点进行了修正,对于交互过商品的偏好也进行了排名

1 )pointwise

pointwise :也就是不考虑用户商品之间的关系,只对用户的标签数据进行拟合。比如回归问题和分类问题直接使用相应的真实值或者标签进行训练。这种基于点损失的缺点是无法有效的找出商品和商品之间的排名关系,因为他们是基于标签进行单独训练的。

2 )pirwise

pairwise:基于商品之间的顺序进行训练,不关心商品的真实值只要求用户感兴趣的商品排名更靠前就行,也就是推荐计算出来的商品偏好值只是作为衡量商品的偏好排序关系的标准,无关用户对于商品的偏好程度,比如计算a的商品值为1000,b为1,只能说明a的排名在b商品前,而不能说明a的偏好是b的1000倍。

有很多pairwise排名算法,这些损失的目标是我们不需要拟合原始矩阵,只要知道他们之间的相对位置给出推荐就行。代表性的配对损失算法有BPR损失,通常用户隐式反馈矩阵中,训练的目标是使用户访问过的项目偏好要大于未访问过的项目。

point-wise和pair-wise哪个效果更好?

答:得根据实际问题和数据集选择,pair-wise不一定比point-wise效果好。
BPR损失并不是总是优于pointwise,此论文中也有体现,可能很好可能很坏。通常情况下,当数据集很少的时候pointwise表现较好,当数据集数量很大的时候BPR损失较好。
“最后我们来讨论一下我阅读本文时最为疑虑的地方吧,为什么使用pair-wise的损失函数,要比point-wise的损失函数更好呢?这主要还是看场景吧。比如在电商领域、外卖点餐的时候,我们可能很多东西都喜欢,但是只会挑选一个最喜欢的物品进行点击或者购买。这种情况下并不是一个非黑即白的classification问题,只是说相对于某个物品,我们更喜欢另一个物品,这时候更多的是体现用户对于不同物品的一个相对偏好关系,此时使用pair-wise的损失函数效果可能会好一点。在广告领域,一般情况下用户只会展示一个广告,用户点击了就是点击了,没点击就是没点击,我们可以把它当作非黑即白的classification问题,使用point-wise的损失函数就可以了。
不过还是要提一点,相对于使用point-wise的损失函数,使用pair-wise的损失函数,我们需要采集更多的数据,如果在数据量不是十分充足的情况下,point-wise的损失函数也许是更合适的选择。”

3 )listwise

listwise:用户访问过得兴趣点也有排序。用到了多个item计算损失进行优化。

learn to rank排名的评价指标:MAP,MRR,NDCG评价指标

【1】https://www.cnblogs.com/guangluwutu/p/12450274.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值