论文部分内容阅读
近几年,伴随着信息技术的迅猛发展和广泛应用,人类已迈入一个“信息大数据”的时代。各类互联网应用作为信息技术的产物,极大程度地便利了人们生活,也带来了所谓“信息超载”的问题。推荐系统作为最有效的解决方式之一,可以主动从大规模数据集中挖掘用户兴趣或需求,为用户提供个性化服务。目前,推荐领域仍面临着一些关键挑战。 首先用户和物品的特征表示学习是推荐系统中的一类基础性问题。特征表示的好坏,可以直接或间接地影响到最终的推荐结果。目前,传统的推荐方法普遍缺乏对用户行为数据的深层次挖掘,具有一定的局限性。因此,如何对用户和物品进行有效的特征表示成为该领域内的一个热点问题。其次,大规模数据场景下,推荐算法的可扩展性和推荐框架的灵活性也成为关键挑战之一。 本文主要围绕基于网络表示学习的推荐技术展开研究,并设计实现了基于Spark GraphX的大规模推荐系统。我们的研究工作和成果包括: 1、首先,对于二部图网络中的两类邻近性,给出了形式化的定义和分析。在此基础上,我们提出了基于网络邻近性的表示学习算法ComLINE。该算法通过融合两类网络邻近性,建立有效的数据模型,学习图中各节点的分布式特征表示。该方法具有如下优势:(1)从网络邻近性出发,利用浅层分布式表示模型,学习用户和物品的特征表示。(2)该方法在原始负采样策略的基础上,考虑了已知负样例,优化了节点的特征表示。(3)该模型具有良好的可扩展性,能够应对大规模数据场景。 2、与网络邻近性相比,游走能够将网络中的一阶关联扩展到二阶甚至更高阶,有效地学习节点的分布式特征表示。因此,我们提出基于网络游走的表示学习算法Opt Walk。该算法利用灵活的节点跳转策略,结合深度和广度挖掘节点的邻居集合,学习用户和物品的特征表示。最后,我们在三个数据集上进行实验结果的对比分析。结果表明,OptWalk算法不仅在准确率、召回率等指标上均优于其他基准方法,也可以在不降低精度的前提下,提高推荐结果的覆盖率。 3、推荐系统在实施过程中迫切需要一个灵活的框架结构,以适应用户数据规模不断扩增的现实。我们设计并实现了基于Spark GraphX的大规模推荐系统。它主要分为三大功能模块,即数据收集、推荐引擎和结果处理。推荐引擎作为核心模块,主要对上述提出的两个算法进行了分布式实现。最终,该系统能够在大规模数据情况下保持良好的性能。