推荐算法之矩阵分解

Posted lokvahkoor

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了推荐算法之矩阵分解相关的知识,希望对你有一定的参考价值。

BasicSVD


用户特征: 一组实向量, 描述了用户对具备属性a,b,c,...的电影的偏好程度 user(Xa, Xb, Xc,...)

电影特征: 一组实向量, 描述了电影队属性a,b,c,...的符合程度 movie(Xa, Xb,Xc,...)

用户对电影的评分预测值, 就是上述两个向量的内积[1]

 

奇异值分解: [2]

方阵的特征分解:

Ax=λx, 其中A为一个n×n的矩阵, λ为特征值, x为λ所对应的特征向量

对于矩阵A的n个特征值λ1λ2...λn, 以及这n个特征值所对应的特征向量{x1,x2,...xn}

矩阵A可作如下分解: A=WΣ-1, 其中W是这n个特征向量所张成的n×n维矩阵,而Σ为这n个特征值为主对角线的n×n维矩阵

奇异值分解:

奇异值分解不要求矩阵为方阵: 假设矩阵A是一个m×n的矩阵,那么我们定义矩阵A的SVD为:A=UΣVT, 其中U是一个m×m的矩阵, V是一个n×n的矩阵, 它们除了主对角线上的元素以外全为0,且都满足
UTU=I,VTV=I

技术分享图片

 

其中矩阵V是方阵ATA的n个特征向量所张成的n×n矩阵, 我们把这里用到的特征向量称做矩阵A的右奇异向量

矩阵U是方阵AAT的m个特征向量所张成的m×m矩阵, 这里的特征向量称为矩阵A的左奇异向量

矩阵Σ除了对角线上是奇异值其他位置都是0, 由推导: 

技术分享图片

可知, 奇异值σi = Avi / ui , 其中vi和ui 分别是A的右, 左奇异向量

同样, 奇异值还可以通过技术分享图片求得, 其中λ为ATA和AAT的特征值(两个矩阵的特征值是一样的)

 

 

 

 

 

BellkorSVD(SVD+)


隐性反馈

近邻模型

插值算法

BIgChaos


消除Global Effect

相似度矩阵分解

 

SVD_kNN


 xxx

 

[引用资料]

[1]王元涛. Netflix数据集上的协同过滤算法[D]. 清华大学, 2009.

[2]奇异值分解(SVD)原理与在降维中的应用 - 刘建平Pinard(https://www.cnblogs.com/pinard/p/6251584.html)





以上是关于推荐算法之矩阵分解的主要内容,如果未能解决你的问题,请参考以下文章

推荐算法之矩阵分解

用Spark学习矩阵分解推荐算法

推荐算法——非负矩阵分解(NMF)

推荐算法之FM(因子分解机)模型,召回与排序的利器

原理篇 | 推荐系统之矩阵分解模型

推荐系统中矩阵分解算法-funkSVD和ALS