奇异值分解(SVD)及其扩展详解

SVD是一种常用的矩阵分解技术,是一种有效的代数特征提取方法。SVD在协同过滤中的主要思路是根据已有的评分情况,分析出评分者对各个因子的喜好程度以及电影包含各个因子的程度,最后再反过来分析数据得出预测结果。RSVD、SVD++、ASVD是基于SVD的改进算法。

本文算法主要考虑个性化推荐领域

1.Matrix Factorization Model 和 Baseline Predictors

SVD其实就是Matrix Factorization Model和Baseline Predictor的结合,所以为了方便我们先在这里介绍这两个东西。

(1)Matrix Factorization Model

把我们的用户评分想象成一个表:

![](https://imgconvert.csdnimg.cn/aHR0cDovL2ltZy5ibG9nLmNzZG4ubmV0LzIwMTcwMTA5MTkzODQzNTgw?x-oss-process=image/format,png)

每一行代表一个用户,每一列代表一个物品,这其实就是一个矩形,只是我们拥有的这个矩形可能是非常稀疏的,也就是我们知道的评分占总量很少,但现在我们知道它是一个矩形,一个矩形自然可以表示为另两个矩形的乘积(后续会给出证明):

![](https://imgconvert.csdnimg.cn/aHR0cDovL2ltZy5ibG9nLmNzZG4ubmV0LzIwMTcwMTA5MTk0MTIwNDA5?x-oss-process=image/format,png)

将这种分解方式体现协同过滤中,即有:

![](https://imgconvert.csdnimg.cn/aHR0cDovL2ltZy5ibG9nLmNzZG4ubmV0LzIwMTcwMTA5MTk0MTU3OTc0?x-oss-process=image/format,png)

在这样的分解模型中,Pu代表用户隐因子矩阵(表示用户u对因子k的喜好程度),Qi表示电影隐因子矩阵(表示电影i在因子k上的程度)。

(2)Baseline Predictors

Baseline Predictors使用向量bi表示电影i的评分相对于平均评分的偏差,向量bu表示用户u做出的评分相对于平均评分的偏差,将平均评分记做μ

![](https://imgconvert.csdnimg.cn/aHR0cDovL2ltZy5ibG9nLmNzZG4ubmV0LzIwMTcwMTA5MTk0NjMwOTE3?x-oss-process=image/format,png)

2.SVD数学原理及推导

对任意M*N的矩阵,能否找到一组正交基使得经过它变换后还是正交基?答案是肯定的,它就是SVD分解的精髓所在。

现在假设存在M*N矩阵A,事实上,A矩阵将n维空间中的向量映射到k(k<=m)维空间中,k=Rank(A)。现在的目标就是:在n维空间中找一组正交基,使得经过A变换后还是正交的。假设已经找到这样一组正交基:

![](https://imgconvert.csdnimg.cn/aHR0cDovL2ltZy5ibG9nLmNzZG4ubmV0LzIwMTcwMTA5MTk1MTU2MzUx?x-oss-process=image/format,png)

则A矩阵将这组基映射为:

![](https://imgconvert.csdnimg.cn/aHR0cDovL2ltZy5ibG9nLmNzZG4ubmV0LzIwMTcwMTA5MTk1MjM2MzA1?x-oss-process=image/format,png)

如果要使他们两两正交,即

![](https://imgconvert.csdnimg.cn/aHR0cDovL2ltZy5ibG9nLmNzZG4ubmV0LzIwMTcwMTA5MTk1MzMyNDU4?x-oss-process=image/format,png)

根据假设,存在

![](https://imgconvert.csdnimg.cn/aHR0cDovL2ltZy5ibG9nLmNzZG4ubmV0LzIwMTcwMTA5MTk1NTE1MDIz?x-oss-process=image/format,png)

所以如果正交基v选择为A’A的特征向量的话,由于A’A是对称阵,v之间两两正交,那么

![](https://imgconvert.csdnimg.cn/aHR0cDovL2ltZy5ibG9nLmNzZG4ubmV0LzIwMTcwMTA5MTk1NTM5NTU1?x-oss-process=image/format,png)

这样就找到了正交基使其映射后还是正交基了,现在,将映射后的正交基单位化

因为

![](https://imgconvert.csdnimg.cn/aHR0cDovL2ltZy5ibG9nLmNzZG4ubmV0LzIwMTcwMTA5MTk1OTExMzU1?x-oss-process=image/format,png)

所以有

![](https://imgconvert.csdnimg.cn/aHR0cDovL2ltZy5ibG9nLmNzZG4ubmV0LzIwMTcwMTA5MTk1OTI0MzA4?x-oss-process=image/format,png)

所以取单位向量

![](https://imgconvert.csdnimg.cn/aHR0cDovL2ltZy5ibG9nLmNzZG4ubmV0LzIwMTcwMTA5MTk1OTM3NzE0?x-oss-process=image/format,png)

由此可得

![](https://imgconvert.csdnimg.cn/aHR0cDovL2ltZy5ibG9nLmNzZG4ubmV0LzIwMTcwMTA5MTk1OTU0NDk5?x-oss-process=image/format,png)

当k < i <= m时,对u1,u2,…,uk进行扩展u(k+1),…,um,使得u1,u2,…,um为m维空间中的一组正交基,即将{u1,u2,…,uk}正交基扩展成{u1,u2,…,um}单位正交基。同样的,对v1,v2,…,vk进行扩展v(k+1),…,vn(这n-k个向量存在于A的零空间中,即Ax=0的解空间的基),使得v1,v2,…,vn为n维空间中的一组正交基。


则可得到

![](https://img
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值