大型网站推荐系统的图卷积神经网络应用
论文链接:https://arxiv.org/pdf/1806.01973.pdf
摘要:
图卷积深度神经网络的最新进展数据带来了推荐系统的最新性能系统基准。 但是,使这些方法变得实用且可扩展到具有数十亿个项目的Web级推荐任务数亿用户仍然是一个挑战
这里我们描述一个我们在Pinterest开发和部署的大型深度推荐引擎。 我们开发了一种数据高效的图卷积网络(GCN)算法PinSage,结合了有效的随机游走和图卷积,生成这些节点的向量表示(eg:图片),包含着图结构以及节点特征信息。 相比以前的GCN方法,我们开发了一种基于高效的随机游走以构建卷积,并设计一个越来越难训练的新颖训练策略改善模型的鲁棒性和收敛性。
我们在Pinterest上部署了PinSage,并在一个30亿个节点、180亿条边的图上(可以理解为焊点、电路板),一共能生成75亿个样本。 根据离线指标,用户研究和A / B测试,PinSage产生的高质量的结果比深度学习要好的多。 据我们所知,这是迄今为止深度图嵌入的最大应用,为新一代网络规模铺平了道路基于图卷积架构的推荐系统。
1 INTRODUCTION
深度学习方法在推荐系统中起着越来越重要的作用,用于学习图像,文本甚至单个用户的低维嵌入[9,12]。 可以使用通过深度模型学习的表示形式补充,甚至替代传统推荐算法,例如协作过滤。 这些学得的表象具有很高的实用性,因为它们可以在各种推荐任务中重复使用。 例如,使用深度模型可用于项目推荐,也可用于推荐的主题收藏(例如,播放列表或“供稿”内容)。
近年来,该领域取得了重大进展,特别是新的深度学习方法的开发能够学习图结构化数据,这对于推荐应用程序(例如,利用用户到项目)是至关重要的互动图以及社交图)[6、19、21、24、29、30]。
这些最新进展中最突出的是称为图卷积的深度学习架构的网络(GCN)[19、21、24、29]。 GCN背后的核心思想是学习如何使用神经网络从本地图邻域中迭代地聚合特征信息(图1)。 这里一个单个“卷积”运算变换和聚合特征来自节点的一跳图邻域的信息,并通过堆叠多个这样的卷积信息可以传播在图的远处。 不同于纯粹基于内容的深度模型(例如递归神经网络[3]),GCN会同时利用这两种内容信息以及图形结构。 基于GCN的方法已经建立了无数推荐系统基准的新标准(有关调查,请参见[19])。 但是,这些基准收益任务尚未转化为实际生产中的收益环境
主要挑战是将训练和基于GCN的节点嵌入的理论,扩展到具有数十亿个图的图节点和数百亿条边。 扩展GCN非常困难因为设计的许多核心假设,在大数据环境中是违反的。 例如,所有现有的基于GCN的推荐系统都需要运行在训练过程中的全图拉普拉斯算子上,假设当基础图具有数十亿个节点并且其结构在不断发展。
目前的工作。 在这里,我们提出了一个高度可扩展的GCN框架我们已经在Pinterest上开发和部署了产品。 我们的框架,一个名为PinSage的基于随机游走的GCN,可以运行在具有30亿个节点和180亿条边的大规模图形上该图比GCN的典型应用大10000倍。PinSage利用一些关键洞察力来极大地改善GCN的可扩展性:
1:动态卷积:传统的GCN算法通过将特征矩阵乘以完整图拉普拉斯算子的幂。 相比之下,我们的PinSage算法通过对节点周围的邻居并动态构造一个来自此采样邻域的计算图。 这些动态构造的计算图(图1)指定了围绕特定节点执行局部卷积,以及减轻了训练期间对整个图形进行操作的需要。
2:生产者-消费者小批量生产:我们开发了一种生产者-消费者架构,用于构建小批量确保在模型训练期间最大程度地利用GPU。 一个大内存,受CPU限制的生产者有效地对节点进行采样网络邻居并获取必要的功能以定义局部卷积,同时绑定GPU的TensorFlow模型使用这些预定义的计算图来有效地运行随机梯度优化
3:高效的MapReduce通道:我们给出了经过全面训练的GCN模型,我们设计了一个有效的MapReduce管道,该管道可以分发经过训练的模型以生成数十亿个嵌入节点,同时最大程度减少重复计算。
除了可扩展性方面的这些基本进步之外,我们还介绍了新的训练技术和算法创新。 这些创新提高了制图表达的质量由PinSage获悉,在下游推荐系统任务中带来了显着的性能提升:
1:通过随机游走构造卷积:进行卷积的节点邻域(图1)将会产生庞大的计算图,因此我们求助于抽样。但是,随机抽样不是最佳选择,因此我们开发了一种新的方法使用短随机游走技术对计算图进行采样的技术。 另一个好处是,每个节点现在都有一个重要性分数,我们在汇总/汇总步骤中使用。
2:重要性池化层:图卷积的核心组成部分是图形中来自本地邻域的特征信息的集合。 我们引入一种方法,可以根据randomwalk相似性度量权衡此聚合中节点特征的重要性,从而使节点性能提高46%离线评估指标
3:训练优化:我们设计了训练优化机制,在此过程中,算法的示例越来越难培训,从而使性能提高12%
我们已针对各种推荐部署了PinSagePinterest上的任务,Pinterest是一种流行的内容发现和管理应用程序,用户可以在其中与图钉(即可视书签)交互在线内容(例如,他们想要烹饪的食谱或他们的衣服)要购买)。 用户将这些引脚组织成板,其中包含相似引脚的集合。 总而言之,Pinterest是世界的用户策划的最大图像图,具有超过20亿个唯一图引脚收集到超过10亿个板上。
通过可确信的离线指标,受控的用户研究以及在A / B测试中,我们显示,与其他可扩展的基于深度内容的可扩展推荐算法相比,我们的方法在两个项目推荐中均达到了最先进的性能任务(即相关图钉推荐)以及“家庭供稿”推荐任务。 在离线排名指标中,我们改善了最佳表现基准,相差40%以上人工评估我们的建议为首选,大约60%并在A / B测试中显示出30%到100%的改善跨各种设置的用户参与度。
据我们所知,这是有史以来最大的深度应用。图嵌入为基于图卷积架构的新一代推荐系统铺平道路
2 RELATED WORK
3 METHOD
在本节中,我们将介绍PinSage架构和训练的技术细节,以及有效地使用MapReduce管道使用训练好的PinSage模型生成嵌入向量。
我们方法的关键计算主力是概念图的局部卷积。为了生成一个节点(即一个图片)的向量表达,我们应用多个卷积模块从节点的本地图邻域(图1)来聚合特征信息(例如视觉,文字特征)。 每个模块学习如何从一个小的图邻域聚合信息,并通过堆叠多个此类模块,我们的方法可以获取有关本地网络拓扑的信息。 重要的,这些局部卷积模块的参数是共享的,并且跨所有节点,使得我们方法的参数复杂性与输入图的大小无关。
3.1问题设置
Pinterest是一个内容发现应用程序,用户可以在其中用pin这样一个功能进行交互,是在线内容的一个视觉便签(例如用户想做饭的食谱,或想购买的衣服)。 用户组织这些pins放置到board中,这里面就包含着用户任务主题相关的pins。 总之,Pinterest这个应用程序形成的图中包含20亿个pins,10亿个board和超过180亿个边缘
我们的任务是生成高质量的embedding,或者是pin的一个表达,这些目的都是为了用来进行推荐(例如,通过KNN算法查找最近邻居,然后就可以把相关的pins直接推荐给用户,或用于下游重新排名系统)。 为了学习这些嵌入表达,我们将Pinterest环境建模为二部图,这个二部图由两个不相交的集合中的节点组成,I(包含pins)和C(包含boards)。 但是请注意,我们的方法也是自然地可以概括为,I 被视为一组items,C作为一组用户自定义的上下文或收藏结果。
除了图结构,我们还假设pins/items,u∈I,与实值属性相关联,xu ∈R(d)。通常,这些属性可以指定元数据或内容有关项目的信息,对于Pinterest,pins有着很多文本信息和图片信息。我们的目标是同时利用这些输入属性和二分图的结构以生成高质量的嵌入。 这些嵌入然后用于推荐系统通过最近的邻居查找生成候选对象(即,给定一个pin,查找相关的pins)或作为机器学习系统中的召回结果