文 · 成森 封面 · pixabay QA派|GNN工业应用-PinSAGE ? 基本概念 pins是什么意思? PinSAGE论文中的数据集有多大? PinSAGE使用的是什么图? PinSAGE的任务是什么? PinSAGE有特别区分pin节点和board节点吗? 和GraphSAGE相比,PinSAGE改进了什么? PinSAGE使用多大的计算资源? 采样 PinSAGE是如何采样的? PinSAGE的邻居节点的重要性是如何计算的? 重要性采样的好处是什么? 采样的大小是多少比较好? MiniBatch PinSAGE的minibatch和GraphSAGE有啥不一样? batch应该选多大? 训练 PinSAGE使用什么损失函数? PinSAGE如何定义标签(正例/负例)? PinSAGE为什么要使用生产者-消费者模式? PinSAGE是如何使用生产者-消费者模式? 基本概念 pins是什么意思?
本文将基于GraphSAGE来讲讲PinSage Convolve Convolve算法相当于GraphSage算法的聚合阶段过程,是PinSage中的单层图卷积算法,实际执行中,对K层邻居的每一层都执行一遍图卷积以得到不同阶邻居的信息 将目标节点的当前embedding与聚合后的邻居向量拼接后再经过一层dense层 归一化:对目标节点embedding归一化 minibatch 首先,与GraphSage一样的是,邻居采样阶段,PinSage
来自Pinterest的开发人员以及斯坦福大学的研究人员合作推出PinSage,这是一种基于深度学习的高级推荐框架,用于社交网络中的广告和购物推荐。
此外,PinSAGE 也设计了一种新颖的训练策略,该策略可以提高模型的鲁棒性并加快模型的收敛。 2.PinSAGE 本节我们介绍下 PinSAGE 架构和训练过程中的技术细节,以及 MapReduce 的通道。 下图为「局部卷积操作的前向传播算法」的伪代码,也是 PinSAGE 算法的核心: ? 下图为 PinSAGE 和其他模型的命中率和 MRR,可以看到 PinSAGE 的命中率提高了 150%,MRR 提高了 60%。 ? 下图为利用 t-SNE 的可视化展示: ? 4.Conclusion 总结:作者提出了一种基于随机游走的 GCN 算法 PinSAGE,PinSAGE 具有高度可扩展性,并且能够适配数十亿节点和数百亿边的网络。
PinSage算法的任务是,利用二分图给pins生成嵌入并用于图片推荐。 2.2 PinSage模型结构 PinSage的模型结构可参见下图,卷积的实现逻辑包含三步: 1)聚合邻域信息: 其中 是处理邻居节点信息的单层网络, 是邻居节点的权重, PinSage的伪代码逻辑 PinSage基于有监督的方式进行训练,详情如下: 通过有标签的pins-pins pair所组成的集合 ,来训练PinSage的模型参数。 ,PinSage的repin rate比其他算法高10%至30%(木有详细数据)。 4 展望 没有展望,PinSage很优秀,未来可能在知识图谱推理以及图聚类等领域发挥更大效用。
| 主要技术 1 基于图的卷积神经网络 PinSage PinSage[2] 是由斯坦福和 Pinterest 公司合作提出了第一个工业级别(数十亿节点和数百亿边)基于 GCN(Graph Convolutional PinSage 的关键创新点主要有[3]: 动态卷积:传统的 GCN 算法对特征矩阵与全图进行卷积;PinSage 算法对节点周围的邻域进行采样,通过动态构建计算图来执行高效的局部卷积。 传统的 GCN 算法检查 K-hop 图邻域;而 PinSage 通过模拟随机游走将访问量最高的设为重要邻域,并基于此构造卷积。 本文的 PinSage 算法就是基于 DGL 和 Pytorch 对部分算法做了改进。 PinSage 模型处理 利用 PinSage 模型获取 pins 的 embeddings,本文主要是获取电影数据的特征向量。
典型的图采样算法包括GraphSAGE、PinSAGE等。 PinSAGE使用多大的计算资源? PinSAGE对邻居节点的定义是:对目标节点 影响力最大 的T个节点。 PinSAGE的邻居节点的重要性是如何计算的? 训练 PinSAGE使用什么损失函数? PinSAGE如何定义标签(正例/负例)? PinSAGE用什么方法提高模型训练的鲁棒性和收敛性? 负采样 PinSAGE如何进行负采样? 如何使用多GPU并行训练PinSAGE? PinSAGE为什么要使用生产者-消费者模式? PinSAGE是如何使用生产者-消费者模式?
3.2 PinSAGE为例技术归纳 1.PinSAGE论文中的数据集有多大? 论文中涉及到的数据为20亿图片(pins),10亿画板(boards),180亿边(pins与boards连接关系)。 4.和GraphSAGE相比,PinSAGE改进了什么? 4.PinSAGE使用多大的计算资源? 和GraphSAGE一样,PinSAGE的核心就是一个 局部卷积算子 ,用来学习如何聚合邻居节点信息。PinSAGE的聚合函数叫做CONVOLVE。 7.PinSAGE是如何采样的? 如何采样这个问题从另一个角度来看就是:如何为目标节点构建邻居节点。和GraphSAGE的均匀采样不一样的是,PinSAGE使用的是重要性采样。
典型的图采样算法包括GraphSAGE、PinSAGE等。 PinSAGE使用多大的计算资源? PinSAGE对邻居节点的定义是:对目标节点 影响力最大 的T个节点。 PinSAGE的邻居节点的重要性是如何计算的? 训练 PinSAGE使用什么损失函数? PinSAGE如何定义标签(正例/负例)? PinSAGE用什么方法提高模型训练的鲁棒性和收敛性? 负采样 PinSAGE如何进行负采样? 如何使用多GPU并行训练PinSAGE? PinSAGE为什么要使用生产者-消费者模式? PinSAGE是如何使用生产者-消费者模式?
3.2 PinSAGE为例技术归纳 1.PinSAGE论文中的数据集有多大? 论文中涉及到的数据为20亿图片(pins),10亿画板(boards),180亿边(pins与boards连接关系)。 4.和GraphSAGE相比,PinSAGE改进了什么? 4.PinSAGE使用多大的计算资源? 和GraphSAGE一样,PinSAGE的核心就是一个 局部卷积算子 ,用来学习如何聚合邻居节点信息。PinSAGE的聚合函数叫做CONVOLVE。 7.PinSAGE是如何采样的? 如何采样这个问题从另一个角度来看就是:如何为目标节点构建邻居节点。和GraphSAGE的均匀采样不一样的是,PinSAGE使用的是重要性采样。
PinSAGE,被称为"GCN 在工业级推荐系统上的首次成功运用"。 PinSAGE 底层算法就是 GraphSAGE,只不过为了将其落地于一个 web-scale 的工业级推荐系统,PinSAGE 做了一系列的改进。 图6. depth-2卷积的模型结构概览。 以有监督的方式训练PinSage,使用的损失函数为 max-margin ranking loss。 训练阶段的目标是优化PinSage的参数,使标签集合中的物品对(q,i)∈L的输出嵌入接近。 平台收录 PinSage 共 3 个模型实现资源。 项目 SOTA!平台项目详情页 PinSage 前往 SOTA!
Pinterest的graph convolution neural network,做图片推荐用 PinSage: A New Graph Convolutional Neural Network for Web-Scale Recommender Systems 链接: https://medium.com/@Pinterest_Engineering/pinsage-a-new-graph-convolutional-neural-network-for-web-scale-recommender-systems
PinSAGE( PinSage: 第一个基于 GCN 的工业级推荐系统)为 GCN 落地提供了实践经验,而本文是 PinSAGE 的理论基础,同样出自斯坦福,是 GCN 非常经典和实用的论文。
作者认为,尽管GCN(PinSAGE和LightGCN)将基于User-Item的推荐表示学习从单个ID到历史交互行为扩充到高阶特征,它们还是存在以下两个方面的问题 (1)热门节点影响大,长尾节点学不好
Pinterest 目前正在积极部署 PinSage,这是一个由 GNN 提供支持的推荐系统,可以扩展到 Pinterest 图表上运行。 PinSage能够以新颖的方式预测用户感兴趣的视觉概念可以映射到他们可能吸引的新事物。 为了衡量其准确性,研究团队根据其他最先进的基于内容的深度学习基线(基于视觉或注释嵌入方法的最近邻)评估了PinSage的性能,并使用以下两个关键指标进行推荐任务: 命中率 – 直接衡量算法提出的建议包含与查询相关的项目的概率 总体而言,与最佳基线生产模型相比,PinSage 的命中率提高了 150%,MRR 提高了 60%。
如今比较流行的召回算法,比如:item2vec、DeepWalk、Youtube的召回算法、Airbnb的召回算法、FM召回、DSSM、双塔模型、百度的孪生网络、阿里的EGES、Pinterest的PinSAGE Pairwise-loss 使用margin hinge loss Pinterest的PinSAGE Pinterest 推出的基于 GCN 的召回算法 PinSAGE,被誉为"GCN 在工业级推荐系统上的首次成功运用 对技术细节感兴趣的同学,推荐读我的另一篇文章《PinSAGE 召回模型及源码分析》。 为此,PinSAGE采用随机游走的方式进行采样:在原始的user-item二部图上,以某个item作为起点,进行一次二步游走(item→user→item),首尾两端的item构成一条边。 Far PinSAGE提供了一种基于随机游走筛选hard negative的方法。 在训练开始前, 从item-item图上的某个节点u,随机游走若干次。
比如PinSAGE通过Personalize PageRank计算节点重要性,并基于节点重要性进行采样。
作者将提出的LR-GCCF模型与各种最新的基准进行比较,包括经典模型BPR、三种基于图卷积的推荐模型:GC-MC、PinSage和NGCF。 接下来,作者通过比较R-GC-MC vs GC-MC, NGCF vs PinSage, LR-GCCF和L-GCCF的结果来比较残差学习的性能。 因此当用残差学习建模高阶图结构,NGCF优于PinSage,而LR-GCCF优于L-GCCF。
Graph Neural Network for Intent Recommendation 19SIGIR NGCF Neural Graph Collaborative Filtering 18KDD PinSage
新的 API 具有如下几点优势: 支持一系列基于图采样的 GNN 模型,例如 PinSAGE,GraphSAGE,Graph Convolutional Matrix Completion (GCMC) Train the PinSAGE model by random walk sampling for item recommendation.