
BPR是基于用户的隐式反馈,为用户提供物品的推荐,并且直接对排序进行优化。
形式定义
UUU:user集合;
III :item集合;
SSS:用户的隐式反馈 如下图所示,只要用户对某个物品产生过行为,就标记为+,未观察到的数据(即用户没有产生行为的数据)标记为?.

iii>u_uujjj表示用户uuu在物品iii和物品jjj之间更偏向于物品iii
III+^++u_uu={iii∈∈∈III:::(uuu,iii)∈∈∈SSS}代表了用户uuu产生过行为的物品集合
UUU+^++i_ii={uuu∈∈∈UUU:::(uuu,iii)∈∈∈SSS}代表了对物品iii产生过行为的用户集合
问题提出
以前的Rec方法通常通过给对(uuu,iii)∈SSS一个正的类标签和(uuu×iii)中的所有其他组合一个负类的来创建训练数据(见图1)。然后用一个模型对这些数据进行拟合。这意味着模型经过优化,可以预测S中元素的值为1,其余元素的值为0。

在填零的情况下,我们的优化目标变成了希望在预测时观测到的数据预测为1,其余的均为0. 于是产生的问题是,我们希望模型在以后预测的缺失值,在训练时却都被认为是负类数据。因此,如果这个模型训练的足够好,那么最终得到的结果就是这些未观察的样本最后的预测值都是0。
BPR
BPR采用了pairwise的方式。
如 下图,基于观察到的数据SSS构建数据集DSD_SDS : 对用户uuu来说,如果对物品iii产生过行为, 而没有对物品jjj产生过行为,则得到了一个偏好对(uuu,iii,jjj)。表示为 i2i_2i2>>>u_uui1i_1i1 . 如果一个用户对两个物品同时产生过行为,或者同时没有产生过行为,则无法构建偏好对。接着,对每个用户,就可以构建III×III的偏好矩阵。所有用户的偏好对构成了训练集DSD_SDS:UUU×III×III.

左侧显示了观察到的数据。我们的方法在一对项目之间创建特定于用户的成对偏好iii>u_uujjj。在右侧,加号(+)表示用户更喜欢iii项而不是jjj项;减号(–)表示他更喜欢jjj而不是iii。
BPR-OPT
BPR 基于最大后验估计PPP(WWW,HHH|>_>>uuu)来求解模型参数WWW,HHH,这里我们用θ来表示参数WWW和HHH, >_>>代表用户uuu对应的所有商品的全序关系,则优化目标是P(θ|>_>>)。根据贝叶斯公式,我们有:

寻找所有项目iii∈∈∈III的正确个性化排序的贝叶斯公式是最大化以下后验概率,其中Θ表示任意模型类的参数向量(例如矩阵分解)。

这里,>>>u_uu是用户uuu潜在的偏好结构,所有用户都被假定为相互独立的行为。我们还假设特定用户的每对项目(iii,jjj)的排序独立于其他每对的排序。因此,上述用户特定的似然函数ppp(>uuu |Θ)可以首先重写为单密度的乘积,然后对所有用户uuu∈UUU组合。

似然概率
独立性假设:
- 所有用户之间的行为相互独立
- 同一用户任意一对物品的偏序关系相互独立
于是可以将似然概率表示为:

即分解为每一个正样本的概率之积,即希望对每一个正样本(uuu,iii,jjj)∈DSD_SDS, ppp(iii>u_uujjj∣θ)最大。这里不考虑负样本。
定义:

其中
是个实值函数,返回的是用户uuu, 物品iii, 物品jjj之间的关系。这个函数可以通过矩阵分解或者KNN等方法实现。
先验概率
假设参数的先验概率服从正态分布

对于正态分布,其对数和∣∣θ∣∣2^22 成正比。因此计算lnp_pp(θ)时,得到:

所以得到后验概率,取对数即为优化目标:BPR-OTP:

更新
梯度下降


基于矩阵分解的BPR
矩阵分解的作用主要就是为了得到上述的实值函数:

对于用户集UUU和物品集III对应的UUU×III的预测的排序矩阵Xˆ , 我们期望分解得到用户矩阵W(∣U∣×k)和物品矩阵H (∣I∣×k), 满足:
这里的kkk是自己定义的,对于用户矩阵WWW, 我们实际上就是为每一个用户uuu学出一个kkk维向量wuw_uwu作为该用户的隐向量,同理,对于物品矩阵HHH, 我们实际上就是为每一个物品iii学出一个kkk维向量hih_ihi作为该物品的隐向量.因此,这里的(W,H)实际上就是我们需要求出的实值函数的参数θ.
当得到W和H矩阵后,对于任意一个用户u,对应的任意一个物品i, 得到的实值向量即为两个隐向量之积

xu_uui_ii^是预测出的用户u对物品i的评分。
但是BPR中是三元组形式的
因此BPR将三元组形式分解为二元组的形式,定义为:
代入后验概率模型,得到:

根据上节梯度下降更新梯度,得到



参考博客:https://www.cnblogs.com/pinard/p/9128682.html#commentform
https://blog.youkuaiyun.com/ddydavie/article/details/84331584
206

被折叠的 条评论
为什么被折叠?



