论文部分内容阅读
随着互联网技术的迅猛发展,推荐系统已成为解决信息超载问题最重要的过滤工具,用以帮助用户在海量的数据中快速高效地找到有价值的内容。但在实际应用中,由于产品种类和用户数目通常非常庞大,而传统的推荐系统往往运行于单机之上,受到单机的性能限制,已经远远不能够满足海量数据推荐计算的需要。为了解决推荐系统的可扩展性问题,已经提出若干基于分布式计算开源软件框架Apache Hadoop的系统解决方案。本文在深入研究HDFS分布式系统和MapReduce编程思想的基础上,针对近年来提出的网络推荐算法,提出了几种基于MapReduce编程模型的分布式并行化算法,并在此基础上,设计和实现了一个基于Hadoop的推荐原型系统。主要工作内容如下:1.通过对Hadoop运行机制和MapReduce编程原理的研究,结合对推荐系统与推荐算法,特别是对以物质扩散推荐算法和热传导推荐算法为代表的网络推荐算法的深入分析,设计和实现基于Hadoop平台的网络推荐算法MapReduce化编程实现方案,将该算法复杂的计算任务分解为一系列MapReduce作业流程,以便于在Hadoop和云计算平台上进行分布式并行化处理,通过一系列实验测试证明算法在集群上具有良好的并行性和可扩展性。2.在网络推荐算法的MapReduce化方案的基础上,使用combiner函数、sequence file输入输出类型等优化方法,分析数据集的长尾分布数据特征和算法计算过程中的实现细节,提出通过在资源分配矩阵的计算过程中利用Pair和Stripe方案以及对极度活跃用户进行剪切的优化设计思想,有效地解决算法的性能瓶颈问题,改进基于Hadoop的网络推荐算法的MapReduce方案,并通过实验测试证明改进方法可以进一步提高算法的效率。3.研究了包括Hadoop、Mahout、Sqoop、Ganglia等一系列相关开源软件的安装、部署和使用方法,结合本文设计的网络推荐算法的MapReduce化方案,经过系统需求、系统框架和流程的设计、系统的实现和系统的测试几个步骤,在多台计算机组成的集群环境下设计、实现和部署了基于Hadoop的推荐原型系统。