论文部分内容阅读
随着互联网信息的爆炸式增长,信息超载导致人们很难在短时间内从海量信息中获取自己感兴趣的信息,个性化推荐系统作为信息过滤的一利一重要手段应运而生。协同过滤推荐算法是目前使用最广泛且最成功的算法。然而随着大数据时代的来临,当推荐系统规模巨大时,算法计算密度迅速增大而变得十分耗时,从而导致推荐滞后,用户体验性差,因此传统的算法面临可扩展性问题。当前人们主要运用分布式集群技术来提高算法效率,但由于其成本过高导致很多研究者及中小企业都无法承受。与CPU相比,GPU(Graphic Processing Unit)具有更大的内存带宽,更多的执行单元,更低的成本等优势,十分适合解决海量数据并行计算问题。然而单个GPU的计算能力还是有限,多GPU则能够提供更加强大的计算能力。因此本文提出了一种基于多GPU的协同过滤推荐算法。实验结果表明多GPU并行计算能显著提升算法运行速度,与CPU上的串行算法相比,最大加速比达到了260倍,而且问题规模越大加速比越大。与集群相比,具有更高的性价比。此外,还将本文提出的基于多GPU的并行算法应用到网络机顶盒个性化视频推荐中并实现了一个简单高效的推荐系统,为中小企业节约成本提供了一种可行方案。本文的多GPU并行推荐算法具有可扩展性,实际应用时可以添加更多的GPU以满足更高的性能要求。本文有以下两个创新点:(1)为了解决可扩展性问题,设计并实现了一种基于多GPU的协同过滤推荐算法。针对大数据时代,推荐系统计算密度强大和GPU显存有限问题,设计了多GPU并行算法并使用CUDA (Compute Unified Device Architecture)实现了该算法。解决了一系列问题包括:多GPU并行任务划分问题,多GPU动态数据加载及存储问题,相似度计算、寻找K最近邻、预测评分并产生Top-N推荐在多GPU中的并行实现问题。通过对比不同平台上的算法运行时间证明了多GPU并行计算可以显著提高算法效率。(2)将本文研究的基于多GPU的协同过滤推荐算法应用到网络机顶盒个性化视频推荐系统中。系统首先通过挖掘用户访问日志获取用户对视频的评分,然后应用本文提出的并行算法进行推荐,最后展示推荐结果。