推荐系统笔记:基于矩阵分解(总结篇)

推荐系统笔记:基于潜在因子模型的协同过滤(latent factor model)_UQI-LIUWJ的博客-CSDN博客

推荐系统笔记:无任何限制的矩阵分解_UQI-LIUWJ的博客-CSDN博客

推荐系统笔记:基于SVD的协同过滤_UQI-LIUWJ的博客-CSDN博客

推荐系统笔记:基于非负矩阵分解的协同过滤_UQI-LIUWJ的博客-CSDN博客

1 矩阵分解 X 协同过滤 家族

        很明显,前面几节中各种形式的矩阵分解有很多共同点。 所有上述优化公式都使残差矩阵R-UV^T的 Frobenius 范数最小化,与此同时因子矩阵 U 和 V 需要满足各种特定的约束。  对因子矩阵的不同约束实现了不同的可解释性属性。

         事实上,更广泛的矩阵分解模型系列可以使用任何其他目标函数或约束来强制逼近。 这个更广泛的家庭可以写成如下形式:

         在大多数情况下,正则化项被添加到目标函数中以防止过拟合。

1.1 不同的约束 

        各种约束通常对因素施加不同类型的可解释性。 这种可解释性的两个例子是正交性(SVD分解,提供几何可解释性)和非负性(非负矩阵分解,提供’部分总和‘可解释性)。

        此外,即使这些约束增加了观测值上的误差,当它们具有有意义的语义解释时,它们有时也可以改善未观察条目的准确度。 这是因为约束减少了未观察条目的方差,同时增加了偏差。 因此,该模型具有更好的泛化性。

        例如,将 U 和 V 中的各一列中的条目固定为1几乎总是会导致更好的性能。

推荐系统笔记:无任何限制的矩阵分解_UQI-LIUWJ的博客-CSDN博客

         选择要使用的正确约束通常取决于数据,并且需要深入了解手头的应用和目标。

        

2  PLSA

         存在其他形式的因式分解,其中可以为因子分配概率可解释性。

         例如,考虑一个非负一元评级矩阵 R 被视为相对频率分布的场景,其条目总和为 1。

        

         我们可以很容易地将R矩阵规约化到条目之和为1(每个条目除以 条目总和)

        这种矩阵R的分解可以用一种和SVD类似,但是不是SVD的方法来进行

        

         这种分解只是长得像SVD分解,但实际的内容和SVD分解还是相差甚远:

  •  此时Qk的列、Pk的列不用再是正交的
  • Qk的每一列、Pk的每一列值都是非负的,每一列数值之和为1
  • 对角矩阵Σk的每个条目(对角线上的值)也均为非负,它们的和也是1

 这里我们说明一下,比如我们令此时Qk为\begin{pmatrix} u_{11}& u_{12}\\ u_{21}& u_{22} \end{pmatrix},Pk为\begin{pmatrix} v_{11} & v_{12}\\ v_{21} & v_{22} \end{pmatrix},Σk为\begin{pmatrix} \Sigma_1 & 0\\ 0 & \Sigma_2 \end{pmatrix}

满足如下式子

\left\{\begin{matrix} u_{11}+u_{21}=1\\ u_{12}+u_{22}=1\\ \Sigma_1+\Sigma_2=1\\ v_{11}+v_{21}=1\\ v_{12}+v_{22}=1 \end{matrix}\right.

Q_k \Sigma_k P_k^T=\begin{pmatrix} u_{11}& u_{12}\\ u_{21}& u_{22} \end{pmatrix} \begin{pmatrix} \Sigma_1 & 0\\ 0 & \Sigma_2 \end{pmatrix} \begin{pmatrix} v_{11} & v_{21}\\ v_{12} & v_{22} \end{pmatrix} =\begin{pmatrix} u_{11}\Sigma_1v_{11}+u_{21}\Sigma_1v_{11} & u_{12}\Sigma_2v_{12}+u_{22}\Sigma_2v_{12}\\ u_{11}\Sigma_1v_{21}+u_{21}\Sigma_1v_{21}& u_{12}\Sigma_2v_{22}+u_{22}\Sigma_2v_{22} \end{pmatrix}

这个矩阵所有条目的和为:

[u_{11}\Sigma_1v_{11}+u_{21}\Sigma_1v_{11} ]+[u_{12}\Sigma_2v_{12}+u_{22}\Sigma_2v_{12}]+ [u_{11}\Sigma_1v_{21}+u_{21}\Sigma_1v_{21}]+ [u_{12}\Sigma_2v_{22}+u_{22}\Sigma_2v_{22} ]

=[(u_{11}+u_{21})\Sigma_1v_{11} ]+[(u_{12}+u_{22})\Sigma_2v_{12}]+ [(u_{11}+u_{21})\Sigma_1v_{21}]+ [(u_{12}+u_{22})\Sigma_2v_{22} ]

=\Sigma_1v_{11} +\Sigma_2v_{12}+ \Sigma_1v_{21}+ \Sigma_2v_{22}

=\Sigma_1(v_{11}+v_{21}) +\Sigma_2(v_{12}+ v_{22})

=\Sigma_1+\Sigma_2

=1

        这种因式分解具有概率解释:矩阵 Qk、Pk 和 Σk 包含创建评分矩阵的生成过程的概率参数。这种方法被称为概率潜在语义分析(PLSA),它可以被视为非负矩阵分解的概率变体。

        显然,这种分解的概率性质为其提供了不同类型的可解释性。

3 汇总

        这里汇总了几种较为主流的MF模型。需要注意的是,模型的选择取决于问题设置、数据中的噪声以及所需的可解释性水平。没有单一的解决方案可以实现所有这些目标。仔细理解问题域对于选择正确的模型很重要。  

模型限制目标函数优点缺点
无限制矩阵分解frobenius 范数

对于有观测值的条目,可以有很好的准确度

适用于大多数情况

对于没有观测值的条目,不一定有很好的准确度

缺乏可解释性

SVDU和V各自的列向量正交frobenius 范数

很好的几何解释性

外推推荐

稠密矩阵效果很好

稀疏矩阵效果一般
非负矩阵分解所有条目非负frobenius 范数

很好的语义可解释性

适用于隐式反馈矩阵

PLSA

所有条目非负

所有条目之和为1

有观测值的这些条目的最大概率

很好的语义可解释性

适用于隐式反馈矩阵

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

UQI-LIUWJ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值