1.ALS
2.基于ALS算法的改进
3.实验结果分析
4.结论
1.ALS
1.1ALS算法的基本思想
ALS(交替最小二乘法)将一个矩阵分解成和两个矩阵,使三者满足:≈,其中R(m × n),U(m × d),V(d × n);d为隐藏因子的维度。
ALS方法常用于矩阵分解的推荐系统中。如:将用户对商品的评分矩阵分解为两个矩阵:一个用户对商品隐含特征的用户矩阵,另一个是商品所包含的隐含特征的商品矩阵。给出的损失函数如下:
其中是用户-项目评分矩阵的元素,是所求用户矩阵中的行元素,是所求项目矩阵中列元素,是正则化系数。交替二乘法就是对进行最小化求值,通过固定矩阵两个矩阵之一,求解另一个矩阵。通过对和矩阵的交替迭代求解,可以逐步优化分解的矩阵。
1.2问题分析
基于ALS的推荐模型中,模型的损失函数定义是非常重要的,根据上式求得矩阵分别表示用户的隐含特征矩阵和项目的隐含特征矩阵。但是,这种根据公式≈迭代近似求取矩阵的方案,虽然能够很好的挖掘出用户和项目的潜在因素,却没有考虑用户与用户之间的相似性,因此求取的用户-项目评分矩阵R不能很好的体现出相似用户的影响因素。
2.基于ALS算法的改进
2.1 问题分析
在ALS模型中,模型的损失函数仅仅考虑了用户和项目的潜在因素,而忽略了用户与用户之间的相似性。因此我们设计提出了一种新的模型损失函数,将用户之间的相似性考虑进去。:
2.2改进后的算法
(1) 首先根据Pearson相关系数求出用户之间的相关性。公式如下:
其中是用户j和用户q的相似性,是用户i对物品k的评分,是用户f对物品k的评分。
(2) 将(1)步骤中的得到的相似性加进损失函数中,再最小化损失函数,得到最终的矩阵和 。优化后的损失函数如下所示:
其中是用户-项目评分矩阵的元素,是所求用户矩阵中的行元素,是所求项目矩阵中列元素,和是正则化系数,是用户i和用户f的相似性。
最小化损失函数过程:先固定矩阵,求解出矩阵,然后再固定,求解出,不停的重复这过程,直到收敛或达到最大迭代次数。具体求解方法如下:
先固定,对求偏导,并令偏导为0,得到下面求解的公式:
同理,固定矩阵,对求偏导,并令偏导为0,得到下面求解的公式:
3.实验结果分析
3.1 实验数据
本实验使用的数据集是来自于GroupsLens提供的公开数据集MovieLens,该数据集在推荐算法的研究中被广泛使用,是由站点(http://movielens.umn.edu)提供。MovieLens数据集有很多种,本实验选用的是MovieLens-100k的数据集。
3.2评价指标MSE
MSE是均方误差的缩写,在推荐算法中主要是对评分预测进行评估。误差越小,意味着推荐的准确度越高。其公式为:
其中是真实分数,是预测的分数。
3.3实验结果对比
算法改进前:
算法改进后:
MSE对比:
从上面可以发现:
1.随着Iteration的增长,ALS和simALS的Train_mse越来越小
2.当Iteration=2时,ALS和simALS的Test_mse最小,分别为10.34、10.339
3.在ALS算中法加入用户与用户之间的相似性,模型的评价指标更优了
4.结论
基于ALS模型推荐算法是推荐系统中比较常用的一种通过矩阵分解技术进行推荐的算法。但ALS仅仅考虑了用户和项目的潜在因素,忽略了用户与用户之间的相似性。改进后的ALS算法加入了用户与用户之间的相似性。经过验证,加入了用户与用户之间的相似性,评价指标更优了,这说明我们的设计是成功的。不足之处是,我们还没有对参数进行调优,接下来会对参数进行调优,找出更多的不足之处,并对其进行改善。