本篇文章极大地参考了博客

[论文下载](/download/2009-BPR Bayesian Personalized Ranking from Implicit Feedback.pdf)

背景

在商品推荐领域常用的方法有矩阵分解(Matrix Factorization)和最近邻搜索(kNN)等。但是这两种方法都没有针对推荐排序问题的优化方法,因此本文提出一个关于针对个性化推荐排序问题的优化方法——BPR-OPT,并将其应用到MF和kNN方法之中。

问题建模

我们用 UU 表示所有 useruser 的集合,II 表示所有 itemitem 的集合。SU×IS \subseteq U \times I 表示所有隐式反馈的合集。>uI2>_u \subset I^2 表示用户 uu 对物品的偏好关系,比如 i>uji >_u j 表示用户 uu 更喜欢 ii

我们记:

1

接下来我们要做的就是把用户与物品之间的隐式反馈转化成矩阵,以此进行数据处理。一般表现为0-1矩阵,即 useruseritemitem 有交互对应位置为1,否则为0。

2

我们的任务是:根据现有的矩阵,预测没有交互的 useritemuser-item 的分数,分数越高表示偏好程度越高,然后排序进行推荐。

在BPR算法中,它的核心是偏序关系三元组,即我们有:
3

(u,i,j)(u,i,j) 表示对于用户 uu 来说,喜欢物品 ii 的程度要高于物品 jj​​ ,我们可以对原始矩阵再进行转换变成下面的矩阵,得到特定用户对于两个物品的偏序关系矩阵。

4

所以我们每次修正的时候不是修正 uu 对一个物品的评分而是对两个物品的评分。

BPR基本思想

贝叶斯公式:

5

θ\theta​ 代表一个任意的模型类的参数向量.

1

我们先处理 p(>uθ)p(>_u|\theta)​​

我们有以下两个假设:

  • 所有 useruser 之间的偏好关系是相互独立的
  1. 同一用户对不同物品的偏序相互独立,即我们假设用户对 (i,j)(i,j) 的偏好是不受其他商品影响的。

那么对于任意一个用户u来说,p(>u)p(>_u)​ 对所有的物品一样,我们可以得到

6

对于每个 useruser ,给定商品对 (i,j)(i,j) ,其关系有四种:

i是正样本 i是未观测的样本
j是正样本 0 0
j是未观测的样本 1 0

所以上面的式子可以化简为:

7

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

8

我们定义:

9

其中 x^uij\widehat{x}_{uij} 为为模型对用户u对 i 和 j 相对的打分

2

再处理 p(θ)p(\theta)

原作者大胆使用了贝叶斯假设,即这个概率分布符合正太分布,且对应的均值是0,协方差矩阵是 θ\sum_{\theta}

10

我们令 θ=λθI\sum_{\theta} = \lambda_\theta I,那么原先的优化问题就转换为

11

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

12

AUC指标:

13