Press "Enter" to skip to content

京东零售图计算平台Galileo即将开源 瞄准大规模图算法在工业级场景落地

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

导读:图是关联关系数据的有效表示方式,在零售场景中,人、货、场之间的关联,都非常适合用图结构来表达,这些图数据中隐含了大量可解释和可挖掘的知识。京东零售图计算平台Galileo(伽利略)提供离线/在线图计算和图数据库服务能力。本次分享围绕图数据的深度学习建模技术,介绍Galileo平台中的图深度学习框架(后文简称为Galileo),该框架具备超大规模,高效,紧致存储等典型优点,旨在解决大规模图算法在工业级场景落地问题。

 

介绍之前,首先致谢京东零售数据算法通道委员会对项目的支持。在京东零售数据算法通道委员会的协调领导下,营造了良好的技术氛围,注重技术沉淀及行业影响,积极参与学术交流,鼓励前瞻性项目探索,挑战业界难题。

 

 

研发背景

 

图神经网络

 

图神经网络( Graph Neural Networks, GNN)是一类基于深度学习处理图域信息的方法。其有望解决现有深度学习算法无法解决的关系推理、可解释性等问题。

 

现实世界的许多问题都可以用图结构数据刻画,因而图神经网络的应用场景也非常多,如推荐、风控、知识图谱、计算机视觉、自然语言处理等。

 

学术界

 

过去几年,在深度学习、计算机视觉、文本处理以及数据挖掘等多个顶级会议上,图深度学习相关探究工作有了明显的增长。学术界对图深度学习的关注度显着提高。

 

学术界开源的图深度学习库有Deep Graph Library(DGL)和PyTorch Geometric(PYG)。

 

工业界

 

2019年1月,阿里妈妈开源工业级图深度学习框架 Euler。

 

2019年11月,腾讯开源了高性能图计算框架Plato。

 

2019 深度学习开发者秋季峰会上,百度发布基于飞桨的图学习框架Paddle Graph Learning (PGL)。

 

核心挑战

 

图神经网络的应用主要面临着如下挑战:

 

图的异构关系处理

 

动态图学习

 

工业级超大规模数据场景模型训练

 

框架易用性

 

 

架构设计

 

Galileo是一个分布式的图深度学习框架,具备图嵌入(Graph Embedding)学习和图神经网络端到端学习的能力。 其拥有如下五大特色:

 

支持异构图学习

 

支持动态图学习

 

支持超大规模数据场景模型训练

 

支持自定义模型

 

简单易用

 

为了方便系统的迭代、优化升级和扩展,Galileo系统采用分层设计:图引擎、深度学习后端、图算法层。

 

 

图引擎

 

图引擎主要功能:数据加载、数据采样及查询服务。为了实现对京东零售业务场景的应用支持,图引擎的设计不仅需要考虑超大规模图的存储和计算,还需要支持处理复杂的异构图。

 

1. 超大规模图

 

京东商城的活跃用户超4亿,活跃商品亿级别,基于用户和商品的关系(如:购买、点击、加购等)构建的图,顶点可达数十亿,边数量数百亿。在如此大规模的图上进行单机训练是不可行的。Galileo支持图分割和高效稳定的分布式训练,可以轻松支撑十亿顶点、百亿边的计算规模。

 

2.异构图

 

实际应用场景中,图结构往往非常复杂,体现在顶点和边关系的异构性,以及顶点和边上拥有大量属性的特点。经过特定的优化设计,Galileo图引擎在图存储和计算上均能很好的支持异构图,从而能够支撑上层算法对异构图的学习。

 

3.静态图和动态图

 

根据业务应用场景的不同,图数据的结构可能是固定不变的,也有可能是动态变化的。兼顾不同业务场景和性能,Galileo图引擎内置了两种实现:静态图和动态图。静态图应用于离线训练场景,存储和计算性能更高;动态图实现了图数据更新的接口,应用于增量学习等业务场景。

 

4.内存优化

 

实践中发现,工业级别图数据对内存资源的消耗非常大。Galileo采用紧凑高效的内存图数据结构(如下图所示),图数据的内存消耗得到了极大的降低,相比其它开源图计算框架,内存消耗减少了近70%。

 

 

5.图数据加载优化

 

图规模变大之后,图数据的加载耗时会明显增长,Galileo对此进行了精心优化, 基于二进制数据无损加载及高效的内存分配机制,相比其它开源框架, 加载性能提升了近40%。

 

6.接口丰富

 

为了满足各种复杂应用场景下的采样和查询需求,Galileo提供了如下图操作算子接口:

 

随机游走采样

 

全局带权点、边采样

 

基于指定顶点的邻居采样

 

点、边的属性查询及基于索引的过滤采样

 

基于时间戳的倾向性采样,可以实现子图过滤,避免时间穿越问题

 

子图采样

 

深度学习后端

 

Galileo无缝对接深度学习两大主流框架TensorFlow和PyTorch。兼顾扩展性和易用性,Galileo抽象封装了Dataset和多种训练模式。自研Parameter Server服务实现对超大模型的训练支持。

 

1.Dataset机制

 

Galileo秉承TensorFlow和PyTorch的设计理念,遵循数据与模型分离的原则,使用Dataset封装图数据采样逻辑,主要有以下三点优势:

 

实现了数据与模型的解耦,降低了代码复杂度,并提升了复用性

 

借助Dataset的预取及并行处理特性,提升模型训练速度

 

采样逻辑进行去重、合并等优化

 

Galileo抽象了三个基础的Dataset:

 

NodeDataset 从图数据中采样一个batch的顶点数据

 

EdgeDataset 从图数据中采样一个batch的边数据

 

FileDataset 从外部输入文件生成一个batch的样本数据

 

在基础Dataset之上,提供了一个Transform接口,可以定制图算法模型的输入。当然用户也可以实现自己的Dataset。

 

2.训练模式

 

Galileo支持非常多的训练模式,既支持CPU和GPU的单机训练,也支持分布式训练:

 

CPU: 单机训练、 分布式训练

 

GPU: 单机单卡、 单机多卡、 多机单卡、 多机多卡

 

Galileo对以上多种训练模式进行了抽象封装,用户只需简单的参数配置即可使用不同的训练模式,极大的降低了用户的使用成本。

 

3.超大模型

 

对于超出单卡GPU显存的大模型,需要使用PS训练方式。尤其是图嵌入算法(如node2vec),由于顶点的编码没有使用权重共享,导致模型的权重数量随着图数据量的增长而线性增长。Galileo在PyTorch框架之上自研Parameter Server服务,实现了对超大模型的训练支持。

 

图算法模型

 

1.内置模型

 

为降低图模型使用门槛,Galileo内置了常见的图算法模型:

 

DeepWalk,经典无偏随机游走的无监督算法

 

Node2vec,配置p、q参数实现偏向BFS或DFS游走的无监督算法

 

LINE ,灵活利用1阶,2阶邻居信息的无监督算法

 

Metapath2vec ,应用于异构图的 node2vec

 

GraphSAGE ,基于邻居采样汇聚的GCN算法

 

GAT,采用Attention机制进行邻居汇聚

 

这些模型的实现,经过仔细的测试对比,效果与原论文对齐。紧随业界图算法的发展,支持的模型也将持续更新。

 

2.模型层抽象

 

Galileo根据图算法模型的共性,抽象了一些公用层,比如图卷积层、Attention机制层、邻居汇聚层等。基于这些模型层抽象,用户可以快速实现一个自定义模型。

 

3.自定义模型

 

考虑到学术界不断有新成果涌现,算法人员有进行算法创新及改造的需求, Galileo精心设计了自定义模型接口,用户只需基于TensorFlow或PyTorch框架实现对应的模型代码以及在Dataset的Transform接口中实现对应的数据采样和处理逻辑,即可完成自定义模型。自定义模型样例(Supervised GraphSAGE)如下图所示:

 

 

 

产品化

 

高性能

 

Galileo分布式图引擎底层使用C++实现,均衡的进行子图划分,顶层的采样操作可分解为对多个子图的操作,然后由多个节点并行执行计算,从而实现对大图数据的高效率查询。

 

多框架

 

业务方选用的算法框架相对比较自由,为了让用户有更好的体验,方便复用开源模型,Galileo优先支持了使用最为广泛的两大框架TensorFlow和PyTorch,Galileo计划将来支持更多的深度学习框架。

 

扩展性

 

为了跟进学术界的最新研究成果,Galileo精心设计了自定义模型接口,用户只需基于TensorFlow或PyTorch框架实现对应的模型代码以及在Dataset的Transform接口中实现对应的数据采样和处理逻辑,即可完成自定义模型。

 

一致性

 

Galileo框架对TensorFlow和PyTorch的采样接口和训练接口进行抽象,统一了接口的定义,用户可以无区别的在TensorFlow或PyTorch代码中使用这些接口。

 

易用性

 

为了方便用户快速地完成图数据的准备,Galileo定义了通用的图数据格式,采用文本格式表示点、边及其属性数据,并且提供了高效的分布式图数据转换工具。

 

Galileo无缝集成到京东零售Easy-Algorithm算法平台,从而实现图数据生成、处理/转换、查询分析、图模型训练、结果分析等一站式服务。

 

 

即将开源

 

据京东零售数据算法通道委员会会长包勇军透露,Galileo目前已服务于内部多个业务场景,包括搜索、推荐、知识图谱、反作弊等,部分业务已取得显着的效果。 未来,平台计划对图引擎底层算子、模型训练等方面做特定优化加速,探索图模型的离在线一体化方案,持续追踪和探索学术界的最新研究成果,需要做的工作还很多,但未来可期。 此外,Galileo的开源准备工作也在进行中,预计将于年底开放源码。

 

Be First to Comment

发表评论

电子邮件地址不会被公开。 必填项已用*标注