论文部分内容阅读
伴随着Internet和信息技术的蓬勃发展,越来越多的信息被呈现至用户面前,造成了信息过载的问题。推荐系统是解决这个问题的有效途径之一,推荐系统根据用户的兴趣偏好、历史行为、地理位置、生活场景等信息,建立模型,进行个性化推荐。协同过滤推荐算法是应用最为广泛的一种推荐算法,但其仍然存在冷启动、数据稀疏等问题。传统的协同过滤算法面对海量数据也出现了可拓展性问题,分布式计算框架的出现为该问题的解决提供了新思路。基于内存的开源分布式计算框架Spark,是近几年大数据实时处理领域的研究热点和重点。本文对传统Slope One算法进行了研究,针对其没有考虑用户兴趣变化、没有考虑用户兴趣差异、没有考虑项目之间相似性等问题进行改进,同时基于Spark分布式平台,对改进算法进行了分布式设计与实现,提升算法的可拓展性和执行效率。主要工作包括以下几方面: 1)分析了传统Slope One算法的基本原理、详细算法步骤和算法存在的问题。 2)基于Spark平台进行了Canopy-Kmeans算法的分布式设计与实现。实验结果证明,分布式Canopy-Kmeans算法比传统分布式Kmeans算法的聚类效果更好。 3)从三个问题切入,对原始Slope One算法进行改进:首先,针对用户兴趣随时间变化的问题,使用兴趣衰减函数修正评分,同时使用兴趣转移强度修正评分预测公式;然后,针对不同用户之间兴趣差异性的问题,使用Canopy-Kmeans聚类算法将兴趣相似的用户聚集;最后,针对不同项目之间的相似度问题,计算项目之间的Pearson相似度作为评分偏差的权值,修正评分预测公式。实验结果表明,改进型的Slope One算法相比传统算法,具备更高的预测准确度。 4)基于Spark平台进行了改进算法的分布式设计与实现,使用Speedup指标证明了改进型分布式Slope One算法具备良好的并行性能。