【推荐系统算法】PMF(Probabilistic Matrix Factorization)
来源:互联网 发布:55寸电视适合 知乎 编辑:程序博客网 时间:2024/05/24 01:47
Mnih, Andriy, and Ruslan Salakhutdinov. “Probabilistic matrix factorization.” Advances in neural information processing systems. 2007.
本篇论文发表于2007年NIPS。Ruslan Salakhutdinov来自多伦多大学,16年转入CMU。Andriy Mnih同样来自多伦多大学,师从Hinton。PMF算法(Probabilistic Matrix Factorization)是现代推荐系统的基础算法之一。
问题描述
设有
推荐系统问题如下:
除了推荐系统,这个模型也可以用来描述任意“成对”作用的系统。例如:由若干球队组成的联赛,两支球队间的历史比分即为
基本思路
本文采取low-dimensional factor模型,也称为low rank模型来处理这个问题。其核心思想是:用户和电影之间的关系(即用户对电影的偏好)可以由较少的几个因素的线性组合决定。
例子
用户是否喜欢一部电影取决于三个因素:是娱乐片还是文艺片,是外文片还是华语片,演员是否出名。
用三维向量x=[0.6,1.0,−0.2]T 来描述一个用户(假设取值在[-1,1]之间):他比较喜欢娱乐片,只看外文片,对演员要求一般,小众一点更好。
对于一部电影,用另一个三维向量来描述y=[0.9,−1.0,0.8]T :这是一部众星云集的-国产-娱乐大作。
可以算出这个用户对于这部电影的喜好程度r=xTy=−2.06 :相当不喜欢。
用矩阵语言来描述,就是评分矩阵可以分解为两个低维矩阵的乘积
根据矩阵秩的性质,
实际上,由于系统噪音存在,不可能做出这样的完美分解,另外
- 对一个近似矩阵进行分解
- 要求近似矩阵
- 为了防止过拟合,需要对
用贝叶斯观点来说,
基础PMF模型
使用如下两个假设
- 观测噪声(观测评分矩阵
- 用户属性
利用第一个假设,可以写出完整观测矩阵的概率密度函数。其中
利用第二个假设,可以写出用户、电影属性的概率密度函数。其中
综合以上两个概率密度函数,利用经典的后验概率推导,可以得到
基础PMF求解
最大化上述概率,则可以通过已有的观测矩阵
为了计算方便,对后验概率取对数
高斯分布公式及其对数形式:
p(x)=12π−−√σexp(−(x−μ)22σ2) lnp(x)=−ln(2π−−√σ)−(x−μ)22σ2
由于后验概率中的方差都是预设常数,故只有第二项和待优化的
最大化上述对数后验概率,等价于最小化如下能量函数:
做参数替换约掉一个变量:
如果系统先验方差
刚才的几步推导中,为了书写简便实际上做了一些省略:矩阵的概率密度应该等于其元素概率密度的乘积。取对数之后,即等于其元素概率密度的和。
最后,为了限制评分的范围,对高斯函数的均值施加logistic函数
至此,可以使用梯度下降方法,通过
需要估计的参数数量为
性能
1998年至2005年Netflix数据,设定D=30,使用Matlab,在30分钟内完成训练。
控制模型复杂度
最简单的控制复杂度的方法是调整特征维度:
但实际数据往往是不均衡的:电影爱好者给出的打分很多,而很多用户只会给一两部电影打分。
较好的方法是选择一个中等尺度的
带有自适应先验的PMF
先验的超参数(hyperparameter):
类似地,可以给
限制性PMF
“用户是否给某部电影打过分”这个信息本身就能一定程度上说明用户的属性。Constrained PMF尝试把
用
用户属性U由两部分组成:和之前相同的高斯部分
其中
在已知
下图用概率图模型表示基础PMF(左)和限定性PMF(右):
实验
涉及的数据集如下
为了提高训练速度,采用了mini-batche方法:每100K个观测(用户给某部电影打分),更新一次待求参数。learning rate = 0.005, momentum = 0.9。
梯度下降的learning rate和momentum参见这个链接
简而言之,学习率决定每一步大小,动量避免曲折过于严重。
可以看出限定性PMF比基础PMF的优越性
扩展
第6章总结中提到: Efficiency in training PMF models comes from finding only point estimates of model parameters and hyperparameters, instead of inferring the full posterior distribution over them.
这里的point estimation指的是只估计了
与之相对的,还可以使用贝叶斯估计,把系统参数当成一个随机变量。具体可以参看这篇博客:贝叶斯PMF,介绍同作者的这篇论文:
Salakhutdinov, Ruslan, and A. Mnih. “Bayesian probabilistic matrix factorization using markov chain monte carlo.” International Conference on Machine Learning 2008:880-887.
另外,如果需要考虑一些明确的从属信息,例如评分的用户身份、评分发生的时间等,可以参看这篇博客:DPMF,介绍这篇论文:
Adams, Ryan Prescott, George E. Dahl, and Iain Murray. “Incorporating side information in probabilistic matrix factorization with gaussian processes.” arXiv preprint arXiv:1003.4944 (2010).
- 【推荐系统算法】PMF(Probabilistic Matrix Factorization)
- 推荐系统之概率矩阵分解的详细推导过程(Probabilistic Matrix Factorization,PMF)
- 【推荐系统算法】DPMF(Dependent Probabilistic Matrix Factorization).上篇
- 【推荐系统算法】BPMF(Bayesian Probabilistic Matrix Factorization)
- 【推荐系统算法】DPMF(Dependent Probabilistic Matrix Factorization).中篇
- 【推荐系统】概率矩阵分解 probabilistic matrix factorization
- 矩阵分解(MATRIX FACTORIZATION)在推荐系统中的应用
- 矩阵分解(MATRIX FACTORIZATION)在推荐系统中的应用
- Non-negative Matrix Factorization and Probabilistic Latent Semantic Analysis
- Non-negative Matrix Factorization and Probabilistic Latent Semantic Analysis
- Non-negative Matrix Factorization and Probabilistic Latent Semantic Analysis
- 【推荐系统】Factorization Machine
- 推荐算法中的MF, PMF, BPMF
- 矩阵分解在推荐系统中的应用(中文译)- MATRIX FACTORIZATION TECHNIQUES FOR RECOMMENDER SYSTEMS
- GraphLab collaborative filtering library: efficient probabilistic matrix/tensor factorization on mul
- 视频前背景分离论文之(4) A Probabilistic Approach to Robust Matrix Factorization
- Big Data(5): Matrix Factorization算法实现
- Matrix factorization
- unity3D []
- POJ 3278 Catch That Cow(追赶母牛)
- 图像处理中的数学原理详解20——主成分变换(PCA)
- linux中查看服务器名称的命令 -- hostname
- Gartner 如何看 RASP 和 WAF?
- 【推荐系统算法】PMF(Probabilistic Matrix Factorization)
- Informatica Connection Objects
- Angular JS 文件上传按钮覆盖问题
- 新的计数序列(第1届第2题)
- OC中的KVO
- 多元统计分析及R语言建模-第7章 聚类分析
- 让SharpDevelop的代码智能提示显示为中文
- 如何高效地做竞品分析,并找到工作灵感?
- 跳转到拨号、联系人、短信界面