论文部分内容阅读
近年来,随着大数据技术的发展,Spark计算框架愈来愈被人们所喜爱,有了很广泛的应用前景。互联网用户的增多带来了网络上爆发式增长的数据,对这种海量数据的分析挖掘与特征提取成为了非常重要的研究方向。同时,伴随着人工智能的发展,机器学习和深度学习研究也愈演愈烈,这些学习算法就是不断使用数据对模型进行训练优化,最后达到分类或者聚类等相应目的。推荐系统可以说是一种分类系统,它根据用户在网络中的各种历史数据,通过数据挖掘相关算法将项目分为用户喜欢和不喜欢等几部分,最后给用户推荐相应项目。传统计算方式的推荐算法的实现需要耗费大量的时间和系统资源,它需要对大量的数据进行迭代计算,因此会产生许多中间数据,涉及到这些中间数据的存储,为了解决这个问题,人们开始将推荐算法运行在分布式计算平台上,Spark的出现满足了推荐算法并行运算这一需求。Spark引入了称为RDD的抽象数据集,保证了数据的高容错性,同时底层设计为基于内存的计算,让迭代过程的中间结果可以存放在内存里给下次迭代使用,而不用反复读写磁盘,大大节省了计算时间。通过对比研究近年来国内外推荐算法在Spark计算框架中的应用,发现在Spark平台上,推荐算法的效率有很大的提升。本文在Spark平台上对推荐算法相关技术进行研究,主要包括以下几个方面:深入研究Spark计算框架的搭建与计算原理,并在Spark平台上实现基于内容的推荐算法、基于用户的协同过滤推荐算法以及基于ALS矩阵分解的协同过滤推荐算法。同时,设计并实现了组合推荐方法,详细分析各个算法的优缺点以及具体实现流程,并对算法进行细节优化。针对基于内容的推荐算法,设计了对数据特征的预处理,更加方便可靠地计算项目的相似度;针对基于用户的协同过滤推荐,在计算相似度时加上了用户的潜在兴趣相似度,即评分相似的用户,所看过项目的相似度。实验结果表明,在Spark平台下的推荐算法执行效率有很大的提高,组合推荐算法的策略使推荐结果的准确度比各个方法独立推荐结果要好,且健壮性更强。同时算法的部分优化对特征的保留有所帮助,使得推荐结果的准确性等指标有所提高。