【论文阅读+实现】BPR: Bayesian Personalized Ranking from Implicit Feedback

1.BPR是什么?
  • BPR 的全称是贝叶斯个性化排序(Bayesian Personalized Ranking),它是一种排序算法,做的是TopN任务。
  • 适用于隐性反馈数据,当然显性反馈数据把评分变成隐性的也行。
  • 以往做TopN任务的做法是利用用户的行为数据,得到用户对所有物品的预测评分,按照分数的高低进行排序推荐,比如FunkSVD。
  • 以往那些方法的建模目标是对于要进行推荐的物品尽可能的预测为1,对不应该进行推荐的物品尽可能的预测为0。这样的建模目标并不能够学习到物品之间的先后顺序(虽然我们一直假想的把预测值作为排序的依据)。
  • BPR的提出旨在解决物品之间的顺序问题,提出了一个可以应用于各个已有的推荐算法的算法框架,这个算法框架的建模目标是优化物品之间的顺序,解决推荐的物品之间的排序问题。
  • 当然这里还有一个建模目标是解决隐性反馈数据不能显示出用户偏好的问题。
2.BPR建模思路
  • 如果用户在有i、j两个物品的同时消费了i,则我们可以得出用户在i和j之间更加喜欢物品i的假设,则我们可以得到一个三元组<u,i,j>,也就是说,我们希望对于u来说,i物品应该排在j物品的前面。
  • 所以对于所有已经有的隐性反馈集合m条,比如用户购买了某物品的记录,虽然隐性反馈记录并不一定能够完全显示用户的偏好,但是在一定程度上我们可以假设用户更喜欢自己有过购买记录的物品,毕竟他选择购买了。所以如此,我们可以构建m条三元组的训练集。
3.BPR优化方法以及BPR-MF算法流程

在这里插入图片描述
在这里插入图片描述

4.BPR-MF代码展示

在这里插入图片描述

5.小结
  • 其实BPR-MF和FunkSVD都是优化P和Q矩阵,得到训练好的这两个矩阵之后,可以计算用户对所有物品的预测评分,然后选择分数排序最高的商品输出。
  • 两者不同之处在于优化的目标不一样,BPR-MF优化的目标是加大用户喜欢i物品和喜欢j物品的一个概率差值,而FunkSVD的优化目标是为了降低预测分数与本来的分数之间的差值。
  • 不得不说,经过BPR得到的TOPN的评价指标,诸如P、R、NDCG、HR的效果都要略高FunkSVD一些。果然是以排序为目标效果会好!
参考文献

BPR: Bayesian Personalized Ranking from Implicit Feedback
刘老师写的这篇文章写的很详细~~~贝叶斯个性化排序(BPR)算法小结

后记
  1. 不知道为啥Markdown打不出希腊字母了,所以用手写了一遍公式,这些公式都来自BPR这篇论文,可以自行去看。
  2. BPR从上个学期开始看到这个学期开始,现在终于有耐心好好的把这篇论文看完并且把论文复现出来了,惭愧,但是,完成了就是好的嘛!!!
  3. 其实内容写的很乱,不过也是给自己看的,方便之后忘记了,所以,读者有啥不懂,可以留言。
  • 7
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 22
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值