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)是现代推荐系统的基础算法之一。
##问题描述
设有 N N N个用户, M M M部电影。一个评分系统可以用 N × M N\times M N×M矩阵 R R R来表示。
推荐系统问题如下: R R R矩阵中只有部分元素是已知的(用户只给一部分电影打过分),且 R R R往往非常稀疏,需要求出 R R R缺失的部分。
除了推荐系统,这个模型也可以用来描述任意“成对”作用的系统。例如:由若干球队组成的联赛,两支球队间的历史比分即为 R R R的已知元素,需要预测尚未进行的比赛结果。这里 R R R是一个方阵。
##基本思路
本文采取low-dimensional factor模型,也称为low rank模型来处理这个问题。其核心思想是:用户和电影之间的关系(即用户对电影的偏好)可以由较少的几个因素的线性组合决定。
例子
用户是否喜欢一部电影取决于三个因素:是娱乐片还是文艺片,是外文片还是华语片,演员是否出名。
用三维向量$x=[0.6, 1.0, -0.2]^T 来 描 述 一 个 用 户 ( 假 设 取 值 在 [ − 1 , 1 ] 之 间 ) : 他 比 较 喜 欢 娱 乐 片 , 只 看 外 文 片 , 对 演 员 要 求 一 般 , 小 众 一 点 更 好 。 对 于 一 部 电 影 , 用 另 一 个 三 维 向 量 来 描 述 来描述一个用户(假设取值在[-1,1]之间):他比较喜欢娱乐片,只看外文片,对演员要求一般,小众一点更好。 对于一部电影,用另一个三维向量来描述 来描述一个用户(假设取值在[−1,1]之间):他比较喜欢娱乐片,只看外文片,对演员要求一般,小众一点更好。对于一部电影,用另一个三维向量来描述y=[0.9, -1.0, 0.8]^T $:这是一部众星云集的-国产-娱乐大作。
可以算出这个用户对于这部电影的喜好程度 r = x T y = − 2.06 r=x^T y =-2.06 r=xTy=−2.06 :相当不喜欢。
用矩阵语言来描述,就是评分矩阵可以分解为两个低维矩阵的乘积 R = U T V R=U^T V R=UTV,其中 D × N D\times N D×N矩阵 U U U描述 N N N个用户的属性, D × M D\times M D×M矩阵 V V V描述 M M M部电影的属性。
根据矩阵秩的性质, R R R的秩不超过 U , V U,V U,V的最小尺寸 D D D。
实际上,由于系统噪音存在,不可能做出这样的完美分解,另外 R R R包含很多未知元素。所以问题转化为:
- 对一个近似矩阵进行分解 R ^ = U T V \hat R=U^TV R^=UTV
- 要求近似矩阵 R ^ \hat R R^在观测到的评分部分和观测矩阵 R R R尽量相似
- 为了防止过拟合,需要对 U , V U,V U,V做某种形式的约束
用贝叶斯观点来说, R R R是观测到的值, U , V U,V U,V描述了系统的内部特征,是需要估计的。
##基础PMF模型
使用如下两个假设
- 观测噪声(观测评分矩阵 R R R和近似评分矩阵 R ^ \hat R R^之差)为高斯分布
- 用户属性 U U U和电影属性 V V V均为高斯分布
利用第一个假设,可以写出完整观测矩阵的概率密度函数。其中 σ \sigma σ是观测噪声的方差,人工设定。
p ( R ∣ U , V ) = N ( R ^ , σ 2 ) = N ( U T V , σ 2 ) p(R|U,V )=N(\hat R,\sigma ^2 )=N(U^TV,\sigma ^2) p(R∣U,V)=N(R^,σ2)=N(UTV,σ2)
利用第二个假设,可以写出用户、电影属性的概率密度函数。其中 σ U , σ V \sigma_U, \sigma_V σU,σV是先验噪声的方差,人工设定。
p ( U ) = N ( 0 , σ U 2 ) , p ( V ) = N ( 0 , σ V 2 ) p(U)=N(0,\sigma_U ^2), p(V )=N(0,\sigma_V ^2) p(U)=N(0,σ