论文部分内容阅读
随着互联网技术的高速发展和普遍应用,产生了海量互联网数据。在这个大数据时代,无论是信息消费者还是信息生产者都面临数据过载的巨大挑战,如何从海量的数据中获取有价值的信息是一项意义重大的研究课题。在这样的背景下,协同过滤作为缓解信息过载的关键技术之一出现在实际项目和研究中,现在一些大型电子商务和信息分发网站已经开始应用协同过滤技术。但冷启动、预测精度不高的问题依然存在,同时面对日益增加的数据量,传统单机在数据存储和计算上会存在性能瓶颈,无法满足用户现在的应用需求,而把推荐算法与分布式计算平台相结合的方式为解决这类问题提供了新思路。当前有很多分布式计算平台,其中基于Hadoop的MapReduce计算模型只提供了 Map和Reduce两个操作,该计算模型在计算迭代式任务中I/O的开销很大。Spark平台通过提供抽象的弹性分布式数据集RDD及依托内存的运算模型,恰好弥补了 MapReduce的不足,使其更好地适应海量数据计算的场景,成为了大数据处理方向的研究重点。本文主要研究传统基于项目的协同过滤推荐算法,引入项目属性特征相似度与用户项目评分相似度结合的方式对算法进行改进,以缓解由于数据稀疏出现的项目冷启动问题,在此基础上,通过引入用户行为的时间信息对算法进一步改进。最后在Spark平台上并行化地设计并实现优化后的算法,以提高算法的并行运算效率。本文主要研究工作主要包括以下几方面:(1)分析协同过滤算法中基于项目的协同过滤推荐算法的原理、算法流程以及存在的问题。(2)针对传统基于项目协同过滤推荐算法由于数据稀疏导致的冷启动问题及用户兴趣随时间衰减的问题,本文提出引入项目属性特征相似度与用户项目评分相似度加权结合的方式来缓解冷启动的问题,再把用户行为的时间信息加入到推荐模型中以提高推荐效果,通过实验表明,优化的算法比传统算法预测的精度更高,推荐效果更好。(3)最后把优化后的基于项目的协同过滤推荐算法在Spark平台上进行并行化实现,经过实验对比表明,在Spark上实现的并行算法并行性能更好,解决了算法处理大数据集的可扩展性问题,提高算法的并行运行效率。