20180809-0816论文阅读笔记 贝叶斯个性化排序 BPR Bayesian Personalized Ranking

BPR和上一篇文章中的LFM有相似之处,它们都是通过将一个矩阵分解为两个矩阵来建立模型的。不过也有不同之处:LFM是对一个相对简单的惩罚函数进行最小化(通过SGD),而BPR则是极大化了后验概率(MAP)(也是通过SGD);另外LFM的隐元素可能有多个隐类,而BPR貌似是只有一个隐类(即BPR中,分解后的矩阵P都是一维的)。

  • http://liuzhiqiangruc.iteye.com/blog/2073526
  • https://www.cnblogs.com/pinard/p/9128682.html

在推荐系统的实现中,几乎总会遇到从较多候选集中为用户选取特定的少数几个物品进行推荐,这本质上是一个Ranking问题。

在推荐场景中用户更缺乏耐性,对推荐结果的消费也十分有限。因此,排序的好坏直接决定了用户对一个准确率为90%的推荐候选集的满意度是否真的有90%。

这里我们为大家介绍一种“基于贝叶斯后验优化的个性化排序算法”:Bayesian Personalized Ranking。

其本身并不优化用户对物品的评分,而只藉由评分来优化用户对物品的排序。按照论文的说法:it is a real ranking algorithm.

BPR算法过程详解:

数据pair化预处理:

    BPR算法将用户对物品的评分(喜欢记为“1”,不喜欢记为“0”)处理为一个pair对的集合<i,j>,其中i为评分为1的物品,j为评分为0的物品。假设某用户有M个“1”的评分,N个“0”的评分,则该用户共有M*N个pair对。

    这样数据集就由三元组 <u,i,j>表示,该三元组的物理含义为:相对于物品“j”,用户“u”更喜欢物品“i”。

数据假设:

-每个用户之间的偏好行为相互独立

-同一用户对不同物品的偏序相互独立

则优化问题为极大化如下目标:

 

     

 

其中theta为所求模型,具体包括:表示用户的隐含因子矩阵P,及表达物品的隐含因子矩阵Q。

其中关于似然部分:

      

我们看目标函数,似然部分相对较好处理,$p(\theta)$怎么办呢?论文原作者大胆使用了贝叶斯假设,即这个概率分布符合正太分布,且对应的均值是0,协方差矩阵是$\lamda _\theta I$,即

 

(后文中的$\lamda _\theta $不一定是协方差矩阵?可能只是一个化简的表示?)原作者为什么这么假设呢?个人觉得还是为了优化方便,因为后面我们做优化时,需要计算lnP(θ)lnP(θ),而对于上面假设的这个多维正态分布,其对数和成正比。即:

则先验的概率密度函数为:

基于上述假设,优化目标进一步展开得到:

$\lamda _\theta $不一定是协方差矩阵?可能只是一个化简的表示?

(?$\theta$展开称pqq是怎么回事儿?)

对应的最小化问题为:

采用SGD求解上述最小化问题,分别针对pqqj求偏导如下

偏导即为梯度下降方向,模型迭代求解的公式如下:

其中α为学习速率。

 

  • https://blog.csdn.net/u011508640/article/details/72815981

本文用到了最大后验概率(MAP),这篇文章介绍了最大似然估计和最大后验概率(MLE和MAP)的相关知识,可以一看。

posted @ 2018-08-13 10:51  大胖子球花  阅读(97)  评论(0)    收藏  举报