Euler问世!国内首个工业级的图深度学习开源框架
千呼万唤始出来!阿里正式公布重磅开源项目——图深度学习框架 Euler。这是国内首个在核心业务大规模应用后开源的图深度学习框架。此次开源,Euler 内置了大量的算法供用户直接使用,相关代码已经可在 GitHub 上进行下载。 图学习和深度学习都是人工智能的一个分支,作为阿里巴巴旗下的大数据营销平台,阿里妈妈创新性地将图学习与深度学习进行结合,推出了 Euler,可帮助大幅度提升营销效率。Euler 已在阿里妈妈核心业务场景进行了锤炼和验证,同时,在金融、电信、医疗等涉及到复杂网络分析的场景中也具有很高的应用价值。例如,用户可以利用 Euler 对基于用户交易等金融数据构建的复杂异构图进行学习与推理,进而应用于金融反欺诈等场景。 下面让我们一起走进 Euler 的世界。 Euler 开源地址 https://github.com/alibaba/euler 1. 概述 过去几年随着数据规模和硬件计算力的迅速增长,深度学习技术在工业界被广泛应用并产生了巨大的技术红利。当前应用已经相对成熟,下一步的技术红利在哪里还在积极探索之中。图神经网络将端到端学习与归纳推理相结合,有望解决深度学习无法处理的关系推理、可解释性等一系列问题。对结构知识的表达、计算和组合泛化是实现具备 human-like AI 的关键,图神经网络有希望在这些方面形成突破,使得机器能力进一步提升,因此对图神经网络的深入应用有希望形成下一波技术红利。 图作为表达能力很强的通用的数据结构,可以用来刻画现实世界中的很多问题,例如社交场景的用户网络、电商场景的用户和商品网络、电信场景的通信网络、金融场景的交易网络和医疗场景的药物分子网络等等。相比文本、语音和图像领域的数据比较容易处理成欧式空间的 Grid-like 类型,适合现有的深度学习模型处理,图是一种非欧空间下的数据,并不能直接应用现有方法,需要专门设计的图神经网络系统。 1. 1Euler 的核心能力 1)大规模图的分布式学习 工业界的图往往具有数十亿节点和数百亿边,有些场景甚至可以到数百亿节点和数千亿边,在这样规模的图上单机训练是不可行的。Euler 支持图分割和高效稳定的分布式训练,可以轻松支撑数十亿点、数百亿边的计算规模。 2)支持复杂异构图的表征 工业界的图关系大都错综复杂,体现在节点异构、边关系异构,另外节点和边上可能有非常丰富的属性,这使得一些常见的图神经网络很难学到有效的表达。Euler 在图结构存储和图计算的抽象上均良好的支持异构点、异构边类型的操作,并支持丰富的异构属性,可以很容易的在图学习算法中进行异构图的表征学习。 3)图学习与深度学习的结合 工业界有很多经典场景,例如搜索/推荐/广告场景,传统的深度学习方法有不错效果,如何把图学习和传统方法结合起来,进一步提升模型能力是很值得探索的。Euler 支持基于深度学习样本的 mini-batch 训练,把图表征直接输入到深度学习网络中联合训练。 4)分层抽象与灵活扩展 Euler 系统抽象为图引擎层、图操作算子层、算法实现层三个层次,可以快速地在高层扩展一个图学习算法。实际上,Euler 也内置了大量的算法实现供大家直接使用。 1. 2 Euler 内置的算法实现 考虑到框架的易用性,我们内置了多种知名算法以及几种我们内部的创新算法。所有实现,我们仔细进行了测试,保证了算法运行效率,且算法效果与原论文对齐。用户无需进行开发,注入数据到平台后,可以直接使用。我们内置的算法列表见下表。有关我们内部算法的详细信息请见 2.3 节。 2. 系统设计 Euler 系统整体可以分为三层:最底层的分布式图引擎,中间层图语义的算子,高层的图表示学习算法。 下边我们分开描述各个层次的核心功能。 Figure1 Euler 架构 Overview 2. 1 分布式图引擎 为了支持我们的业务,我们不仅面临超大规模图存储与计算的挑战,还需要处理由多种不同类型的点,边及其属性构成异构图的复杂性。我们的分布式图引擎针对海量图存储,分布式并行图计算及异构图进行了优化设计,确保了工业场景下的有效应用。
2. 2 中间图操作算子 由于图学习算法的多样性以及业务的复杂性,固定的某几种甚至几十种算法实现无法满足客户的所有需求。所以在 Euler 设计中,我们围绕底层系统的核心能力着重设计了灵活强大的图操作算子,且所有算子均支持异构图操作语义。用户可以利用它来快速搭建自己的算法变体,满足独特的业务需求。 首先,Euler 分布式图引擎提供了 C++ 的 API 来提供所有图操作。基于这个 API,我们可以方便的基于某个深度学习框架添加图操作的算子,从而利用 Euler C++ 接口访问底层图引擎的能力。我们支持广泛使用的深度学习框架,比如阿里巴巴的X-DeepLearning 与流行的 TensorFlow。后继我们也会考虑支持其它的深度学习框架,比如 PyTorch。 利用灵活的图操作算子,机器学习框架可以在每个 mini-batch 与 Euler 交互,动态扩充与组织训练样本。这样,Euler 不仅支持传统的以图为中心的学习模式,且可以把图学习的能力注入传统的学习任务,实现端到端训练。 按照功能分类,我们的核心系统提供的 API 可以分类如下:
2. 3 高层算法实现 (编辑:ASP站长网) |