欣小白的点滴 —————贝叶斯个性化排序(Bayesian Personalized Ranking 即BPR)

一.简介。

排序推荐算法大体上可以分为三类,第一类排序算法类别是点对方法(Pointwise Approach),这类算法将排序问题被转化为分类、回归之类的问题,并使用现有分类、回归等方法进行实现。第二类排序算法是成对方法(Pairwise Approach),在序列方法中,排序被转化为对序列分类或对序列回归。所谓的pair就是成对的排序,比如(a,b)一组表明a比b排的靠前。第三类排序算法是列表方法(Listwise Approach),它采用更加直接的方法对排序问题进行了处理。它在学习和预测过程中都将排序列表作为一个样本。排序的组结构被保持。

二.BPR算法。

2.1.基本思路

在BPR算法中,我们将任意用户u对应的物品进行标记,如果用户u在同时有物品i和j的时候点击了i,那么我们就得到了一个三元组<u,i,j>,它表示对用户u来说,i的排序要比j靠前。如果对于用户u来说我们有m组这样的反馈,那么我们就可以得到m组用户u对应的训练样本。

既然是基于贝叶斯,那么我们也就有假设,这里的假设有两个:一是每个用户之间的偏好行为相互独立,即用户u在商品i和j之间的偏好和其他用户无关。二是同一用户对不同物品的偏序相互独立,也就是用户u在商品i和j之间的偏好和其他的商品无关。为了便于表述,我们用 >u 符号表示用户u的偏好,上面的<u,i,j>可以表示为:i >u j。
在这里插入图片描述

在BPR中,这个排序关系符号>u满足完全性,反对称性和传递性,即对于用户集U和物品集I:

完整性:∀i,j∈I:i≠j⇒i>uj∪j>ui
反对称性:∀i,j∈I:i>uj∩j>ui⇒i=j
传递性:∀i,j,k∈I:i>uj∩j>uk⇒i>uk

同时,BPR也用了矩阵分解模型,这里BPR对于用户集U和物品集I的对应的U×I的预测排序矩阵X¯,我们期望得到两个分解后的用户矩阵W(|U|×k)和物品矩阵H(|I|×k),满足
在这里插入图片描述
那么对于任意一个用户u,对应的任意一个物品i,我们预测得出的用户对该物品的偏好计算如下:
在这里插入图片描述
而模型的最终目标是寻找合适的矩阵W和H,让X¯(即W和H矩阵相乘后的结果)和X(实际的评分矩阵)最相似。

2.2.BPR的运算思路。
BPR 基于最大后验估计P(W,H|>u)来求解模型参数W,H,这里我们用θ来表示参数W和H, >u 代表用户u对应的所有商品的全序关系,则优化目标是P(θ|>u)。根据贝叶斯公式,我们有:
在这里插入图片描述
由于我们求解假设了用户的排序和其他用户无关,那么对于任意一个用户u来说,P(>u)对所有的物品一样,所以有:
在这里插入图片描述
这个优化目标转化为两部分。第一部分和样本数据集D有关,第二部分和样本数据集D无关。
2.2.1.第一部分的优化
对于第一部分,由于我们假设每个用户之间的偏好行为相互独立,同一用户对不同物品的偏序相互独立,所以有:
在这里插入图片描述
其中,在这里插入图片描述
根据上面讲到的完整性和反对称性,优化目标的第一部分可以简化为:
在这里插入图片描述
而对于P(i>uj|θ)这个概率,我们可以使用下面这个式子来代替:
在这里插入图片描述
其中,σ(x)是sigmoid函数,方便优化计算。σ里面的项我们可以理解为用户u对i和j偏好程度的差异,我们当然希望i和j的差异越大越好,这种差异如何体现,最简单的就是差值:
在这里插入图片描述
在这里插入图片描述
而x¯ui(θ),x¯uj(θ),就是我们的矩阵X¯对应位置的值。这里为了方便,我们不写θ,这样上式可以表示为:
在这里插入图片描述
最终,我们的第一部分优化目标转化为:
在这里插入图片描述
2.2.2.第二部分的优化

接下来我们再对第二部分P(θ)进行最大化,由于θ的分布是未知的,为了方便我们的计算,不妨假设其服从均值为0,协方差矩阵是λθI
即,在这里插入图片描述
的正态分布。
因为后面我们做优化时,需要计算lnP(θ),而对于上面假设的这个多维正态分布,其对数和||θ||2成正比。即:在这里插入图片描述
最终对于我们的最大对数后验估计函数
在这里插入图片描述
这个式子可以用梯度上升法或者牛顿法等方法来优化求解模型参数。如果用梯度上升法,对θ求导,我们有:
在这里插入图片描述
在这里插入图片描述
补充:梯度上升法和梯度下降法的分析方式是一致的,只不过把 θ 的更新中 减号变为加号。 其基本原理与下降法一致,区别在于:梯度上升法是求函数的局部最大值。因此,对比梯度下降法,其几何意义和很好理解,那就是:算法的迭代过程是一个“上坡”的过程,每一步选择坡度变化率最大的方向往上走,这个方向就是函数在这一点梯度方向(注意不是反方向了)。最后随着迭代的进行,梯度还是不断减小,最后趋近与零。

有一点我是这样认为的:所谓的梯度“上升”和“下降”,一方面指的是你要计算的结果是函数的极大值还是极小值。计算极小值,就用梯度下降,计算极大值,就是梯度上升;另一方面,运用上升法的时候参数是不断增加的,下降法是参数是不断减小的。但是,在这个过程中,“梯度”本身都是下降的。

2.3BPR的数据处理。
在这里插入图片描述

2.4BPR算法流程。
BPR的算法训练流程:

输入:训练集D三元组,梯度步长α, 正则化参数λ,分解矩阵维度k。          
输出:模型参数,矩阵W,H
1.随机初始化矩阵W,H
2. 迭代更新模型参数:在这里插入图片描述
3. 如果W,H收敛,则算法结束,输出W,H,否则回到步骤2.

当我们拿到W,H后,就可以计算出每一个用户u对应的任意一个商品的排序分:在这里插入图片描述

,最终选择排序分最高的若干商品输出。

三.总结

1.BPR是基于矩阵分解的一种排序算法,它不是做全局的评分优化,而是针对每一个用户自己的商品喜好分贝做排序优化。
2.它是一种pairwise的排序算法,对于每一个三元组<u,i,j>,模型希望能够使用户u对物品i和j的差异更明显。
3.同时,引入了贝叶斯先验,假设参数服从正态分布,在转换后变为了L2正则,减小了模型的过拟合。
补充:
先验概率
指的是根据以往经验和分析得到的概率。例如以上公式中的P(A),P(B),又例如:X 表示投一枚质地均匀的硬币,正面朝上的概率,显然在我们根据以往的经验下,我们会认为X 的概率P(X)=0.5 。其中P(X)=0.5 就是先验概率。
后验概率
后验概率(Posterior Probability)是事件发生后求的反向条件概率;即基于先验概率通过贝叶斯公式求得的反向条件概率。例如公式中的 P(B∣A) 就是通过先验概率 P(A)和P(B) 得到的后验概率,其通俗的讲就是「执果寻因」中的「因」。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值