原來GNN這麼好上手,深度學習就有它!

Graph-Learn(GL) 是阿里巴巴开源的高性能工业级大规模图学习系统,本文将对GL的用户接口做一个概览,并介绍GL丰富的图采样算法,以及GL灵活统一的GNNs模型框架,帮助用户快速上手GL。


项目地址:https://github.com/alibaba/graph-learn 。

图数据广泛存在于我们生活中,社交网络、互联网、交通网等等都是天然的图数据。在阿里内部场景,用户物品的交互数据,安全风控领域的用户、评论、交易等都构成图,图可以说是数据最为广泛的存在形式。


深度学习在文本,语音,图像等数据上取得了很大成功,GNNs(图神经网络)是深度学习在图结构数据上的应用。对于图这一非欧空间的数据,如何将它和深度学习结合起来是GNNs首先要解决的问题。GNNs早期的研究主要集中在Spectral-based 方法上,这种方法理论比较充分,但是难以用于大规模场景。近些年以GraphSage为代表的Spatial-based方法在性能,泛化性,灵活性等方面均体现出了优势。GraphSage通过采样子图进行按批次训练的方式在Pinterest推荐场景进行了实际应用,并取得了很好的效果。此外,像DeepWalk等Graph embedding算法和TransE等知识图谱模型的训练都是基于采样的方法进行设计和训练。


阿里很多场景的数据都是十亿级别节点,百亿边的规模,针对阿里众多场景的实际需求和特点,我们设计开发了简洁易用,高性能的工业级大规模图学习系统Graph-Learn(GL) 。GL主要面向spatial-based的GNNs算法,同时支持graph embedding, 知识图谱等常见图学习算法。

GL的整体模块如下图所示,底层由图引擎和NN引擎组成,通过数据模型管理采样后的图数据从而利用NN引擎的计算能力接入上层算法。

原来GNN这么好上手,深度学习就有它!


Graph Engine提供了分布式大规模图的查询、采样等操作。基于简洁的接口,你可以遍历图、得到邻居样本、得到所需属性,从而自己组织数据,构造模型。

Data Model是GL的基础数据模型,我们以种子节点(seed nodes/edges)和邻域(receptive fields /multi-hops neighbors)组成的子图为基本编程对象,并提供了对接上层神经网络模型的数据转换功能。基于数据模型,可以轻松管理样本,并专注于模型开发。

基于Data Model,Graph learning models通过抽象多种encoders模块可以将图数据转换为最终的embedding。GL提供了多个built-in的GNNs models,并封装了若干常用的encoders和对应的图卷积层,图聚合层。Graph learning models提供了e2e的模型训练评估过程,可以在单机和分布式环境一键运行,同时基于内置的各个模块也可以方便快速构建自己的训练过程和算法模型


分享到:


相關文章: