
目录
一、什么是BPR算法?
二、BPR算法的基本原理
三、一个BPR算法的求解实例
一、什么是BPR算法?
BPR即Bayesian Personalized Ranking,中文名称为贝叶斯个性化排序,是当下推荐系统中常用的一种推荐算法。与其他的基于用户评分矩阵的方法不同的是BPR主要采用用户的隐式反馈(如点击、收藏等),通过对问题进行贝叶斯分析得到的最大后验概率来对item进行排序,进而产生推荐。
二、BPR算法的基本原理
1.符号定义
U:用户集
I:物品集
S:

,隐式反馈集。如下图所示

有过隐式反馈记录的为“+”,反之为“?”。
>u:用户u的偏好。

:i和j同时出现时,用户u对i产生了隐式反馈,即相比于j用户u更偏好i
此关系满足完整性、反对称性和传递性约束


2、训练数据的预处理
首先对隐式反馈矩阵进行预处理


得到训练数据集

其中的元素

表示对于u来说,在i和j之间更偏好i
3.两个基本假设:
- 每个用户之间的偏好行为相互独立,即用户u在商品i和j之间的偏好和其他用户无关。
- 同一用户对不同物品的偏序相互独立,也就是用户u在商品i和j之间的偏好和其他的商品无关。
4.BPR的推导
BPR算法的基本思想是利用最大化后验概率来确定所有item

的正确个性化排序,我们不妨假设正确的个性化排序可以由某个模型(如矩阵分解)给出,而θ表示这个模型的参数向量。于是我们优化的目标就是使得

最大,进而求出θ。
根据贝叶斯公式得
因为BPR假设用户的排序和其他用户无关,那么对于任意一个用户u来说,P(>u)对所有的物品都为一个常数,所以最大化

,等价于最大化

即

这个最大化目标可以分为两部分,左边的部分与数据集有关,右边部分P(θ)与数据集无关。
我们先最大化左边的部分


根据完整性和反对称性约束,上式可以简化成

而对于

这个概率,可以使用下面这个式子来代替:

其中,

事实上
这儿的

同样可以是任何关于模型参数向量θ的实值函数,前提是该函数能映射出用户u与物品i和j之间的关系。
于是第一部分的优化目标最终变成了

接下来我们再对第二部分P(θ)进行最大化
由于θ的分布是未知的,为了方便我们的计算,不妨假设其服从均值为0,协方差矩阵为

的正态分布
于是最大化

变成了求解下式的最大值

三、一个BPR算法的求解实例
在上一节的BPR算法的推导中,我们假设θ为某个模型的参数向量,本节我们讨论当这个模型为矩阵分解模型时,BPR算法的求解方法。
此时我们的预测目标是得到一个预测排序矩阵

这个矩阵可以被分解为

,其中W为|U|×k维矩阵,H为|I|×k维矩阵,k远小于|U|和|I|
由于BPR是基于用户维度的,所以对于任意一个用户u,对应的任意一个物品i我们期望有:

此时我们再令

可得到最终需要求解的最大对数后验估计函数

这个式子对θ求偏导后,可以用梯度上升法或者牛顿法等方法来优化求解模型参数
参考文献
[1]Rendle S , Freudenthaler C , Gantner Z , et al. BPR: Bayesian Personalized Ranking from Implicit Feedback[C]// Conference on Uncertainty in Artificial Intelligence. AUAI Press, 2009.