推荐系统中矩阵分解简介(阅读感悟)

最近几年在推荐系统领域,提到最多的就是潜在语义模型和矩阵分解模型,其实,这两个名词说的是一回事,就是如何通过降维的方法将评分矩阵补全,用户的评分行为可以表示成一个评分矩阵R,其中R[u][i]就是用户u对物品i的评分。但是用户不会对所有物品进行评分,所以这个评分矩阵中很多元素是空的,这些空的元素称为缺失值(missing value),因此,评分预测从某种意义上说就是填空,如果一个用户对一个物品没有评过分,那么推荐系统就要预测这个用户是否会对这个物品进行评分以及会评多少分。

1.传统的SVD分解

对于如何补全一个矩阵,历史上有很多的研究。一个空的矩阵有很多补全的方法,而我们要找的是一个对矩阵扰动最小的补全方法,那么什么是对矩阵扰动最小呢?一般认为,如果补全后的矩阵和原来矩阵的特征值相差不大就是扰动比较小。所以,最早的矩阵分解模型就是从数学上的SVD开始的。给定m个用户和n个物品,和用户对物品的评分矩阵。首先需要对评分矩阵中的缺失值进行简单的补全,比如用全局平均值或者用用户\项目平均值补全,得到补全后的矩阵。接着可以用SVD分解将分解成如下形式:,其中U和V分别是两个k维的正交矩阵,S是对角阵,对角线上的每一个元素都是矩阵中的奇异值,为了对进行降维,可以选择较大的f个奇异值组成对角矩阵,并且找到这f个奇异值中的每个值在U,V矩阵中对应的行和列,得到从而可以得到一个降维后的评分矩阵:,其中就是用户u对物品i的预测值。

SVD分解是早期推荐系统经常研究常用的矩阵分解方法,不过该方法具有以下缺点,因此很难在实际系统中使用。1.该方法首先需要用一个简单的方法补全稀疏评分矩阵,一般来说,推荐系统中的评分矩阵是非常稀疏的,一般有95%以上的元素是缺失的。而一旦补全,评分矩阵就会变成一个稠密矩阵,从而使评分矩阵的存储需要很大的空间,这种空间的需求在实际系统中是不可能接受的。2.该方法依赖的SVD分解方法的计算复杂度很高,特别是在稠密的大规模矩阵上更是非常慢,一般来说,这里的SVD分解用于1000维以上的矩阵就已经非常慢了,而实际中系统动辄就是上千万的用户和上百万的物品,所以这种方法无法使用。如果仔细研究关于这一方法的文章可以发现,实验都是在几百个用户几百个物品的数据集上进行的。

2.Simon Funk的SVD分解

正是由于上面的两个缺点,SVD分解算法提出几年后在推荐系统领域没有得到广泛的关注,直到2006年Netflix Prize开始后,Simon Funk在博客上公开发表了一个算法(称为Funk-SVD),一下子引爆了整个学术界对矩阵分解类方法的关注。Simon Funk提出的矩阵分解方法后来被Netflix Prize 的冠军Koren称为Latent Factor Model(简称为LFM)。从矩阵分解的角度去说,如果我们将评分矩阵R分解为两个低维矩阵相乘:,那么对于用户u对物品i的评分的预测值,可以通过如下公式进行计算:,那么Simon Funk的思想很简单:可以直接通过训练集中的观察值利用最小化RMSE学习P,Q矩阵。Simon Funk 认为,既然我们用RMSE作为评测指标,那么如果能找到合适的PQ来最小化训练集中的预测误差,那么应该也能最小化测试集的预测误差。因此,Simon Funk定义了一个损失函数为:


直接优化上面的损失函数可能导致学习的过度拟合,因此还要加入防止拟合项,从而得到:


要最小化上面的损失函数,我们可以利用随机梯度下降法。该方法是最优化理论里最基础的优化算法,他首先通过求参数的偏导数找到最速下降方向,然后通过迭代法不断地优化参数。

3.加入偏置项后的LMF

在上面的LMF提出之后获得了巨大的成功,后来很多著名的模型都是通过对LMF修修补补获得的。回顾上面提出的LMF预测公式:,这个公式通过隐类将用户和物品联系在了一起,但是,实际情况下,一个评分系统有些固有属性和用户物品无关,而用户也有些属性和物品无关,物品也有些属性和用户无关。因此,Netflix Prize中提出了另一种LFM,其预测公式如下:,这个预测公式中加入了三项。这个模型称为BaisSVD。这个模型中心增加的三项的作用如下:

1. 训练集中所有记录的评分的全局平均数。在不同网站中,因为网站定位和销售的物品不同,网站的整体评分分布也会显示出一些差异。比如有些网站中的用户就是喜欢打高分,而另一些用户就是喜欢打低分。而全局平均数可以表示网站本身对用户评分的影响。

2.  用户偏置(user bias)项。这一项表示了用户的评分习惯中和物品没有关系的那种因素。比如有些用户就是比较苛刻,对什么东西要求都很高,那么他的评分就会偏低,而有些用户比较宽容,对什么东西都觉得不错,那么他的评分就会偏高。

3.  物品偏置(item bias)。这一项表示了物品接受的评分中和用户没有什么关系的因素。比如有些物品本身质量就很高,因此获得的评分相对都比较高,而有些物品本身质量就很差,因此获得的评分都会比较低。

增加的三个参数中,只有, 是要通过机器学习训练出来的。同样可以求导,然后用梯度下降法求解这两个参数即可。


【未完待续...】

你可能感兴趣的:(推荐会议)