BPR推荐算法介绍
本篇文章极大地参考了博客
[论文下载](/download/2009-BPR Bayesian Personalized Ranking from Implicit Feedback.pdf)
背景
在商品推荐领域常用的方法有矩阵分解(Matrix Factorization)和最近邻搜索(kNN)等。但是这两种方法都没有针对推荐排序问题的优化方法,因此本文提出一个关于针对个性化推荐排序问题的优化方法——BPR-OPT,并将其应用到MF和kNN方法之中。
问题建模
我们用 表示所有 的集合, 表示所有 的集合。 表示所有隐式反馈的合集。 表示用户 对物品的偏好关系,比如 表示用户 更喜欢
我们记:
接下来我们要做的就是把用户与物品之间的隐式反馈转化成矩阵,以此进行数据处理。一般表现为0-1矩阵,即 和 有交互对应位置为1,否则为0。
我们的任务是:根据现有的矩阵,预测没有交互的 的分数,分数越高表示偏好程度越高,然后排序进行推荐。
在BPR算法中,它的核心是偏序关系三元组
,即我们有:
表示对于用户 来说,喜欢物品 的程度要高于物品 ,我们可以对原始矩阵再进行转换变成下面的矩阵,得到特定用户对于两个物品的偏序关系矩阵。
所以我们每次修正的时候不是修正 对一个物品的评分而是对两个物品的评分。
BPR基本思想
贝叶斯公式:

代表一个任意的模型类的参数向量.
1
我们先处理
我们有以下两个假设:
- 所有 之间的偏好关系是相互独立的
- 同一用户对不同物品的偏序相互独立,即我们假设用户对 的偏好是不受其他商品影响的。
那么对于任意一个用户u来说, 对所有的物品一样,我们可以得到
对于每个 ,给定商品对 ,其关系有四种:
i是正样本 | i是未观测的样本 | |
---|---|---|
j是正样本 | 0 | 0 |
j是未观测的样本 | 1 | 0 |
所以上面的式子可以化简为:

根据非负性我们可以把平方去掉,得到论文里的公式

我们定义:

其中 为为模型对用户u对 i 和 j 相对的打分
2
再处理
原作者大胆使用了贝叶斯假设,即这个概率分布符合正太分布,且对应的均值是0,协方差矩阵是

我们令 ,那么原先的优化问题就转换为

其中 就是正则化系数。根据上面提出的BPR-OPT指标,我们采用梯度下降的算法。对BPR-OPT指标求导:
AUC指标:
