推荐系统中的BPR算法
发布网友
发布时间:2024-10-10 16:30
我来回答
共1个回答
热心网友
时间:2024-11-05 07:23
一、什么是BPR算法?
BPR算法,全称为贝叶斯个性化排序(Bayesian Personalized Ranking),是一种常用的推荐系统算法。它主要利用用户的隐式反馈,如点击、收藏等,通过对问题进行贝叶斯分析,得到最大后验概率来对物品进行排序,从而产生推荐。
二、BPR算法的基本原理
1.符号定义:
U:用户集
I:物品集
S:隐式反馈集
u:用户u的偏好
此关系满足完整性、反对称性和传递性约束
2.训练数据的预处理:
首先对隐式反馈矩阵进行预处理,得到训练数据集
3.两个基本假设:
BPR算法的基本思想是利用最大化后验概率来确定所有item的正确个性化排序
4.BPR的推导:
根据贝叶斯公式得[公式]
因为BPR假设用户的排序和其他用户无关,那么对于任意一个用户u来说,P(>u)对所有的物品都为一个常数,所以最大化,等价于最大化
这个最大化目标可以分为两部分,左边的部分与数据集有关,右边部分P(θ)与数据集无关
我们先最大化左边的部分[公式]
根据完整性和反对称性约束,上式可以简化成
而对于
这个概率,可以使用下面这个式子来代替:
其中,
事实上[公式] 也可以取其他满足完整性、反对称性和传递性三个约束条件的其他函数,BPR的最先提出者使用sigmod函数是为了方便接下来的计算
这儿的
同样可以是任何关于模型参数向量θ的实值函数,前提是该函数能映射出用户u与物品i和j之间的关系
于是第一部分的优化目标最终变成了
接下来我们再对第二部分P(θ)进行最大化
由于θ的分布是未知的,为了方便我们的计算,不妨假设其服从均值为0,协方差矩阵为的正态分布
于是最大化变成了求解下式的最大值
三、一个BPR算法的求解实例
在上一节的BPR算法的推导中,我们假设θ为某个模型的参数向量,本节我们讨论当这个模型为矩阵分解模型时,BPR算法的求解方法
此时我们的预测目标是得到一个预测排序矩阵
这个矩阵可以被分解为
,其中W为|U|×k维矩阵,H为|I|×k维矩阵,k远小于|U|和|I|
由于BPR是基于用户维度的,所以对于任意一个用户u,对应的任意一个物品i我们期望有:
[公式] 表示物品i对于用户u的排序优先度
此时我们再令
可得到最终需要求解的最大对数后验估计函数
这个式子对θ求偏导后,可以用梯度上升法或者牛顿法等方法来优化求解模型参数