贝叶斯个性化推荐

Key Point1:

能够使用贝叶斯做推荐排序的假设有两个:

1. 用户U对商品和的偏好和其他用户无关(即用户间的独立性)

2. 用户U对商品和的偏好和该用户喜欢的其他商品无关(即商品间的独立性)

这两种关系满足完全性、反对称性和传递性:

完整性:

反对称性:

传递性:

Key Point2:

类似LFM(隐语义模型),BPR将用户U和物品I的排序矩阵X分解成用户矩阵和物品矩阵,满足,k为矩阵的秩

BPR针对每个用户感兴趣的商品进行排序,因此对于任意一个用户u和商品i,期望如下:

BPR最终目标:

找到最合适的W和H,使得最接近,看似类似funkSVD,但推导过程不尽相同

求解过程

优化目标:,根据贝叶斯公式有:;

根据用户物品排序和其他用户无关的假设,有:

很显然问题转化成了分别求解和数据集无关的以及 和数据集有关的

的求解过程:

根据用户对i和j喜好的独立性,将后者转化成和样本(u,i,j)有关的公式:

其中,根据完整性和反对称性的性质,上式可以化简成:

①,

其中,,为sigmoid函数,一是为了方便计算,二是sigmoid函数完美的满足了完整性、反对称性和传递性

至此,我们还需要知道的是如何求得,这个式子需要满足时;时,最直观的方式就是表示成下式:

,是(u,i)和(u,j)的值,将此式带入①中,得到:

的求解过程:

也使用贝叶斯定理的假设:即服从正态分布:

还是根据①式,显然需要取对数后再计算,而对于正态分布来说,其对数和成正比:

综合的求解过程:

用梯度上升法求解,对上式求相对于的偏导:

\frac{\partial ln\;P(\theta|>_u)}{\partial \theta} \propto \sum\limits_{(u,i,j) \in D} \frac{1}{1+e^{\overline{x}_{ui} - \overline{x}_{uj}}}\frac{\partial (\overline{x}_{ui} - \overline{x}_{uj})}{\partial \theta} + \lambda \theta,其中:

而转化为具体的参数就是(这里对理解很关键,也是不同于LFM的地方)!

\frac{\partial (\overline{x}_{ui} - \overline{x}_{uj})}{\partial \theta} = \begin{cases} (h_{if}-h_{jf})& {if\; \theta = w_{uf}}\\ w_{uf}& {if\;\theta = h_{if}} \\ -w_{uf}& {if\;\theta = h_{jf}}\end{cases}

总结:

    BPR是基于矩阵分解的一种排序算法,但是和funkSVD之类的算法比,它不是做全局的评分优化,而是针对每一个用户自己的商品喜好分贝做排序优化。因此在迭代优化的思路上完全不同。同时对于训练集的要求也是不一样的,funkSVD只需要用户物品对应评分数据二元组做训练集,而BPR则需要用户对商品的喜好排序三元组做训练集。

你可能感兴趣的:(贝叶斯个性化推荐)