当前位置:   article > 正文

矩阵分解(MF,SVD)和协同过滤(CF)_svd frmi

svd frmi

协同过滤Collaborative Filtering

使用用户历史的行为来做未来的推荐。忽略了关于用户或item的先验信息。

  • CF使用与我相似的用户的评分来预测我的评分
  • CF是领域无关的,不需要知道现在在对什么评分,谁在评分,评分是多少

一种CF方法称为基于邻域的方法。例如

  1. 定义一个相似度评分,基于用户之间评分的重叠度
  2. 基于相似度评分,使用邻域内的评分来为我喜欢的item打分

过滤方法并不是互斥的。内容信息可以被添加到协同过滤系统来提升性能。

矩阵分解MF

这里写图片描述

SVD

我们知道矩阵的特征分解可以将矩阵分解成一组特征向量和特征值。
现在介绍另一种矩阵分解的方法,称为奇异值分解,将矩阵分解为奇异向量和奇异值。
每个实数矩阵都有一个奇异值分解,但不一定都有特征分解。例如,非方阵的矩阵没有特征分解,这时只能用奇异值分解。
在特征分解中,我们可以将矩阵M写作 M = V d i a g ( λ ) V − 1 M=Vdiag(\lambda)V^{-1} M=Vdiag(λ)V1
奇异值分解中,将矩阵M分解成 M = U S V T M=USV^T M=USVT,这里U和V都是正交矩阵,S是对角矩阵(S不一定是方阵)。
矩阵S对角线上的元素被称为矩阵M的奇异值
矩阵U的列向量被称为左奇异向量。矩阵V的列向量被称为右奇异向量
事实上,M的左奇异向量是 M M T MM^T MMT的特征向量。M的右奇异向量是 M T M M^TM MTM协方差矩阵)的特征向量。M的非零奇异值是 M T M M^TM MTM的特征值的平方根,同时也是 M M T MM^T MMT的特征值的平方根。
证明
对于正交矩阵有 A − 1 = A T A^{-1}=A^T A1=AT
M M T U = U S V T V S T U T = U S 2 = S 2 U MM^TU=USV^TVS^TU^T=US^2=S^2U MMTU=USVTVSTUT=US2=S2U,所以U的列向量是 M M T MM^T MMT的特征向量。

SVD应用

SVD可以用于PCA降维,来做数据压缩和去噪。也可以用于推荐算法,将用户和喜好对应的矩阵做特征分解,进而得到隐含的用户需求来做推荐。同时也可以用于NLP中的算法,比如潜在语义索引(LSI)。下面我们就对SVD用于PCA降维做一个介绍。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/713961
推荐阅读
相关标签
  

闽ICP备14008679号