Graph4Rec,基于图神经网络的推荐系统通用工具包

目前主流的基于图神经网络的推荐系统由于在实验数据集以及评估指标上存在较大差异,导致不能直接进行比较。换句话说,没有统一的benchmark来进行评判。另外,许多基于图神经网络推荐系统只在小规模数据集上提供了一个简单的demo,这就导致直接应用于现实世界的推荐系统还有很大的距离。为了解决上述问题,本文构建了一个基于Paddle的工具包Graph4Rec。

目前主流的基于图神经网络的推荐系统由于在实验数据集以及评估指标上存在较大差异,导致不能直接进行比较。换句话说,没有统一的benchmark来进行评判。另外,许多基于图神经网络推荐系统只在小规模数据集上提供了一个简单的demo,这就导致直接应用于现实世界的推荐系统还有很大的距离。

为了解决上述问题,本文构建了一个基于Paddle的工具包Graph4Rec。

它将训练图神经网络模型的范式统一为以下几个部分:图输入、随机游走生成、自我图生成、节点对生成和图神经网络选择。通过构建的这个pipeline,可以进行一些配置很容易地搭建自己的GNN模型。另外,他们开发了一个大规模的图引擎和一个参数服务器来支持分布式GNN训练。

并进行了系统和全面的实验,比较了不同GNN模型在不同场景和不同规模下的性能。大量的实验证明了gnn的关键组成部分的有效性。然后他们还试图弄清楚稀疏和稠密参数对gnn模型的性能影响。

最后,本文还研究了包括负抽样、自我图构造顺序和暖启动策略在内的方法,以寻找更有效和高效的gnn策略在推荐系统中的实践。

paper:https://arxiv.org/abs/2112.01035

code:https://github.com/PaddlePaddle/PGL/tree/main/apps/Graph4Rec

本文的整体架构图,其将Graph4Rec项目统一成了以下5个部分进行图神经网络的训练,具体包括图输入、随机游走生成、自我图生成、节点对生成以及图神经网络选择等组件。

其在4个公开的异质数据集上进行了性能测试,具体数据集介绍如下:

其通过对比主流的图学习系统展示了训练效率方面的优越性。其中,GraphVITE是一个通用的图嵌入引擎,PBG是一个基于Pytorch的大规模图学习系统。相比于上述两个图学习框架,本文所提出的工具包可以利用附加信息来缓解冷启动问题。

GraphViTE: https://github.com/DeepGraphLearning/graphvite

PBG: https://github.com/facebookresearch/PyTorch-BigGraph

GRecX: https://github.com/maenzhier/GRecX

另外,还对比了上述3个常用的图学习框架利用不同的召回策略(ICF、UCF以及U2I)在不同的图嵌入算法(Deepwalk、metapath2vec、lightgcn)上的性能比较。

随后比较了在Graph4Rec上常用的图神经网络模型的性能比较。

最后,探索了热启动以及负采样对性能的影响。

随便看看别的百科