【推荐算法】从零开始做推荐(五)——贝叶斯个性化排序矩阵分解 (BPRMF) 推荐实战

前言

   之前我们已经陆续完成了数据集、评价指标和经典算法MF推荐的实战,接下来本章将介绍另一种应用也非常广泛的推荐技术:贝叶斯个性化排序(Bayesian Personalized Ranking, BPR。将基于BPR矩阵分解进行推荐实战。

  如果你对本系列(未写完,持续更新中)感兴趣,可接以下传送门:
  【推荐算法】从零开始做推荐(一)——认识推荐、认识数据
  【推荐算法】从零开始做推荐(二)——推荐系统的评价指标,计算原理与实现样例
  【推荐算法】从零开始做推荐(三)——传统矩阵分解的TopK推荐
  【推荐算法】从零开始做推荐(四)——python Keras框架 利用Embedding实现矩阵分解TopK推荐
  【推荐算法】从零开始做推荐(五)——贝叶斯个性化排序矩阵分解 (BPRMF) 推荐实战
  【推荐算法】从零开始做推荐(六)——贝叶斯性化排序矩阵分解 (BPRMF) 的Tensorflow版

什么是BPR?

  这就要提到本人神交已久的引路人刘建平先生文章的介绍:贝叶斯个性化排序(BPR)算法小结。中文讲解,十分详细。
  本文重在实现,这里只做一个简单的介绍,以下为本人对BPR的理解:假设用户 u u u 能观测到所有的项目,那么对于用户最终点击访问的项目 i i i, 和最终未访问的项目 j j j,有偏好 i > u j i>_uj i>uj。因此,BPR寻求一批参数 Θ \Theta Θ,使得概率 P ( Θ ∣ > u ) P(\Theta|>_u) P(Θ>u)最大.
  这里举个例子,比如网易云给你推荐了一个歌单,里面有10首歌,10首你都看到了,然后选了第一首,其他没选。那么在这10首歌里,相比于其他9首你更喜欢第一首,即访问第一首的概率要比其他9首要大,学出来的参数就要能很好地描述这一点。
  那么说直白点,就是期望用户访问过的项目,其评分要高于未访问过的,我们的目标即为最大化两者之间的差距。
  在这个过程中,我们可以明确几点:
  1. BPR不是具体的推荐方法,而是一种思想,因此它可以应用在多种推荐模型上,本文将其应用到矩阵分解上。
  2. BPR是一种参数学习的方法,得到的参数是基于BPR思想的。

核心算法

  以下内容以刘建平老师的博客为基准进行实现。

损失函数

arg ⁡ max ⁡ θ l ( θ ) = ∑ ( u , i , j ) ∈ D l n σ ( x ‾ u i − x ‾ u j ) + λ ∣ ∣ θ ∣ ∣ 2 , σ ( x ) = 1 1 + e − x \mathop{\arg\max_{θ}}\mathcal{l}(θ)=\sum_{(u,i,j)\in D} ln \sigma(\overline{x}_{ui}-\overline{x}_{uj})+\lambda||\theta||^2,\\ \sigma(x) = \frac{1}{1+e^{-x}} argθmaxl(θ)=(u,i,j)Dlnσ(xuixuj)+λθ2,σ(x)=1+ex1

求解过程

在这里插入图片描述

求解算法


                
  • 9
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lechuan_dafo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值