看书和bilibili的视频都很难找到关于SVD的形象化解释,好在
https://www.youtube.com/watch?v=P5mlg91as1cwww.youtube.com这个视频做到了,最近正好还在看这个哥哥的图算法课程
先说SVD的概念,公式:
其中:
接下去是一个图形分解例子,可以有两种表达方式:
一些SVD 的性质:
总可以找到实数矩阵A的奇异值分解式子,并且:
1.
2.
3.
通过例子来理解
接下去就是一个UserToMovice的例子,个人觉得非常直观,易于理解
行代表用户,列代表电影,数字代表评分
可以看到,矩阵的左上角和右下角可以呈现出2个团,左上角的可以理解成sifi电影section,右下角可以理解成是romance 。
我们对这个矩阵进行奇异值分解,就可以得到如下结果:
我们怎么理解这些呢?
U矩阵可以理解为,用户到电影类型的矩阵,第一列和第二列我们可以分别理解为sici concept和 romance concept.(第三个特征值较小我们就先忽略不计),可以进一步理解为,前四个用户对于sici 的表现较强,后三个用户对于romance 电影的表现较强
同理可以理解sigma矩阵
V可以理解为是电影到概念的相似矩阵,(前三个电影与sicix相关性较高。)
SVD用于降维
- SVD可以找到均方误差最小的坐标将数据点投射上去(MAE既视感。。。)
用刚刚用户电影评分作为例子的话
我们特征值中,第一个值可以理解成方差最大的坐标轴,第二个会稍稍一些
对于左半部分U*Sigma<我们可以理解为,这个式子给出了在转换坐标轴上的投影.
那么对于数据的维度降维到底是怎么做到的呢?
对于不显著的特征值,将其变为0,于是就得到了一个原矩阵的近似矩阵
可以用Frobenius来判断近似的好坏程度
结论与Case Study
最后是一个刚刚影评用户关系矩阵的例子,我们怎么使用SVD呢?
比如我们一个很喜欢Matrix,我们怎么知道和他相似的其他人呢?
可以发现2个用户在原矩阵的相似度为0,但是在特征矩阵上特征相似度变高了
最后,奇异值分解与特征分解的区别:
最后总结了SVD的几个缺点:
- 可解释性较差,不是所有解释性都像电影类型这么好分类
- 不是稀疏的,稀疏的输入会被密集表达