【Matrix/SVD-CF】电影推荐系统

写这篇文章的目的就是为了记录自己在学习数据挖掘中利用矩阵(Matrix)和协同过滤(Collaborate Filtering)的一些学习笔记,不然就怕自己忘记掉了。

  • 目录
  • 1.SVD是个啥(What is SVD?)
  • 2.SVD中的Factor在协同过滤矩阵中意味着什么(What are factors?)
  • 3.协同过滤矩阵中的空白是怎么被填实的(What is the relationship between Matrix and SVD?)
  • 4.SVD协同过滤矩阵怎么样效果才会最好?(What is best)

1.SVD是个啥

定义

简单的讲就是把一个A=m*n的矩阵分解成3个部分 U=m*r,Σ=r*r,V=r*n

SVD

其中r为matrix的秩,秩是用来能压缩空间维度的最小的单位,因为这不是这篇文章的重点,大家可以看看知乎上别人写的:如何理解矩阵的「秩」

应用

exp1.
如果A是一个文章*词汇的矩阵,那么三个分解后的矩阵就是U(文章*主题),Σ(主题*主题),V(主题词汇),其中Σ是一系斜对角线的数,数的大小代表这个主题是否有代表性。这里的主题代表文章的主题,比如武侠,言情等。
exp2.
如果A是一个
用户*电影的矩阵,那么三个分解后的矩阵就是U(用户*主题),Σ(主题*主题),V(主题电影),这里的主题代表电影的主题,比如恐怖片,爱情片等。

2.SVD中的Factor在协同过滤矩阵中意味着什么

在SVD中,我们把一个A=m*n的矩阵分解成3个部分 U=m*r,Σ=r*r,V=r*n。
相同的在协同过滤矩阵中我们也把一个用户*电影的矩阵分解成三部分P=m*f, Σ=f*f, Q=f*n
但是,在协同过滤矩阵中 f 并不等于r,在协同过滤中f 的范围为[r,n]。我的理解就是可以分为f个主题,最少的主题数为r,最多的主题数为n

未完待续

参考资料:
1.David Jurgen的PPT(SI671课程资料)
2.Surprise的官网

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容