论文部分内容阅读
随着海量数据时代的来临,如何从海量数据中获取到有用的信息是一个重要的难题,也就是信息过载问题。推荐系统已成为解决信息过载最有效的手段之一。与此同时,随着数据量的增大,推荐系统也面临着诸多的问题和挑战。比如数据稀疏性和海量数据处理能力的问题,这些问题从而引出了如何从现有用户的数据中找到用户的兴趣偏好。在现实的生活场景中,很少有用户对浏览过的物品进行直接评分,从而导致数据的稀疏性,并且显式的物品评分还不能全面表达用户对该类物品的偏爱趋势。相对于用户的显式数据而言,其隐式的数据具有更大的研究价值,比如浏览记录、时长等,通过对隐式数据的研究可以更准确地发现用户感兴趣的物品。如何从海量的数据中快速计算出该用户感兴趣的物品列表对于推荐系统来说是一个很大的挑战。伴随着机器学习的普及,利用建立推荐模型可以快速处理海量的用户数据并计算出该用户感兴趣的物品列表。面对现有推荐系统的这些难题,本文设计了基于Spark机器学习的推荐系统,其主要工作如下:第一,通过基于模型的协同过滤算法分析,将推荐问题转化为机器学习的分类和预测问题。首先将用户数据构建成用户-物品矩阵,然后利用奇异值分解算法的降维处理和最小交替二乘法的损失函数优化,最后提出基于最小交替二乘法的隐式反馈的优化设计,从而解决了用户数据稀疏性问题。第二,为了解决海量数据处理的难题,本文利用基于隐式反馈的最小交替二乘法,将用户的历史行为隐式数据集训练出一个推荐模型,并且包括了数据的预处理和对该模型的性能改进。最后将模型部署在Spark大数据处理平台并计算出针对某一用户的推荐结果,同时搭建了基于Spark Web UI和Ganglia的组合性能监控平台来监控Spark大数据平台的数据处理过程,对集群资源的分配和调整提供了可靠的依据。本文实验结果表明,随着Spark集群节点数量的增加,数据集大的数据处理加速比的增速比较快,从而可以说明,面对海量的数据处理,Spark集群能够有比较高的数据处理性能。在其他的模型参数相同的情况下,相对于最小交替二乘法显式反馈推荐模型而言,不同的迭代次数下的最小交替二乘法隐式反馈推荐模型的RMSE值普遍要偏低,说明将隐式的用户数据通过最小交替二乘法训练出来的推荐模型更能准确找出用户偏好的物品列表。