论文部分内容阅读
推荐算法是当前机器学习领域研究的热点内容。推荐算法的主要研究对象是用户和物品。一方面解决用户矛盾,帮助用户发现他喜爱的物品;另一方面解决物品矛盾,让物品能够及时的展现在对它感兴趣的用户前。如今流行的推荐算法当中,基本上都是以用户为中心和导向,忽略了用户和物品双方之间的相互关系。本文将打破传统推荐算法的思维,反向思考用户和物品之间的关系,以物品为中心和导向,利用用户与物品之间联系,为物品推荐用户,即反向推荐。反向推荐一方面解决传统推荐算法的长尾现象和马太效应问题;另一方面帮助第三方占有主动权、提高竞争能力、主动将自己的物品推荐给适合它的用户。这无论是在理论研究,还是在实际应用中都有重要的意义。反向推荐结合大数据,以Hadoop作为数据存储,Spark作为计算引擎,能够根据用户的需求变化,快速、实时地给予响应;反向推荐利用分布式架构,通过多个数据副本的容错机制、并利用多台机器并行计算,解决了CPU和内存的限制。本文根据真实的用户购买数据,设计反向推荐算法,并对反向推荐算法进行组合设计。该算法提高了推荐结果的多样性和新颖性,提高了推荐物品的覆盖率,并通过实验进行了验证和分析。本文的主要工作如下:(1)爬取亚马逊用户购买图书记录作为数据集,对数据集ETL处理,研究大数据处理框架Hadoop、Spark和分布式机器学习库Mahout、SparkML。(2)研究当前流行的推荐算法。重点分析各类推荐系统及其算法的适用场景与性能优缺点,并进行对比。提出反向推荐算法,并对推荐算法中遇到的稀疏性和冷启动问题提出聚类算法,进而对反向推荐算法进行组合。(3)结合大数据和机器学习框架,设计和实现组合反向推荐算法。主要对数据进行特征提取,对算法进行重新设计,并在Mahout和Spark ML上对组合反向推荐算法进行二次开发和实现。(4)介绍常用推荐算法评价指标,并对比反向推荐算法和其他推荐算法在各指标下的性能,对实验结果作出结论性分析。