利用矩阵分解实现推荐算法

利用矩阵分解实现推荐算法

1.矩阵分解方法

矩阵分解在推荐算法中有着广泛的应用,提起矩阵分解我们首先想到的是SVD奇异值分解。
(1)因此这里我们首先介绍一下SVD分解,在推荐算法中,我们一般把评分矩阵进行SVD分解,然后,通过选择部分较大的奇异值进行降维,如果我们要计算用户i对物品j的评分则只需要计算分解后的矩阵的乘积,通过这种方法就可以将评分表中没有评分的位置得到一个预测评分,通过找到最高评分对应的物品推荐给用户。但是这里要注意,SVD分解要求矩阵是稠密的,也就是说矩阵中不能有大量的空白,一般的情况下是将缺失值进行简单的补全,比如用全局平均值,得到补全的矩阵后在进行SVD分解以进行降维。因此这个方法也存在着很多的问题。
(2)Funk-SVD
这是实际中用的比较多的算法,它的思想是用户的兴趣只受几个特定因素的影响,因而将稀疏的高维的评分矩阵分解为两个低维矩阵。即通过即通过学习得到的用户特征矩阵和物品特征矩阵,通过重构的地位矩阵预测用户对产品的评分。用户的特征向量代表着用户的兴趣,物品的特征向量代表着物品的特点,且每一个维度相互对应,两个向量的内机就表示用户对该物品的喜好程度。
它避开了求解负责的三个矩阵(SVD方法),同时也解决了稀疏性的问题,直接分解为了两个矩阵,如何求得分解后的两个矩阵呢,一般采用平方距离作为损失函数。
(3)Bias-SVD
我们把这些独立于⽤户或独⽴于物品的因素称为偏置(Bias)部分,将用户和物品的交互即⽤户对 物品的喜好部分称为个性化部分。事实上&#x

你可能感兴趣的:(算法,矩阵分解,推荐算法)