APP下载

基于用户习惯偏好相似度的SlopeOne推荐算法

2019-07-08杨嫘

软件导刊 2019年6期
关键词:推荐系统

杨嫘

摘 要:数据稀疏是协同过滤预测精度的一个重要影响因素。Slope One算法使用简单的线性回归模型解决该问题,但它只使用评分数据做计算,未考虑相似性。提出一种基于用户习惯偏好相似度的Slope One算法(UPS Slope One)。UPS Slope One首先基于用户习惯偏好聚类,得到三组不同偏好的用户,然后分别计算各组评分偏差,计算时将用户习惯偏好相似度融入其中,最后使用线性回归模型预测评分。在MovieLens数据集上的实验表明,该算法可得到更高的推荐质量、预测准确性和稳定性。

关键词:推荐系统;用户习惯偏好;Slope One;相似性度量

DOI:10. 11907/rjdk. 182505

中图分类号:TP312

文献标识码:A文章编号:1672-7800(2019)006-0065-05

Abstract: Data sparsity is a main factor affecting the prediction accuracy of collaborative filtering. Slope One algorithm uses simple linear regression model to solve this problem. It uses rating data to do calculation without considering the similarity. In this paper, we proposed an improved Slope One algorithm based on user preference similarity. First, we obtain three groups of users with different preferences based on the user preference clustering, and then calculate the deviation of each group, we add the user preference similarity to deviation calculation, finally use linear regression model to predict the rating. Experiments on the MovieLens data set show that the proposed algorithm can achieve better recommendation quality and prediction accuracy. Meanwhile, the stability of the algorithm is also relatively satisfying.

Key Words: recommender systems; user preference; Slope One; similarity measure

0 引言

随着网络技术的发展,各行各业的海量数据导致信息过载,为解决这个问题,许多网站利用各种推荐系统提高服务质量,吸引和留住优质用户。例如亚马逊的图书推荐、市场推荐,YouTube的视频推荐以及网页中的搜索结果。协同过滤是推荐系统成功的技术之一,它通过分析用户数据以及跟踪浏览历史、购买记录和评分记录等获得的数据向用户推荐项目[1-3]。

协同过滤可划分为基于用户的协同过滤[4]和基于项目的协同过滤[5-6]。Slope One是Daniel Lemire & Anna Maclachlan提出的基于项目的协同过滤算法,具有和其它复杂的推荐算法大致相同的推荐质量,且使用时间和空间更少。Slope One算法基于所有用户的评分计算项目之间的得分偏差,然而一些用户与当前用户相似性非常低,在没有筛选的情况下将这些分数添加到预测中会降低预测精度。因此,本文考虑用户相似性提出一种新的Slope One算法。与一般的相似度计算方法不同,本文使用基于用户习惯偏好的聚类方法。该方法考虑到不同偏好的用户有不同的评价习惯,用户可聚集到不同的用户组,将用户组引入到当前用户邻居的选择中,可以得到更准确、更可靠的结果。实验表明,本文算法可显著提高稀疏评分数据的性能。

1 相关工作

推荐技术分为基于模型的方法和基于内存的方法[7]。基于模型的方法首先构建一个基于用户-项目评分矩阵的预测模型。与前者不同,基于内存的方法首先计算用户间或项目间的相似度,然后选择top-k个相似用户或项目作为当前用户或目标项目的邻居生成预测结果。在之前的相关工作中,协同过滤的修改和改进主要体现在相似度度量修改和邻居选择上[8-9]。针对相似度度量修改,传统的相似度度量方法如皮尔逊相关系数(PCC)、余弦(COS)在推荐系统中被广泛使用。除此之外,Jamali  & Ester [10]提出一种基于PCC使用sigmoid函数修改相似度度量的方法(SPCC),强调共有评分项目的重要性。如果用户间共有评分项目越多,他们就越相似。余弦相似度计算办法不考虑评分尺度,修正的余弦相似度度量办法解决了这一缺点。如Ahn[11]介绍了一种启发式相似度度量办法PIP,但是PIP仅考虑局部的评分信息而忽略了整体用户的偏好;Liu等 [12]分析了PIP的缺点,提出一种新的启发式相似度模型(NHSM)。NHSM不仅继承了PIP方法的优点,还注意共有评分项目和用户偏好的平衡;Zhang等 [13]提出一种新型有效的相似度度量办法,分别考虑局部和全局视角中的用户偏好。

传统的Slope One算法仅计算用户评分的平均差而不考虑项目之间的内在联系,为解决这个问题,杜茂康等[14]提出了一个基于邻居项目的Slope One算法,选择目标项目的一些最邻近项目参与计算,然后通过项目相似性加权预测评分;林德军等 [15]从数学运算的角度提出一個利用SVD(奇异值分解)简化评分矩阵的改进算法;柴华等 [16]将上述两种方法相结合解决问题。上述所有改进算法都保留了Slope One算法的特点,即纯粹以项目为基础而不包括用户角色。Li[17]提出了一个结合邻居用户的Slope One算法,考虑一定的相似度符合条件的邻居用户,在一定程度上删除了一些弱相关用户数据,但其计算量偏差与原来的Slope One算法相同。本文提出一个改进的Slope One算法,考虑了项目和用户的影响。

猜你喜欢

推荐系统
基于用户偏好的信任网络随机游走推荐模型
基于Mahout分布式协同过滤推荐算法分析与实现
基于Baseline SVD主动学习算法的推荐系统