论文部分内容阅读
互联网的普及和物联网的迅速发展使得数据已进入自动产生阶段,随之人类进入了大数据时代,如何高效地处理和利用这些数据成为了挑战,推荐系统的出现有效缓解了信息过载带给人们的困扰。推荐算法是推荐系统的核心算法,协同过滤(Collaborative filtering,CF)推荐算法是如今应用最广泛的一种。然而,单机环境下的推荐算法面对数据量的剧增需要很长的处理时间,不能实现推荐的实时性,分布式平台下的CF推荐算法解决了该问题。但是,该算法在应用中依旧存在数据稀疏性、冷启动和可扩展性等问题。所以,本文在Spark分布式平台上基于RDD(Resilient Distributed DataSet)编程模型对CF推荐算法的推荐过程和原理进行了系统研究,并针对算法中存在的不同问题提出了两种优化算法。主要研究内容如下:1.针对算法中存在的数据稀疏性和用户冷启动问题,本文提出融合多因素的协同过滤推荐算法。首先,将用户特征因素加入输入数据集中,应用聚类算法对其进行类别划分,此后在类内进行用户间相似度计算,不但缓解了数据稀疏性和用户冷启动问题,而且减少了算法计算量。其次,通过加入用户评分差值因素对相似度算法进行改进,从更宏观的角度衡量了用户的相似程度,提高了相似度的有效性。然后,在推荐列表的生成阶段提出了关联项目的概念,从预测评分以及与被预测项目评分的关联性两个方面为用户生成推荐列表。将该算法在RDD编程模型下进行设计和实现,实验结果表明算法缓解了数据稀疏性,提高了算法的可扩展性,推荐准确率和F1指标有一定的提高。2.针对算法中用户反馈存在的主观性问题和相似度算法应用中存在的缺点,本文提出用户反馈模糊化Top-N推荐模型。首先,将模糊集的概念应用到用户反馈数据的预处理中,解决用户评分主观性问题,使数据能更准确反映用户的实际偏好。其次,提出置信度的概念,结合两种传统的相似度算法,提出改进的CJ-sim相似度算法,并对评分预测算法进行简化与其组合使用,以增强相似度对预测结果的影响。最后,对该推荐模型基于RDD进行了设计和实现,实验结果表明该模型适用于Item-based CF和User-based CF,缓解了反馈数据的主观性问题和相似度算法存在的缺点,提高了推荐准确率。