Pinsage是一种图卷积网络(GCN),它在Pinterest的推荐系统中得到了应用,能够处理数十亿个节点和数百亿条边的大规模图数据。以下是Pinsage的核心结构和特点:
-
核心思想:Pinsage结合了高效的随机游走(用于捕捉图结构特征)和图卷积(用于学习节点特征信息)。
-
问题描述:Pinsage将Pinterest环境建模为一个二分图,包括图钉(pins)集合I和钉板(boards)集合C,目标是为图钉生成高质量的嵌入表示。
-
单层CONVOLVE:Pinsage的单层卷积(CONVOLVE)包括以下三个步骤:
- 获取节点u的邻居的加权(基于L1-标准化的随机游走)聚合信息。
- 计算节点u的最新状态。
-
将上述状态归一化。
-
模型结构:Pinsage模型通过堆叠多个CONVOLVE层来学习节点的嵌入表示,每一层都基于前一层的输出。
-
基于重要性的邻域:Pinsage定义了基于重要性的邻域,通过模拟随机游走并计算节点访问次数的L1正则化值来确定节点的邻居。
-
堆叠卷积:通过多次应用卷积操作,Pinsage能够获得围绕节点的局部图结构的更多信息,每一层的输入取决于前一层的输出。
-
损失函数和训练:Pinsage使用最大边际损失函数,并采用大尺寸minibatch的多GPU训练,以及Producer-consumer minibatch construction技术,提高了训练效率。
-
基于MapReduce的模型推断:为了提高模型推断的效率,Pinsage采用一层一层的计算方法,避免了重复计算节点状态。
Pinsage通过这些结构和方法,成功地在大规模数据集上实现了图卷积网络的应用,为Pinterest的推荐系统提供了强大的技术支持。