矩阵分解算法由奇异值分解算法(Singular Value Decomposition, SVD)演变而来,传统的奇异值分解算法只能对数据稠密的矩阵进行分解,而评分矩阵是极度稀疏的,因此,若要使用SVD对评分矩阵进行分解,首先要对矩阵的缺失值进行填充,这样便造成了以下两个问题:
填充缺失数据会极大的增加数据量,导致算法复杂度上升。
填充方法不当会导致数据失真。
由于SVD算法在评分矩阵中不能发挥良好的作用,人们转而研究是否能只考虑已有评分对矩阵进行分解,于是便有了BasicSVD、FunkSVD、SVD++等矩阵分解方法。
参考资料:
推荐系统:矩阵分解(Matrix factorization)
Matrix Factorization 学习记录(一):基本原理及实现