BPR贝叶斯个性化推荐

排序推荐算法的背景介绍

排序推荐算法历史很悠久,早在做信息检索的各种产品中就已经在使用了。最早的第一类排序算法类别是点对方法(Pointwise Approach),这类算法将排序问题被转化为分类、回归之类的问题,并使用现有分类、回归等方法进行实现。第二类排序算法是成对方法(Pairwise Approach),在序列方法中,排序被转化为对序列分类或对序列回归。所谓的pair就是成对的排序,比如(a,b)一组表明a比b排的靠前。我们要讲到的BPR就属于这一类。第三类排序算法是列表方法(Listwise Approach),它采用更加直接的方法对排序问题进行了处理。它在学习和预测过程中都将排序列表作为一个样本。排序的组结构被保持。

BPR推荐算法背景介绍

在很多推荐场景中,我们都是基于现有的用户和商品之间的一些数据,得到用户对所有商品的评分,选择高分的商品推荐给用户,这是funkSVD之类算法的做法,使用起来也很有效。但是在有些推荐场景中,我们是为了在千万级别的商品中推荐个位数的商品给用户,此时,我们更关心的是用户来说,哪些极少数商品在用户心中有更高的优先级,也就是排序更靠前。也就是说,我们需要一个排序算法,这个算法可以把每个用户对应的所有商品按喜好排序。BPR就是这样的一个我们需要的排序算法。

      在推荐系统中,分为召回和排序两个阶段。贝叶斯个性化排序属于成对方法(Pairwise Approach)。

相关定义

显式反馈:用户对物品的评分,如电影评分
隐式反馈:用户对物品的交互行为,如浏览,购买等,现实中绝大部分数据属于隐式反馈,可以从日志中获取。
BPR是基于用户的隐式反馈,为用户提供物品的推荐,并且是直接对排序进行优化。
U代表所有的用户user集合;

I 代表所有的物品item集合;

S 代表所有用户的隐式反馈,S ⊆ U × I S. 如下图所示,只要用户对某个物品产生过行为,就标记为+ , 所有+ 样本构成了S。那些未观察到的数据(即用户没有产生行为的数据)标记为?.
在这里插入图片描述
BPR的核心是针对两个物品的相对偏好排序进行建模。最终为每个用户计算其对没有过行为物品的偏好排序,从而进行个性化推荐。
由此,训练集D s 可以构建为:U ∗ I ∗ I,D s 是三元组( u , i , j ) 的集合。
从user-item中提取item-item矩阵
在这里插入图片描述

BPR模型特点

1、强调个性化推荐,个性化物品偏好排名
2、用后验概率优化个性化推荐的排序
3、基于梯度下降的learnBPR极大化BPR-OPT
4、一般的推荐算法强调用户对项目的打分,只存在用户和单个项目的关系,不去考虑两个项目对用户的影响力,而BPR模型从u , i , j,出发求解u , i 的大小。

BPR基本原理

BPR是一种采用pairwise训练的个性化推荐算法,其在netflex算法大赛被首次提出,损失函数表示为当有训练数据中的偏序集合时,最可能的用户向量表示和item向量表示矩阵,推导如下
在这里插入图片描述
损失函数求导:
在这里插入图片描述
整体训练过程:
在这里插入图片描述
把模型西塔,用矩阵分解的形式表示为
在这里插入图片描述
求各自的偏导,这里的f时(u, i ,j)三元祖的关系xuij。
可以简单有xuij=xui-xuj
在这里插入图片描述
在这里插入图片描述
更详细介绍参考https://blog.csdn.net/HPU_FRDHR/article/details/89146866

BPR建模思路

在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>可以表示为:在这里插入图片描述
同时,BPR也用了和funkSVD类似的矩阵分解模型,这里BPR对于用户集U和物品集I的对应的在这里插入图片描述
的预测排序矩阵在这里插入图片描述
我们期望得到两个分解后的用户矩阵在这里插入图片描述
和物品矩阵在这里插入图片描述
满足在这里插入图片描述
这里的k和funkSVD类似,也是自己定义的,一般远远小于在这里插入图片描述
由于BPR是基于用户维度的,所以对于任意一个用户u,对应的任意一个物品i我们期望有:在这里插入图片描述
最终我们的目标,是希望寻找合适的矩阵在这里插入图片描述

在这里插入图片描述最相似。

BPR参数计算方法

BPR算法采用的是最大化后验概率来估计参数,(最大化后验概率详细介绍参考此文章https://blog.csdn.net/HPU_FRDHR/article/details/89154416)由在这里插入图片描述来求解模型参数W,H。这里我们用θ来表示参数W,H,在这里插入图片描述
代表用户u对应的所有商品的全序关系,则优化目标是
根据贝叶斯公式,我们有:在这里插入图片描述
由于我们求解假设了用户的排序和其他用户无关,那么对于任意一个用户u来说,在这里插入图片描述
对所有的物品一样,所以有:在这里插入图片描述
这个优化目标转化为两部分。第一部分和样本数据集D有关,第二部分和样本数据集D无关。

对于第一部分,由于我们假设每个用户之间的偏好行为相互独立,同一用户对不同物品的偏序相互独立,所以有:在这里插入图片描述
其中,在这里插入图片描述
当数据<u,i,j>属于D时,第一部分可以简化为:
在这里插入图片描述
而我们所取的数据都是属于D的,所以优化目标的第一部分可以简化为:
在这里插入图片描述
而对于在这里插入图片描述
,这个概率,我们可以使用下面这个式子来代替:在这里插入图片描述
其中,σ(x)是sigmoid函数。是为了方便计算。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值