当前位置: 首页 > 科技观察

欧拉诞生!国内首个工业级图深度学习开源框架

时间:2023-03-21 16:44:39 科技观察

早已呼之欲出!阿里正式公布了重磅开源项目——图深度学习框架Euler。这是核心业务大规模应用后国内首个开源的图深度学习框架。在本次开源中,欧拉内置了大量算法供用户直接使用,相关代码已经在GitHub上提供下载。  图学习和深度学习都是人工智能的分支。作为阿里巴巴旗下的大数据营销平台,阿里妈妈创新地将图学习与深度学习相结合,推出欧拉,助力营销效率大幅提升。Euler在阿里妈妈的核心业务场景中得到了锤炼和验证。同时,在金融、电信、医疗等涉及复杂网络分析的场景中也具有很高的应用价值。例如,用户可以使用Euler基于用户交易等金融数据,学习和推理复杂的异构图,进而应用于金融反欺诈等场景。  让我们一起走进欧拉的世界。  欧拉开源地址  https://github.com/alibaba/euler  1.概述  过去几年,随着数据规模和硬件计算能力的快速增长,深度学习技术在行业中得到了广泛应用,产生了巨大的技术红利。目前应用相对成熟,下一个技术红利还在积极探索中。图神经网络将端到端学习与归纳推理相结合,有望解决深度学习无法处理的关系推理、可解释性等一系列问题。结构化知识的表达、计算和组合泛化是实现类人人工智能的关键。图神经网络有望在这些方面取得突破,进一步提升机器能力。因此,图神经网络的深入应用有望形成下一代。一波技术红利。  图作为一种通用的数据结构,具有很强的表达能力,可以用来描述现实世界中的很多问题,比如社交场景中的用户网络、电商场景中的用户和产品网络、电信场景中的通信网络等、金融场景医疗场景的交易网络、药物分子网络等对于现有的深度学习模型处理。图是非欧空间中的一种数据,现有的方法不能直接应用。需要专门设计的图神经网络系统。  1。1Euler的核心竞争力  1)大规模图的分布式学习  工业界的图往往有数十亿个节点和数百亿条边,有些场景甚至可以达到数百亿个节点和数千亿条边。在这种规模的图上进行单机训练是不可行的。Euler支持图分割和高效稳定的分布式训练,可以轻松支持亿点和百亿边的计算规模。  2)支持复杂异构图的表示  业界的图关系大多错综复杂,体现在异构节点和异构边关系上。此外,节点和边可能具有非常丰富的属性,这使得一些普通的图神经网络很难学习到有效的表示。Euler在图结构存储和图计算的抽象上支持异构节点和异构边类型的操作,支持丰富的异构属性,可以方便地在图学习算法中进行异构图的表示学习。  3)图学习与深度学习的结合提升模型能力非常值得探索。Euler支持基于深度学习样本的mini-batch训练,直接将图表示输入深度??学习网络进行联合训练。  4)层次抽象和灵活扩展  Euler系统被抽象为三层:图引擎层、图操作算子层、算法实现层,可以在高层次上快速扩展一个图学习算法。其实Euler也内置了大量的算法实现供大家直接使用。  1。2Euler内置算法实现  考虑到框架的易用性,我们内置了多种知名算法和我们内部的几个创新算法。我们对所有的实现都进行了仔细的测试,以保证算法的效率,算法效果与原论文保持一致。用户无需开发,向平台注入数据后即可直接使用。有关我们内置算法的列表,请参见下表。有关我们内部算法的详细信息,请参阅第2.3节。  算法类型  是否自研  特点  DeepWalk  随机游走  否  经典无偏随机游走无监督算法。  Node2Vec  随机游走  No  在行走时使用可配置参数倾向于BFS或DFS无监督算法  GCN  邻居收敛  No  CNN二阶操作邻域信息算法  GraphSAGE  NeighborConvergence  No  GCN改进,建议邻域采样,多重聚合函数等  GAT  NeighborGathering  No  使用Attention技术进行NeighborGathering  Scalable-GCN  NeighborGathering  是一种加速GCN训练的方法  LsHNERandomdon  是  使用深度网络编码在异构图中随机游走  LasGNN  邻居收敛  是  半监督大规模异构图卷积网络学习方法  2。系统设计  Euler系统整体分为三层:底层分布式图引擎,中间层图语义算子,高层图表示学习算法。  下面我们分别介绍各个级别的核心功能。图1欧拉架构概览  2.1分布式图引擎  为了支撑我们的业务,我们不仅面临超大规模图存储和计算的挑战,还需要处理由许多不同类型的点、边及其属性组成的异构图的复杂性。我们的分布式图引擎针对海量图存储、分布式并行图计算和异构图进行了优化,确保在工业场景中的有效应用。首先,为了存储超大规模的图(十亿点,百亿边),欧拉必须突破单机的限制,从而采用分布式存储架构。图加载时,整个图在引擎内部被分成多个子图,每个计算节点分配一个或几个子图进行加载。为了充分利用每个计算节点的能力,在进行图操作时,将顶层操作分解为多个子图操作,由每个节点并行执行。这样,随着更多节点的加入,我们可以获得更好的服务能力。其次,我们引入了对多个副本的支持。通过这种方式,用户可以灵活地平衡分片和副本的数量,以实现更好的服务能力。最后,我们优化了图表示学习的底层图存储数据结构和运算算法,单机图运算性能得到数倍提升。由各种类型的边、节点和属性组成的异构图对于许多复杂的业务场景是必不可少的。为了支持异构图计算能力,底层存储按照不同的节点和边类型进行组织。通过这种方式,我们可以有效地支持异构图操作。  2。2中级图运算算子  由于图学习算法的多样性和业务的复杂性,一些固定的算法甚至几十种算法不能满足客户的所有需求。因此,在Euler设计中,我们着重围绕底层系统的核心能力设计了灵活强大的图操作算子,所有算子都支持异构图操作语义。用户可以使用它快速构建自己的算法变体以满足独特的业务需求。  首先,Euler分布式图引擎提供了一个C++API来提供所有的图操作。基于此API,我们可以很方便地添加基于某种深度学习框架的图运算算子,从而使用EulerC++接口来接入底层图引擎的能力。我们支持广泛使用的深度学习框架,例如阿里巴巴的X-DeepLearning和流行的TensorFlow。未来我们还会考虑支持其他深度学习框架,比如PyTorch。  使用灵活的图操作算子,机器学习框架可以在每个mini-batch中与Euler交互以动态扩展和组织训练样本。这样,Euler不仅支持传统的以图为中心的学习模型,还将图学习能力注入到传统的学习任务中,实现端到端的训练。  按照功能分类,我们的核心系统提供的API可以分为以下几类:全局对点和边进行权重采样的能力。主要用于随机生成mini-batch样本和NegativeSampling。基于给定节点的邻居进行操作。这是图计算的核心能力,包括邻域加权采样、邻域权重最高等。顶点/边的属性查找。此功能使算法能够使用更丰富的功能,而不仅限于顶点/边ID功能。  2。3高级算法实现  如1.2节所述,除了LINE算法外,我们实现的算法可以分为两类:随机游走和邻居聚合。有关外部算法的详细信息,请参阅第1.2节中提供的论文链接。下面我们详细介绍三个内部创新算法,我们会在github上给出相关论文的链接。Scalable-GCN  是一种高效的GCN训练算法。GCN和更通用的图神经网络(GNN)方法在许多任务上取得了比以前的方法更好的结果,因为它们可以有效地提取图结构信息。但是GCN模型会引入巨大的计算量,导致模型的训练时间难以接受。Scalable-GCN在保证优异结果的前提下,将mini-batchGCN的计算复杂度从层数的指数函数降低到线性。这使得在阿里妈妈的海量数据下应用三层GCN成为可能,广告匹配的效果得到了显着提升。LsHNE  LsHNE是我们结合阿里妈妈搜索广告场景创新提出的一种无监督大规模异构网络嵌入学习方法。不同于DeepWalk算法,LsHNE的特点包括:a)使用深度神经网络学习表达,可以有效融合属性信息;b)考虑到embedding表示对距离敏感的要求,提出了两种负采样原则:分布一致性原则和弱相关性原则;c)支持异构网络。激光神经网络  LasGNN是一种半监督的大规模异构图卷积神经网络学习方法。有效融合了图结构知识信息和海量用户行为信息,大大提高了模型精度。这是半监督图在工业广告场景中的首次应用。方法。该方法有很多创新点,比如将元路径的思想应用到图卷积网络中,提出了元路径GCN模型,有效解决了异构网络的卷积问题;提出了metapathSAGE模型,在这个模型中我们设计了高效的邻居采样方法,使得大规模的多层邻居卷积成为可能。  3。应用实例  Euler平台已经广泛应用于阿里妈妈搜索广告的多个场景,在检索匹配场景、CTR预估场景、营销工具场景、反作弊场景等方面都取得了优异的业务效果。下面以匹配为例以场景为例来看欧拉的应用。  广告匹配的任务是给定用户的搜索请求。匹配模块通过了解用户的意图,从大量广告中快速准确地找到一个高质量的小规模候选广告集,并将其发送给下游排序模块进行排序。  我们首先使用一些传统的挖掘算法从用户行为日志、内容属性等维度挖掘Query(queryword)、Item(商品)和Ad(广告)之间的各种关系,然后使用Euler平台学习图中节点的嵌入。这里,节点嵌入后的空间距离描述了原始图中的关系。对于在线请求,计算用户查询词向量、前行为中的节点向量和广告节点向量之间的距离。矢量化最近邻搜索可以快速匹配符合用户意图的广告。图2演示了LsHNE方法的离线和在线工作流程。具体来说,图3显示了示例结构和网络结构。图2DeepMatchRecallFramework图3离线训练流程