矩阵分解是目前推荐算法中十分流行的一种算法,因其在Netflix Prize推荐系统大赛中取得的突出效果而被广泛使用。以用户-项目评分矩阵为例,矩阵分解就是预测出评分矩阵中的缺失值,然后根据预测值以某种方式向用户推荐。常见的矩阵分解方法有基本矩阵分解(basic MF),正则化矩阵分解)(Regularized MF),基于概率的矩阵分解(PMF)等。 本文主要对这些常见的矩阵分解方法的原理进行介绍。
一、什么是奇异值分解?
奇异值分解简称SVD(Singular Value Decomposition),通过奇异值分解我们可以将一个大的矩阵分解为几个小的方便计算和存储的小矩阵。当前推荐系统中的许多算法都是基于它而实现的,百度百科中对奇异值分解的定义如下:
二、为什么要在推荐系统中使用矩阵分解?
如果从通信原理的视角来看机器学习的话,可以将机器学习看做一门研究如何从含有冗余的数据中提取出对我们有用的数据最本质的特征的学科。传统的推荐方法通过对User-Item评分矩阵采用基于近邻的协同过滤来发现与用户具有相似偏好的其他用户,进而产生推荐。但这种方法存在着数据稀疏和信息冗余大的缺陷,即矩阵中评分元素稀疏,以及信息量并非随着向量维度增加而线性增加。
为了解决传统方法存在的以上缺陷,有学者利用数学中的奇异值分解相关概念提出了应用于推荐系统的矩阵分解方法。矩阵分解就是把原来的大评分矩阵,近似的分解成小矩阵的乘积,在实际推荐计算时不再使用大矩阵,而是使用分解得到的两个小矩阵。
具体来说就是,假设用户物品的评分矩阵A是m乘n维,即一共有m个用户,n个物品.通过一套算法转化为两个矩阵U和V,矩阵U的维度是m乘k,矩阵V的维度是n乘k。
该方法基于这样一个假设,用户对一个产品的喜爱程度主要由K个