《Probabilistic Matrix Factorization》精读笔记

  • 本篇论文作者是多伦多大学计算机科学系的Ruslan Salakhutdinov和Andriy Mnih,发表于2007年NIPS。
  • 文中作者提出概率矩阵分解模型,是现代推荐系统的基础算法之一。

1. 介绍

传统比较流行协同过滤的方法是基于低纬度的因子模型,一个用户的态度或偏好由这些因子可以得到。

简单来说就是用户和电影之间的关系用几个线性组合决定。例如,对于N个用户和M个电影,N×M的偏好矩阵RRR由一个N×D的用户系数矩阵UTU^{T}UT和一个D×M的因子矩阵VVV的乘积给出。

训练这样的一个模型可以在给定的损失函数下,对于观测的N×M的目标矩阵RRR发现最好的矩阵秩为D的近似值。

  • 可以使用奇异值分解(SVD),基于最小化平方和距离的低秩近似找到上面说的矩阵。
  • 由于大多数现实世界的数据集是稀疏的,用因子的数目代替约束近似矩阵的秩,但是在大量的数据集中要解决一个稀疏的半定问题(SDP)也是不可实行的。

上面提到的协同过滤算法,总的来说就两个问题:

  • 不能很好地处理规模非常大的数据
  • 不能很好地处理那些非常少做评价的用户。

对此文中提出随观测值数目线性递增适应以及在非常稀疏和失衡的数据集(例如Netflix数据集)上表现优异的概率算法.

  • 在第2节中,提出了概率矩阵分解(PMF)模型,该模型将用户偏好矩阵建模为两个低秩用户矩阵和电影矩阵的乘积。
  • 在第3节中,扩展了PMF模型,电影和用户特征向量的自适应先验,并展示了如何使用这些先验来自动控制模型的复杂性。
  • 在第4节中,介绍了PMF模型的一个受限版本,该模型基于这样一个假设,即对相似电影集进行评分的用户具有相似的偏好。
  • 在第5节中,报告了实验结果,表明PMF大大优于标准的奇异值分解模型。还表明,先验的PMF和约束PMF显著提高了模型性能。

2. 概率矩阵分解

假设有M部电影,N个用户,和从111到K1K^{1}K1的整数评价值。让RijR_{ij}Rij​代表用户iii对电影jjj的评分,U∈RD×NU \in R^{D \times N}U∈RD×N和V∈RD×MV \in R^{D \times M}V∈RD×M是潜在的用户和电影特征矩阵,其中列向量UiU_{i}Ui​和VjV_{j}Vj​分别表示特定用户的和特定电影的潜在特征向量。

然后做两个假设

  • 观测噪声(观测评分矩阵RRR和近似评分矩阵R^\hat{R}R^之差)满足高斯分布
    p(R∣U,V,σ2)=∏i=1N∏j=1M[N(Rij∣UiTVj,σ2)]Iijp\left(R \mid U, V, \sigma^{2}\right)=\prod_{i=1}^{N} \prod_{j=1}^{M}\left[\mathcal{N}\left(R_{i j} \mid U_{i}^{T} V_{j}, \sigma^{2}\right)\right]^{I_{i j}} p(R∣U,V,σ2)=i=1∏N​j=1∏M​[N(Rij​∣UiT​Vj​,σ2)]Iij​(UiTVjU_{i}^{T} V_{j}UiT​Vj​为均值,所以上式是含有高斯观测噪声的概率线性模型;IijI_{i j}Iij​为指示函数:如果用户iii已经对商品jjj进行了评分,则为1,否者为0;σ\sigmaσ是观测噪声的方差,人工设定)

  • 用户潜在特征向量和商品潜在特征向量都服从均值为0的高斯先验分布
    p(U∣σU2)=∏i=1NN(Ui∣0,σU2I),p(V∣σV2)=∏j=1MN(Vj∣0,σV2I)p\left(U \mid \sigma_{U}^{2}\right)=\prod_{i=1}^{N} \mathcal{N}\left(U_{i} \mid 0, \sigma_{U}^{2} \mathbf{I}\right), \quad p\left(V \mid \sigma_{V}^{2}\right)=\prod_{j=1}^{M} \mathcal{N}\left(V_{j} \mid 0, \sigma_{V}^{2} \mathbf{I}\right) p(U∣σU2​)=i=1∏N​N(Ui​∣0,σU2​I),p(V∣σV2​)=j=1∏M​N(Vj​∣0,σV2​I)(这里的III表示一个对角阵;σU,σV\sigma_{U},\sigma_{V}σU​,σV​是先验噪声的方差,人工设定;在文中作者提到的球形高斯分布是指特征相互独立且方差相同,这种情况下投影为圆形)

综合以上三个概率密度函数,利用经典的后验概率推导,可以得到:
ln⁡p(U,V∣R,σ2,σV2,σU2)=−12σ2∑i=1N∑j=1MIij(Rij−UiTVj)2−12σU2∑i=1NUiTUi−12σV2∑j=1MVjTVj−12((∑i=1N∑j=1MIij)ln⁡σ2+NDln⁡σU2+MDln⁡σV2)+C\begin{aligned} \ln p\left(U, V \mid R, \sigma^{2}, \sigma_{V}^{2}, \sigma_{U}^{2}\right)=&-\frac{1}{2 \sigma^{2}} \sum_{i=1}^{N} \sum_{j=1}^{M} I_{i j}\left(R_{i j}-U_{i}^{T} V_{j}\right)^{2}-\frac{1}{2 \sigma_{U}^{2}} \sum_{i=1}^{N} U_{i}^{T} U_{i}-\frac{1}{2 \sigma_{V}^{2}} \sum_{j=1}^{M} V_{j}^{T} V_{j} \\ &-\frac{1}{2}\left(\left(\sum_{i=1}^{N} \sum_{j=1}^{M} I_{i j}\right) \ln \sigma^{2}+N D \ln \sigma_{U}^{2}+M D \ln \sigma_{V}^{2}\right)+C \end{aligned} lnp(U,V∣R,σ2,σV2​,σU2​)=​−2σ21​i=1∑N​j=1∑M​Iij​(Rij​−UiT​Vj​)2−2σU2​1​i=1∑N​UiT​Ui​−2σV2​1​j=1∑M​VjT​Vj​−21​((i=1∑N​j=1∑M​Iij​)lnσ2+NDlnσU2​+MDlnσV2​)+C​(由高斯分布然后等式两边取对数ln⁡\lnln推出)

其中C是一个不依赖于参数的常数。在超参数(即观察噪声方差和先验噪声方差)保持不变的情况下,最大化电影和用户特征的对数后验概率相当于最小化具有二次正则项的误差平方和目标函数:
E=12∑i=1N∑j=1MIij(Rij−UiTVj)2+λU2∑i=1N∥Ui∥Fro2+λV2∑j=1M∥Vj∥Fro2E=\frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{M} I_{i j}\left(R_{i j}-U_{i}^{T} V_{j}\right)^{2}+\frac{\lambda_{U}}{2} \sum_{i=1}^{N}\left\|U_{i}\right\|_{F r o}^{2}+\frac{\lambda_{V}}{2} \sum_{j=1}^{M}\left\|V_{j}\right\|_{F r o}^{2} E=21​i=1∑N​j=1∑M​Iij​(Rij​−UiT​Vj​)2+2λU​​i=1∑N​∥Ui​∥Fro2​+2λV​​j=1∑M​∥Vj​∥Fro2​(其中λU=σ2/σU2,λV=σ2/σV2\lambda_{U}=\sigma^{2} / \sigma_{U}^{2}, \lambda_{V}=\sigma^{2} / \sigma_{V}^{2}λU​=σ2/σU2​,λV​=σ2/σV2​)
(到这一步,个人理解是从数学概率的角度,证明了矩阵分解(FM),区别只是概率矩阵分解(PFM)中带有二次正则项)

上面目标函数的局部最小值可以通过在UUU和VVV中执行随机梯度下降法(SGD)来找到。

  • 等式EEE分别对UUU和VVV进行求导
  • 梯度下降更新UUU和VVV
  • 直到满足收敛条件或迭代至最大的迭代次数

这个模型可以被看作是SVD模型的一个概率的扩展,因为如果所有的评价都已经观测到,先验方差趋向于无穷,由等式给出的目标会还原到SVD目标。
(上面是论文中的原话翻译,关于先验方差趋向于无穷并没有理解,待补充…)

文中提到,在实验中,用类似sigmoid函数的函数限制UTVU^TVUTV,可以在有效评价值范围之外进行预测,其取值在(0,1)(0,1)(0,1)之间,同时也把111到K1K^{1}K1的评分值映射在(0,1)(0,1)(0,1)之间。

3. 关于PMF模型的自动能力控制

容量控制对于PMF模型的良好推广至关重要,关于控制模型的复杂度,最简单的控制方法是调整特征维度。

但实际数据往往是不均衡的,特征维度越大,模型就容易过拟合,反之则欠拟合,一般做法是选一个合适的维度,修改σ2\sigma^2σ2和σU2,σV2\sigma_{U}^2,\sigma_{V}^2σU2​,σV2​,如果用另一个模型来训练这些参数,计算代价昂贵。

然后文中提出了带有自适应先验的PMF,该模型的复杂度通过超参数控制(σ2,σU2,σV2\sigma^2,\sigma_{U}^2,\sigma_{V}^2σ2,σU2​,σV2​),引入超参数的先验并最大化模型对参数和超参数的对数后验,允许基于训练数据自动控制模型的复杂性。
ln⁡p(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\begin{aligned} \ln p\left(U, V, \sigma^{2}, \Theta_{U}, \Theta_{V} \mid R\right)=& \ln p\left(R \mid U, V, \sigma^{2}\right)+\ln p\left(U \mid \Theta_{U}\right)+\ln p\left(V \mid \Theta_{V}\right)+\\ & \ln p\left(\Theta_{U}\right)+\ln p\left(\Theta_{V}\right)+C \end{aligned} lnp(U,V,σ2,ΘU​,ΘV​∣R)=​lnp(R∣U,V,σ2)+lnp(U∣ΘU​)+lnp(V∣ΘV​)+lnp(ΘU​)+lnp(ΘV​)+C​(ΘU\Theta_{U}ΘU​和ΘV\Theta_{V}ΘV​分别是关于在用户和电影特征向量之上的先验的超参数,CCC是一个不依赖参数或者超参数的常量)

作者提到,当先验为高斯时,如果电影和用户特征向量保持不变,则最优超参数可以以封闭形式找到。因此,为了简化学习,在优化超参数和使用固定超参数值的最陡上升更新特征向量之间交替。当先验是高斯混合时,超参数可以通过执行一步EM来更新。在我们所有的实验中,我们对超参数使用了不适当的先验,但是很容易扩展封闭形式更新来处理超参数的共轭先验。
(这一段没有理解,在原有的代码框架下我不知道怎么用EM算法更新超参数的先验,关于带有自适应先验的PMF也没有得到实验,待补充…)

4. 有约束的PMF

一旦一个PMF模型被拟合,不经常作评价的用户将会有一个特征向量,这个特征向量接近于先前的平均值或者平均用户,所以这些用户的预测评价将会接近于电影的平均评价。

作者提出下面约束特定用户的特征向量的额外的方式,它对不频繁的用户有着大大的影响。

将用户iii的特征向量定义为:
Ui=Yi+∑k=1MIikWk∑k=1MIikU_{i}=Y_{i}+\frac{\sum_{k=1}^{M} I_{i k} W_{k}}{\sum_{k=1}^{M} I_{i k}} Ui​=Yi​+∑k=1M​Iik​∑k=1M​Iik​Wk​​(W∈RD×MW \in R^{D \times M}W∈RD×M是一个潜在的相似度约束矩阵,WWW第iii列表示用户已经评价某部电影对该用户特征向量先验平均值产生的影响;Y∈RD×NY \in R^{D \times N}Y∈RD×N是为了得到相关用户特征向量而添加到先验分布的平均值的分支)

根据定义在观测到的评价上的条件分布为:
p(R∣Y,V,W,σ2)=∏i=1N∏j=1M[N(Rij∣g([Yi+∑k=1MIikWk∑k=1MIik]TVj),σ2)]Iijp\left(R \mid Y, V, W, \sigma^{2}\right)=\prod_{i=1}^{N} \prod_{j=1}^{M}\left[\mathcal{N}\left(R_{i j} \mid g\left(\left[Y_{i}+\frac{\sum_{k=1}^{M} I_{i k} W_{k}}{\sum_{k=1}^{M} I_{i k}}\right]^{T} V_{j}\right), \sigma^{2}\right)\right]^{I_{i j}} p(R∣Y,V,W,σ2)=i=1∏N​j=1∏M​⎣⎡​N⎝⎛​Rij​∣g⎝⎛​[Yi​+∑k=1M​Iik​∑k=1M​Iik​Wk​​]TVj​⎠⎞​,σ2⎠⎞​⎦⎤​Iij​
接下来同第二节一样,用随机梯度下降找出三个矩阵去最小化目标函数。
(对矩阵求导,在实验过程中SGD遇到问题,在WWW部分用了一个经验公式代替论文公式中的一部分)

5. 实验结果

作者在论文中给出来明显的效果对比曲线,目前个人还原实验遇到些许问题,带有自适应先验的PMF和有约束的PMF并没有做好,待补充…

6. 代码

写的太烂了,不想上传了,主要参考了本文的矩阵分解家族:推荐系统系列之二:矩阵分解家族

7. 总结

  • 矩阵分解在协同过滤系统(推荐系统)中应用广泛
  • 在矩阵分解家族中除了SVD概率矩阵分解 (PMF),还包括权重矩阵分解 (WMF)带偏置的SVD(BiasSVD)timeSVDPureSVD
  • (待补充…)

Probabilistic Matrix Factorization(概率矩阵分解)相关推荐

  1. 推荐系统算法_CUCS | 推荐系统算法简介Matrix Factorization(矩阵分解)

    你是否还沉浸于春节收到各路微信红包的喜悦却发现midterm季悄然来临 每当你考完这一周的midterm准备松一口气时却发现下一周又有新的midterm在等着你 与其复习到头秃,不如打开Amazon或 ...

  2. 概率矩阵分解(Probabilistic Matrix Factorization)

    摘要 很多现有的协同过滤的方法既不能处理非常大的数据集,也不能容易地应对有非常少的评价的用户.在这篇论文中,我们提出了概率矩阵分解(PMF)模型,它的规模与观察值的数目线性相关,并且更重要的是,它在非 ...

  3. 线性代数笔记:概率矩阵分解 Probabilistic Matrix Factorization (PMF)

    概率矩阵分解模型可以解决大规模.稀疏且不平衡的数据. 1 PMF的两点假设 1.1.观测噪声(观测评分矩阵和近似评分矩阵之差)服从高斯噪声的正态分布 观测评分矩阵是ground truth的矩阵,我们 ...

  4. python 怎么取对数_概率矩阵分解(PMF)及MovieLens上的Python代码

    首先对Probabilistic Matrix Factorization这篇论文的核心公式进行讲解和推导:然后用Python代码在Movielens数据集上进行测试实验. 一. 背景知识 文中作者提 ...

  5. 论文笔记:Probabilistic Matrix Factorization

    一.基本信息 论文题目:<Probabilistic Matrix Factorization> 发表时间:NIPS  2007 论文作者及单位: 论文地址:https://dl.acm. ...

  6. 【推荐系统算法】PMF(Probabilistic Matrix Factorization)

    Mnih, Andriy, and Ruslan Salakhutdinov. "Probabilistic matrix factorization." Advances in ...

  7. 贝叶斯概率矩阵分解理解

    贝叶斯概率矩阵分解理解 前提假设: 1.用户特征向量,电影特征向量均服从高斯分布先验分布 2.均值和协方差矩阵服从高斯-威沙特分布的先验分布 后验概率推理: 1.对用户特征向量后验概率进行推理,满足一 ...

  8. matlab中服从高斯分布的矩阵_推荐基础算法之矩阵分解PMF

    推荐基础算法之矩阵分解PMF 大多数存在的协同过滤算法不能处理以下两种情况: 1. 不能处理大规模数据 2.不能处理评分非常少的用户数据 概率矩阵分解模型可以解决大规模.稀疏且不平衡的数据.这篇文章主 ...

  9. 【机器学习的数学基础】(六)矩阵分解(Matrix Decomposition)(上)

    文章目录 4 矩阵分解(Matrix Decompositions)(上) 4.1 行列式与迹 4.2 特征值和特征向量 4 矩阵分解(Matrix Decompositions)(上) 在第2章和第 ...

  10. mf模型 svd++_算法小板报(六)——初探MF(矩阵分解)和FM模型

    一.简介 矩阵分解(Matrix Factorization,MF)是推荐系统中非常经典的一个算法,虽然现今工业界直接使用的较少,但其背后蕴含的编码降维思想,得以广泛应用于推荐领域之中.本文则主要来梳 ...

最新文章

  1. python就业方向哪个好-学习python就业方向都有哪些?
  2. 【NLP】新闻上的文本分类:机器学习大乱斗
  3. linux配置chrony时间同步
  4. Docker Toolbox在window 10 home 下挂载宿主机目录到容器的正确操作
  5. 设计模式 原型模式_设计模式:原型
  6. MT7628如何控制GPIO
  7. OpenSSH 命令注入漏洞通告(CVE-2020-15778,Openssh <=8.3p1)
  8. 查询接待收待飞地数量失败_中国有哪些飞地?
  9. 13、第七 - 网络编程基础 - Python中协程EVENT()函数-事件函数
  10. AUTOCAD2020入门学习笔记(三)
  11. Python实现:超分子化学的建模------如何操控客体分子穿过主体分子和计算该过程能量变化(高斯(Gauss)输入文件为例,一键批量处理)
  12. 弹弹堂手游语音服务器怎么连接,腾讯弹弹堂手游空间怎么进去 互动玩法攻略介绍...
  13. CE实现植物大战僵尸后台运行
  14. mysql数据库的超级管理员名称_MySQL数据库的超级管理员名称是______
  15. 从内观修行的角度看正念疗法
  16. 证券业数据大集中及其风险控制分析
  17. ATFX:小非农不及预期,今晚大非农表现如何?
  18. hadoop操作出现:9000 failed on connection exception: java.net.ConnectException:拒绝访问(已解决)
  19. 考研政治与专业课总结(持续更新)
  20. linux替换文件内容

热门文章

  1. IEMS_11_课程信息相关的初始数据导入
  2. lan和adsl是什么信号_路由器上的adsl是什么意思【图】
  3. 禁锢女性科技界地位?《花花公子》的裸体照片一直是测试科技的试金石
  4. UP《人生七年》BBC纪录片
  5. Broker启动历史数据加载
  6. 腾达和小云无线路由中继(WISP)解决
  7. IP获取方法二:太平洋网络IP地址查询Web接口
  8. c语言点阵输出字母,单片机C语言程序设计:8X8LED 点阵显示数字
  9. 【转】完美:photoshop cs6 破解版下载[序列号+破解补丁+破解教程+官方原版]
  10. 利用计算机及网络系统支持考试的方式是,2012年7月全国自主考试(网络操作系统)真题...