推荐系统常用算法_推荐系统中的BPR算法

99d5cb4c0e697d9f95afe0cabe18e076.png

目录

一、什么是BPR算法?

二、BPR算法的基本原理

三、一个BPR算法的求解实例


一、什么是BPR算法?

BPR即Bayesian Personalized Ranking,中文名称为贝叶斯个性化排序,是当下推荐系统中常用的一种推荐算法。与其他的基于用户评分矩阵的方法不同的是BPR主要采用用户的隐式反馈(如点击、收藏等),通过对问题进行贝叶斯分析得到的最大后验概率来对item进行排序,进而产生推荐。

二、BPR算法的基本原理

1.符号定义

U:用户集

I:物品集

S

16694c6b677d26a2fae207fc07fad12f.png

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

48c5a37809f48f59723208b3df0ec5cb.png

有过隐式反馈记录的为“+”,反之为“?”。

>u:用户u的偏好。

3ebbaba3b1e6ceea6c6da1439a0c5457.png

:i和j同时出现时,用户u对i产生了隐式反馈,即相比于j用户u更偏好i

此关系满足完整性、反对称性和传递性约束

d831b14b2e4c42d7b71bcb6f39078cc8.png

caa7c854644b2649038bee3bc66377d8.png

2、训练数据的预处理

首先对隐式反馈矩阵进行预处理

82bb79c2225f9a4db98522afc8ea3e9c.png

6d79cdf07c5ade12bb847efad82669e0.png

得到训练数据集

9557b4eb0a9f0ea86853cfb5f3bfe0c6.png

其中的元素

9c8abf547c1da9af722ff3bf57bf468f.png

表示对于u来说,在i和j之间更偏好i

3.两个基本假设:

  • 每个用户之间的偏好行为相互独立,即用户u在商品i和j之间的偏好和其他用户无关。
  • 同一用户对不同物品的偏序相互独立,也就是用户u在商品i和j之间的偏好和其他的商品无关。

4.BPR的推导

BPR算法的基本思想是利用最大化后验概率来确定所有item

66792f0ada5b341994a961e58ed0e457.png

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

c53cd13127eecab4acad483b4cef6809.png

最大,进而求出θ。

根据贝叶斯公式得

因为BPR假设用户的排序和其他用户无关,那么对于任意一个用户u来说,P(>u)对所有的物品都为一个常数,所以最大化

c53cd13127eecab4acad483b4cef6809.png

,等价于最大化

e315c55b9b67449b705b2406de3b6e3a.png

4c3aef9c983cfde5785aa5c96316343e.png

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

我们先最大化左边的部分

3321ef8eb25722f45b3e73bb4645dc85.png

f531d480d06f39740dd252e2c08bc10d.png

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

548448d35c66d75ff772f9d33027ab5e.png

而对于

25eeab157a7229866cc7e5afa41b7ade.png

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

f63907f73763bfb84577e3a55eeaffbc.png

其中,

a0853396e90f2efd957a8a01fd40a220.png

事实上

也可以取其他满足完整性、反对称性和传递性三个约束条件的其他函数,BPR的最先提出者使用sigmod函数是为了方便接下来的计算。

这儿的

b1ea7ac76a92a342200b7f745958d57b.png

同样可以是任何关于模型参数向量θ的实值函数,前提是该函数能映射出用户u与物品i和j之间的关系。

于是第一部分的优化目标最终变成了

a56d5db898151385b8282dcb28c3cb52.png

接下来我们再对第二部分P(θ)进行最大化

由于θ的分布是未知的,为了方便我们的计算,不妨假设其服从均值为0,协方差矩阵为

dbe7afd99887796464e565b6293cf0c3.png

的正态分布

于是最大化

c53cd13127eecab4acad483b4cef6809.png

变成了求解下式的最大值

836e86120965aeff56ad010d2ced9967.png

三、一个BPR算法的求解实例

在上一节的BPR算法的推导中,我们假设θ为某个模型的参数向量,本节我们讨论当这个模型为矩阵分解模型时,BPR算法的求解方法。

此时我们的预测目标是得到一个预测排序矩阵

c0700532c5d6d4a7da6e6fd03848b736.png

这个矩阵可以被分解为

73e85269591b3c1903c4101192636544.png

,其中W为|U|×k维矩阵,H为|I|×k维矩阵,k远小于|U|和|I|

由于BPR是基于用户维度的,所以对于任意一个用户u,对应的任意一个物品i我们期望有:

ac7028e02efa10612a5e21efbc5dabc0.png

表示物品i对于用户u的排序优先度

此时我们再令

8d129b230ac33277b603bbd6f06d3794.png

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

3cdb097b5f9a5e6e15203cf91fafae32.png

这个式子对θ求偏导后,可以用梯度上升法或者牛顿法等方法来优化求解模型参数

参考文献

[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.

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值