(翻译)协同过滤算法之——概率矩阵分解(Probabilistic Matrix Factorization)

2,927 阅读18分钟

「这是我参与2022首次更文挑战的第3天,活动详情查看:2022首次更文挑战」。 本文翻译 proceedings.neurips.cc/paper/2007/… zhuanlan.zhihu.com/p/146853803 zhuanlan.zhihu.com/p/76298058

作者信息

Ruslan Salakhutdinov 和 Andriy Mnih, 计算机科学系,多伦多大学。

论文发表于2008年。

摘要

许多现有的协同过滤算法不能处理很大的数据集,也不容易处理评分很少的用户。本文提出的概率矩阵分解模型是这样的一个模型:随着观测数据集变大,这个算法复杂度是线性扩展的,尤其是在大型、稀疏且非常不平衡的Netflix数据集(电影数据)上此模型都能很好的工作。接着,我们进一步扩展PMF模型:自适应的模型参数,并演示了模型能力是怎样自动的被参数控制的。最后,基于相似电影评分的用户可能有相同的爱好,我们介绍了PMF模型的一种约束版本,对于有很少评分的用户这样的模型可以有更好的效果。当多个PMF模型的预测通过受限的Boltzmann机器模型来线性组合,我们达到了0.8861的错误率,这几乎已经比Netflix推荐系统的得分高7%。

1介绍

最流行的协同过滤算法之一的思想是基于低维特征矩阵模型。这种模型背后的思想认为用户的态度或偏好是由 少数隐藏的因素决定的。在线性特征模型中,用户的偏好被建模为线性组合的物品特征向量和用户的偏好系数的乘积。 例如,对于 N 个用户和 M 部电影,N ×M的偏好矩阵 RN×D这个用户系数矩阵UD × M 因子矩阵 V相乘得到 [7]。训练这样的模型相当于在给定损失函数下观察到的 N × M 目标矩阵 R,找到使得损失最小的秩D

R=UTVR=U^TV

最近提出了各种基于概率特征的模型 [2, 3, 4]。所有这些模型都可以看作是图形模型,其中隐藏的特征变量与代表用户评分的变量有直接的联系。此类模型的主要缺点是难以精确推断 [12],这意味着在此类模型中计算隐藏特征的后验分布可能比较缓慢或说不够准确的近似。

可以使用奇异值分解 (SVD) 找到基于最小化平方和距离的低秩近似。 SVD 找到一个给定rank的矩阵 R^=UTV\widehat{R}=U^TV,最小化与目标矩阵 R 的平方和距离。由于大多数现实世界的数据集都是稀疏的, R 中的大多数条目都将丢失。在这些情况下,只能对观察到的矩阵中的条目计算平方和距离。如 [9] 所示,这个看似很小的问题导致难以使用标准 SVD 解决非凸优化问题。

不约束近似矩阵R^\widehat{R},比如特征的个数,[10]提出了一种U和V惩罚范式的方法。然而,在这个模型中学习需要求解一个稀疏的半定规划(SDP),这使得这种方法对于包含 数以百万计的观察是不可行的。

上面提到的很多协同过滤算法已经应用于建模Netflix Prize 数据集上的用户评分,该数据集包含 480,189 名用户、17,770 部电影和超过 100百万次观察(用户/电影/评分三元组)。然而,这些方法都没有被证明特别成功,有两个原因:首先,除了基于矩阵分解的算法,上述方法都不能很好地扩展到大型数据集;二、现有的大部分算法很难为评分很少的用户做出准确的预测。普通的协同过滤社区的实践是删除少于一些最小评分数的用户。然而,在标准数据集(例如 MovieLens)上报告的结果是这些数据其实是非常有用的。Netflix 数据集非常不平衡,“不常”用户评分少于 5 部电影,而“频繁”用户有对超过 10,000 部电影的评分。然而,由于标准化测试集包括完整的用户范围,Netflix 数据集提供了一个更加现实和有用的用于协同过滤算法的基准测试。

本文的目标是提出与数量线性相关的概率算法。观察并在非常稀疏和不平衡的数据集(例如 Netflix 数据集)上表现良好。在第 2 节中,我们介绍了对用户建模的概率矩阵分解 (PMF) 模型:偏好矩阵作为两个较低等级的用户和电影矩阵的乘积。在第 3 节中,我们扩展了PMF 模型包括电影和用户特征向量的自适应先验,并展示这些先验如何用于自动控制模型复杂性。在第 4 节中,我们介绍了一个PMF模型的受约束版本,它基于以下假设:评分相似的用户电影集有相似的偏好。在第 5 节中,我们报告了显示的实验结果:PMF 大大优于标准 SVD 模型。我们还证明了受约束的 PMF 和具有可学习先验的 PMF 显著提高了模型性能。我们的结果表明受约束的 PMF 在为评分很少的用户做出更好的预测方面特别有效。

2 概率矩阵分解

M个电影,N个用户,评分值是1-K。RijR_{ij}代表第i个用户给第j个电影的评分,URD×NU \in R^{D\times N}是用户的特征矩阵,VRD×MV \in R^{D\times M}是电影的特征矩阵,UiU_i代表第i个用户的特征向量,VjV_j代表第j个电影的特征向量。模型的性能通过测试集的均方根差来表示,我们首先采纳了一个使用高斯观测噪声的概率线性模型,我们定义了观测值的概率分布为:

p(RU,V,σ2)=i=1Nj=1M[N(RijUiVj,σ2)]Iijp(R|U,V,\sigma^2)= \prod\limits_{i=1}^N \coprod\limits_{j=1}^M {[N(R_{ij}|\mathbf{U_i}^\top V_j,\sigma^2)]}^{I_{ij}}

N(xu,σ2)N(x|u,\sigma^2)是均值为uu,方差为σ2\sigma^2的高斯分布的概率密度函数。IijI_{ij}为1则表示用户i对用户j的评价存在,我们也定义了两个用户和电影特征的0均值的球面高斯分布先验:

p(UσU2)=i=1NN(Ui0,σU2I),p(VσV2)=i=1MN(Vi0,σV2I),p(U|\sigma_U^2)=\prod\limits_{i=1}^NN(U_i|0,\sigma_U^2I), p(V|\sigma_V^2)=\prod\limits_{i=1}^MN(V_i|0,\sigma_V^2I),

那么可以计算出电影和用户特征的后验概率分布的对数为

lnp(U,VR,σ2,σU2,σV2)=12σ2i=1Nj=1MIij(RijUiTVj)212σU2i=1NUiTUi12σV2j=1MVjTVjlnp(U,V|R,\sigma^2,\sigma_U^2,\sigma_V^2)=-\frac1{2\sigma^2}\sum\limits_{i=1}^N\sum\limits_{j=1}^MI_{ij}(R_ij-U_i^TV_j)^2-\frac1{2\sigma_U^2}\sum\limits_{i=1}^NU_i^TU_i -\frac1{2\sigma_V^2}\sum\limits_{j=1}^MV_j^TV_j
12((i=1Nj=1MIij)lnσ2+NDlnσU2+MDlnσV2)+C-\frac12((\sum\limits_{i=1}^N\sum\limits_{j=1}^MI_{ij})ln\sigma^2+NDln\sigma_U^2+MDln\sigma_V^2)+C

为了使得后验概率最大,那么对数值ln也要最大,那么E要最小,其中E为:

E=12i=1Nj=1MIij(RijUiTVj)2+λU2UiFro2+λV2VjFro2E=\frac12\sum\limits_{i=1}^N\sum\limits_{j=1}^MI_{ij}(R_ij-U_i^TV_j)^2+\frac{\lambda_U}2||U_i||_{Fro}^2 +\frac{\lambda_V}2||V_j||_{Fro}^2

其中λU=σ2/σU2,λV=σ2/σV2,.Fro2\lambda_U={\sigma^2}/{\sigma_U^2},\lambda_V={\sigma^2}/{\sigma_V^2},||.||_{Fro}^2 表示弗罗贝尼乌斯范数Frobenius norm.所以我们的母亲就是最小化E,通过梯度下降法可以找到U和V。这个模型可以看作是SVD模型的概率扩展,因为所有的评分都是被观测到了的。如果先验方差的范围可以到无穷大,这个目标退化为SVD模型目标。

在我们的实验里,没有使用线性高斯模型,这会让预测超出有效的评测值的范围,用户和电影特征向量的点乘通过回归方程g(x)=1/(1+exp(x))g(x)=1/(1+exp(-x))来绑定预测的范围:

p(RU,V,σ2)=i=1Nj=1M[N(Rijg(UiTVj),σ2)]Iijp(R|U,V,\sigma^2)=\prod\limits_{i=1}^N \coprod\limits_{j=1}^M {[N(R_{ij}|g(U_i^TV_j),\sigma^2)]}^{I_{ij}}

我们使用映射函数t(x)=(x1)/(K1)t(x)=(x-1)/(K-1)将评分1,...,K映射到[0,1],所以有效的评分和预测值是对应的。最小化上面公式的最小梯度法的目标函数是计算复杂度是线性增长的。

这个算法中Matlab中的一个简单实现使得我们在Netflix数据集上(使用30个特征来做训练)做一个扫描花不了一个小时。

3 PMF模型的自动复杂度控制

想要PMF模型表现的良好,能力控制是必要的。给出充足多的一些特征,我们可以更好的逼近任意给定的评分矩阵。最简单的控制模型的方式是改变特征的个数。但是当数据集不平衡的时候,也就是说 不同的行或列的观测数量差别比较大的时候,这个方法会失败。因为特征维度的单个数值对一些特征向量会太高,但对另一些特征向量来说太低。正则化参数λU\lambda_UλV\lambda_V提供了更好的归一化方法。或许最简单的找出最合适参数的方法就是考虑一个合理的参数值集合,训练模型从中找出使得模型在验证集表现最好的一个参数。这种方式的缺点是计算昂贵,因为我们不得不训练多个模型。我们将会演示[6]文提出的方法(最开始用于神经网络 ),怎么不要太多的时间来找到一个合适的参数值。

就像上面提到的一样,通过两个低纬度矩阵点积逼近一个矩阵(通过惩罚他们的Frobenius范式来正则化)方法的问题,在L2L_2意义上可以认为是一个MAP估计问题,是对特征行具有球面高斯分布的概率模型的MAP估计。模型的复杂度被超参数控制:噪声σ2\sigma^2,以及先验参数σU2\sigma_U^2σV2\sigma_V^2.引入这些超参数的先验值,通过[6]的方法最大化模型的log后验值使得模型的复杂度可以根据训练数据自动控制。使用这个框架的用户和电影特征向量的球形先验,可以使得PMF的参数λU\lambda_UλV\lambda_V被自动选择。这种正则化方法允许我们使用比Frobenius范数惩罚法更复杂的方法,比如,我们可以使用对角甚至全协方差矩阵以及可调整的特征向量均值等来作为先验。高斯分布先验的综合处理也是很方便的。

总之,通过最大化目标概率的log值,我们找到了一个预估参数和超参数的关键点:

lnp(U,V,σ2,ΘU,ΘVR)=lnp(RU,V,σ2)+lnp(UΘU)+lnp(VΘV)+lnp(ΘU)+lnp(ΘV)+C,lnp(U, V, σ2, Θ_U , Θ_V |R) = ln p(R|U, V, σ2) + ln p(U|Θ_U ) + ln p(V |Θ_V )+ ln p(Θ_U ) + ln p(Θ_V ) + C,

ΘUΘ_UΘVΘ_V是用户和电影特征向量的超参数,C是常数。

当先验是高斯分布,如果用户和电影特征矩阵保持不变,这个可选的超参数可以在一个关闭的form里找到。为了最简化学习过程,我们在选择超参数和更新特征矩阵(使用固定的超参数来拟合的梯度下降)之间切换。当先验是高斯的时候, 当先验是高斯分布,如果用户和电影特征矩阵保持不变,这个可选的超参数可以在一个关闭的form里找到。为了最简化学习过程,我们在选择超参数和更新特征矩阵(使用固定的超参数来拟合的梯度下降)之间切换。当先验是混合高斯模型的时候,超参数可以通过EM单步法获得。在所有的实验里面,我们选择的超参数是不太合适的先验,但是很容易扩展关闭的form更新来处理联合的先验超参数。

4 受限的PMF

当一个PMF模型已经训练过后,有很少评分的用户的特征向量可能会接近于先验的平均值,或者评价用户,所以对于这些用户预测的评分会接近电影的平均评分。这部分我们会介绍一个约束用户特征向量的方法,这种方法对于不频繁的用户有很强的影响。

引入WRD×MW \in R^{D\times M}是一个隐含的相似性约束矩阵,我们定义用户特征矩阵向量如下:

Ui=Yi+k=1MIikWkk=1MIikU_i=Yi+\frac{ \sum\limits_{k=1}^M I_{ik}W_k}{ \sum\limits_{k=1}^M I_{ik}}

II是一个观测矩阵,Iij=1I_{ij}=1表示如果用户i给电影j评分了,否则为0.直观来说,W矩阵的第i列会对用户特征向量有较大的先验影响,如果一个用户对这个特定的电影有评分。 结果,对同样电影有评分的用户会有类似的先验分布。 W也是0均值的球面高斯先验:

p(WσW2)=k=1MN(Wk0,σW2I),p(W|\sigma_W^2)=\prod\limits_{k=1}^MN(W_k|0,\sigma_W^2I),

,则观测的评分的条件概率分布符合

p(RU,V,W,σ2)=i=1Nj=1M[N(Rijg(Yi+k=1MIikWkk=1MIik)TVj,σ2)]Iijp(R|U,V,W,\sigma^2)= \prod\limits_{i=1}^N \coprod\limits_{j=1}^M {[N(R_{ij}| g(Yi+\frac{ \sum\limits_{k=1}^M I_{ik}W_k}{ \sum\limits_{k=1}^M I_{ik}})^T}V_j,\sigma^2)]^{I_{ij}}

同样的去计算

E=12i=1Nj=1MIij(Rijg(Yi+k=1MIikWkk=1MIik)TVj)2+λU2UiFro2+λV2VjFro2+λW2WjFro2E=\frac12\sum\limits_{i=1}^N\sum\limits_{j=1}^MI_{ij}(R_{ij}-g(Yi+\frac{ \sum\limits_{k=1}^M I_{ik}W_k}{ \sum\limits_{k=1}^M I_{ik}})^TV_j)^2+\frac{\lambda_U}2||U_i||_{Fro}^2 +\frac{\lambda_V}2||V_j||_{Fro}^2 +\frac{\lambda_W}2|| W_j||_{Fro}^2

也是线性增长的时间复杂度,后面会给出相关的实验结果。对于不频繁的用户,这个模型会表现出比简单PMF模型更好的效果。

5 使用结果

5.1 描述Netflix数据

Netflix数据从98年才是采集,到05年的。训练的数据包括1000多万评分,来自480189个随机选择的匿名用户对17770个电影的评分。作为训练数据的一部分,Netflix也提供了140多万的验证集数据。除了训练集和验证集,Netflix还提供了282万的测试集。验证集和测试集是从训练集最频繁评分用户的集合中选出来的。为了防止过拟合(机器学习中的经验),Netflix宣布预测性能由RMSE来评估。作为基准,Netflix提供了他自己系统的训练得分0.9514作为基准。

我们选择了5万个用户和1850的电影来测试我们的模型算法,训练集保护108万评分,验证集包含2462个评分。这是一个50%的用户有低于10个评分的数据集。

5.2 训练的细节

为了加速训练,而不是批量学习。我们将Netflix数据分为10万一组,在每个小的batch后更新特征矩阵。使用不同的学习率和里程碑值,实验着不同的D,我们最终选择了0.005的学习率、0.9的里程碑值。因为这些参数的设定对于所有的D都工作良好。

5.3 自适应先验的结果

为了评估自适应先验的PMF模型,我们使用了一个10D特征矩阵的PMF模型。这个维度的选择是为了展示即使特征矩阵的维度很小,SVD类型的模型也会过拟合并且性能提升很难。我们比较了一个SVD模型,两个固定先验的PMF模型和两个自适应先验的PMF模型。SVD模型是通过最小化到观测目标矩阵的评分根距离来训练的,SVD模型的特征向量无法正则化。 两个固定先验的PMF模型有不同的正则化参数:PMF1有λU=0.01,λV=0.001\lambda_U=0.01,\lambda_V=0.001,PMF2的参数是λU=0.001,λV=0.0001\lambda_U=0.001,\lambda_V=0.0001.对于自适应的,PMFA1的用户和电影特征向量都是球面协方差矩阵的高斯先验。PMFA2都是对角斜方差矩阵。在这里,自适应先验都有可调整的平均值。先验参数和噪声方差在每10次和100次特征矩阵更新后更新一次。这个模型的验证集也是通过RMSE来测量。

结果比较如图2的左边,球面斜方差PMF模型的曲线没有展示,因为这个和对角斜方差是重合的。

截屏2022-02-02 下午11.45.30.png

基于最小RMSE比较大模型随着训练时间的增长,效果会变好。我们看的SVD模型在过拟合之前几乎和PMF2表现差不多,最好的RMSE分布是0.9258和0.9253,PMF1不会过拟合,PMF1的拟合效果不佳,RMSE只达到了0.9434. 自适应先验模型明显表现更好。得到了0.9197的RMSE(对角斜方差)和0.9204(球面斜方差)。这些结果表明自动正则化做我们的实验数据里表现最好。并且,我们初步的模型(高纬度的特征向量)实验结果表明了性能差距,因为随着特征向量维度的增加,使用的自适应的先验可能会增加。对角斜方差矩阵的性能比球面斜方差矩阵的性能更差,对角斜方差可能更适于贪婪版本的PMF模型的训练,让特征向量一次只学习一个维度。

5.4 约束PMF的结果

对于受限PMF模型我们使用了30D的实验测试,因为这种选择在验证集里表现最好。D值在[20,60]之间效果差不多。SVD、PMF和约束PMF的性能结果如图3.这三个模型初始化的特征矩阵相同,PMF和约束PMF模型的正则化参数都设置为 λU=λY=λV=λW=0.002\lambda_U=\lambda_Y=\lambda_V=\lambda_W=0.002.很明显SVD模型过拟合严重。约束PMF模型性能更好并且收敛的更快。

截屏2022-02-03 上午8.30.46.png

图3(右侧)显示了约束的用户特征对不频繁投票用户对影响,对少于5个投票的用户,PMF模型和电影平均得分相同。约束的PMF模型,却能表现的更好。当用户评分增加的时候,PMF和约束PMF变现的渐渐接近。

另外一个有趣关于约束PMF模型的观点是即使我们只知道用户对电影评分了,而不知道具体的评分,这个模型也能做出更好的预测。对于训练数据来说,我们将额外的5万个用户的数据随机采样,对于每个用户来说都有评分的电影,但我们将具体的评分数据丢弃,约束PMF模型达到了1.0510的RMSE,普通PMF模型的RMSE是1.0726.这个实验证实了即使只知道一个用户给i个电影投票了,不知道实际的打分,也可以帮助模型更好的获知用户喜好度。

在全Netflix数据集上的性能结构和我们选用的玩具数据集差不多。对于PMF和受限的PMF模型来说,正则化化参数都设置为λU=λY=λV=λW=0.001\lambda_U=\lambda_Y=\lambda_V=\lambda_W=0.001,图2(右侧)显示约束PMF模型比简单PMF模型性能更好,达到了0.9016的RMSE。一个简单SVD模型达到了0.9280的RMSE,但是10次迭代后就过拟合了。图4(左侧)显示了约束PMF模型对于评分较少的用户有更好的性能。训练集里面超过10%的用户有低于20个评分。当评分数增长的时候,公式7的影响慢慢减少,PMF和约束PMF能达到近似的性能。

Netflix数据集有更微妙的信息来源。Netflix事先告诉我们测试集有哪些用户/电影对,所以我们有了额外的分类:看过的电影但是评分未知。这是一个对于出现在测试集好几次的用户有价值的信息来源,如果他们在训练集里面只有很少的评分就更有价值了。约束PMF模型能够轻易利用这些信息。图4(右侧)展示了这种额外的信息进一步提高了模型的性能。

截屏2022-02-03 上午9.26.03.png

当我们将几个PMF模型、自适应PMF和约束PMF的预测线性组合起来,我们在测试集得到了一个0.8970的错误率。再和RBM模型的预测组合起来,我们得到一个0.8861的错误率,这比Netflix自己系统的得分高7%。

6 总结

此文我们提出了概率矩阵分解模型和它的两个扩展:具有自学习的先验PMF和约束PMF。我们也展示了这样的模型可以很好的用于训练超过1亿评分的大数据集,比如电影评分。PMF模型的效率来自于找到模型参数的点估计和超参数,而不是推断它的完整后验分布。如果我们通过一个完整的贝叶斯方法, 我们将超先验置于超参数之上并诉诸于 MCMC 方法 [5] 执行推理。虽然这种方法的计算成本更高, 初步结果强烈表明,对所呈现的 PMF 模型进行完全贝叶斯处理 将导致预测准确性显着提高。

参考文献

  • [1] Delbert Dueck and Brendan Frey. Probabilistic sparse matrix factorization. Technical Report PSI TR 2004-023, Dept. of Computer Science, University of Toronto, 2004.
  • [2] Thomas Hofmann. Probabilistic latent semantic analysis. In Proceedings of the 15th Conference on Uncertainty in AI, pages 289–296, San Fransisco, California, 1999. Morgan Kaufmann.
  • [3] Benjamin Marlin. Modeling user rating profiles for collaborative filtering. In Sebastian Thrun, Lawrence K. Saul, and Bernhard Sch¨olkopf, editors, NIPS. MIT Press, 2003.
  • [4] Benjamin Marlin and Richard S. Zemel. The multiple multiplicative factor model for collaborative filtering. In Machine Learning, Proceedings of the Twenty-first International Conference (ICML 2004), Banff, Alberta, Canada, July 4-8, 2004. ACM, 2004.
  • [5] Radford M. Neal. Probabilistic inference using Markov chain Monte Carlo methods. Technical Report CRG-TR-93-1, Department of Computer Science, University of Toronto, September 1993.
  • [6] S. J. Nowlan and G. E. Hinton. Simplifying neural networks by soft weight-sharing. Neural Computation, 4:473–493, 1992.
  • [7] Jason D. M. Rennie and Nathan Srebro. Fast maximum margin matrix factorization for collaborative prediction. In Luc De Raedt and Stefan Wrobel, editors, Machine Learning, Proceedings of the TwentySecond International Conference (ICML 2005), Bonn, Germany, August 7-11, 2005, pages 713–719. ACM, 2005.
  • [8] Ruslan Salakhutdinov, Andriy Mnih, and Geoffrey Hinton. Restricted Boltzmann machines for collaborative filtering. In Machine Learning, Proceedings of the Twenty-fourth International Conference (ICML 2004). ACM, 2007.
  • [9] Nathan Srebro and Tommi Jaakkola. Weighted low-rank approximations. In Tom Fawcett and Nina Mishra, editors, Machine Learning, Proceedings of the Twentieth International Conference (ICML 2003), August 21-24, 2003, Washington, DC, USA, pages 720–727. AAAI Press, 2003.
  • [10] Nathan Srebro, Jason D. M. Rennie, and Tommi Jaakkola. Maximum-margin matrix factorization. In Advances in Neural Information Processing Systems, 2004.
  • [11] Michael E. Tipping and Christopher M. Bishop. Probabilistic principal component analysis. Technical Report NCRG/97/010, Neural Computing Research Group, Aston University, September 1997.
  • [12] Max Welling, Michal Rosen-Zvi, and Geoffrey Hinton. Exponential family harmoniums with an application to information retrieval. In NIPS 17, pages 1481–1488, Cambridge, MA, 2005. MIT Press.