雷锋网 AI 科技评论消息,继去年 11 月开源面向高维稀疏数据场景的深度优化工具 X-Deep Learning(截至发稿,GitHub Star 数已达到 1972)之后,阿里妈妈团队于今日正式开源大规模分布式图表征学习框架 Euler,这一框架具有四大特点:

大规模图的分布式学习

支持图分割和高效稳定的分布式训练,可以轻松支撑数十亿点、数百亿边的计算规模。

支持复杂异构图的表征

在图结构存储和图计算的抽象上均良好的支持异构点、异构边类型的操作,并支持丰富的异构属性,可以很容易的在图学习算法中进行异构图的表征学习。

图学习与深度学习的结合

支持基于深度学习样本的 mini-batch 训练,把图表征直接输入到深度学习网络中联合训练。

分层抽象与灵活扩展

Euler 系统抽象为图引擎层、图操作算子层、算法实现层三个层次,可以快速的在高层扩展一个图学习算法,同时,Euler 内置了大量算法实现可供直接使用。

阿里妈妈团队表示,近年来随着在图深度学习技术的突破,有希望通过图引入知识结构和推理能力,与深度学习的结合,进一步提升模型能力。

2017 年 3 月,阿里妈妈团队在探索使用深度学习来刻画用户与广告的连接关系时,他们意识到图深度学习是一个非常重要的技术方向,且业界没有成熟的解决方案。2017 年 5 月,阿里妈妈开发完成第一个单机版本的图学习系统,支持他们基于随机游走类的图学习算法,并在阿里妈妈深度匹配业务上取得不错的效果。2018 年初,Euler 支持大规模分布式图学习能力,支持在数十亿点、数百亿边的大规模图上进行业务迭代。2018 年中,Euler 全面支持 GCN 类算法,并且创新的提出 LasGNN 模型与 Scalable-GCN 训练加速算法。2018 年 9 月,阿里妈妈正式决定把 Euler 的能力与业界分享,启动 Euler 的开源准备。而今天,在做了详尽准备之后,这一工具正式与所有开发者见面。

阿里妈妈团队也详述了 Euler 系统设计:

TB1_EJACNjaK1RjSZFAXXbdLFXa.jpg

Euler 系统架构图

Euler 系统整体可以分为三层:最底层的分布式图引擎,中间层图语义的算子,高层的图表示学习算法。

各个层次的核心功能如下:

一、分布式图引擎

分布式图引擎针对海量图存储,分布式并行图计算及异构图进行了优化设计,确保了工业场景下的有效应用。

首先为了存储超大规模图(数十亿点,数百亿边),Euler 必须突破单机的限制,从而采用了分布式的存储架构。在图加载时,整张图在引擎内部被切分为多个子图,每个计算节点被分配 1 个或几个子图进行加载。

为了充分利用各个计算节点的能力,在进行图的操作时,顶层操作被分解为多个对子图的操作由各个节点并行执行。这样随着更多节点的加入,可以得到更好的服务能力。然后,引入多 replica 的支持,用户从而可以灵活平衡 shard 与 replica 的数量,取得更佳的服务能力。最后,针对图表示学习优化了底层的图存储数据结构与操作算法,单机的图操作性能获得了数倍的提升。

多种不同类型的边,点与属性所组成的异构图,对很多复杂的业务场景必不可少。为了支持异构图计算能力,底层存储按照不同的节点与边的类型分别组织。这样可以高效支持异构的图操作。

二、中间图操作算子

由于图学习算法的多样性以及业务的复杂性,固定的某几种甚至几十种算法实现无法满足客户的所有需求。所以在 Euler 设计中,阿里妈妈围绕底层系统的核心能力着重设计了灵活强大的图操作算子,且所有算子均支持异构图操作语义。用户可以利用它来快速搭建自己的算法变体,满足独特的业务需求。

首先,Euler 分布式图引擎提供了 C++ 的 API 来提供所有图操作。基于这个 API,大家可以方便的基于某个深度学习框架添加图操作的算子,从而利用 Euler C++ 接口访问底层图引擎的能力。支持广泛使用的深度学习框架,比如阿里巴巴的 X-DeepLearning 与流行的 TensorFlow。后继会考虑支持其它的深度学习框架,比如 PyTorch。

利用灵活的图操作算子,机器学习框架可以在每个 mini-batch 与 Euler 交互,动态扩充与组织训练样本。这样,Euler 不仅支持传统的以图为中心的学习模式,且可以把图学习的能力注入传统的学习任务,实现端到端训练。

按照功能分类,Euler 的核心系统提供的 API 可以分类如下:

全局带权采样点和边的能力。主要用于 mini-batch 样本的随机生成以及 Negative Sampling。

基于给定节点的邻居操作。这个是图计算的核心能力包括邻居带权采样,取 Top 权重的邻居等。

点/边的属性查找。这个能力使得算法可以使用更丰富的特征,而不仅限于点/边的 ID 特征。

三、高层算法实现

目前,Euler 内置的算法如下。除了 LINE 算法,Euler 实现的算法可以分为随机游走与邻居汇聚两大类算法,其中也有阿里妈妈团队自研的开创性算法。

TB112hgCSrqK1RjSZK9XXXyypXa.jpg

以下是对阿里妈妈内部三个创新算法 Scalable-GCN、LsHNE、LasGNN 的详细介绍:

Scalable-GCN

它是一种高效的 GCN 训练算法。GCN 以及更一般的 Graph Neural Network (GNN)类的方法由于能有效的提取图结构信息,在许多任务上均取得了超过以往方法的效果。但是 GCN 的模型会引入巨大的计算量,导致模型的训练时间不可接受。Scalable-GCN 在保证优秀效果的前提下,把 mini-batch GCN 的计算复杂度从层数的指数函数压到线性。这使得在阿里妈妈的海量数据下应用三层 GCN 成为可能,广告匹配的效果获得了显著提升。

LsHNE

LsHNE 是技术团队结合阿里妈妈搜索广告场景创新地提出一种无监督的大规模异构网络 embedding 学习方法。区别于 DeepWalk 类算法,LsHNE 的特点包括:a) 采用深度神经网络学习表达,可以有效融合 Attribute 信息;b)考虑 embedding 表示的距离敏感需求,提出两个负采样原则:分布一致性原则和弱相关性原则;c)支持异构网络。

LasGNN

LasGNN 是一种半监督的大规模异构图卷积神经网络学习方法, 它有效融合了图结构知识信息和海量用户行为信息,大幅提升了模型精度,是工业界广告场景下首次应用半监督图方法。该方法有多处创新,例如将 metapath 的思想应用于图卷积网络中,并提出了 metapathGCN 模型,有效解决了异构网络的卷积问题;提出了 metapathSAGE 模型,在模型中设计高效的邻居采样的方法,使得大规模的多层邻居卷积成为可能。

以上便是阿里妈妈技术团队对 Euler 的详细解读,未来这一工具是否会带给我们更多惊喜?拭目以待。

GitHub 地址:https://github.com/alibaba/euler

雷锋网(公众号:雷锋网)雷锋网

雷锋网版权文章,未经授权禁止转载。详情见转载须知。

继 XDL 之后,阿里妈妈开源大规模分布式图表征学习框架 Euler...相关推荐

  1. 阿里开源大规模分布式图学习框架:专为Graph嵌入,无缝对接TF/PyTorch

    ↑ 点击上方[计算机视觉联盟]关注我们 来源:阿里妈妈 编辑:金金,大明 来自新智元 阿里妈妈开源大规模分布式图表征学习框架Euler,面向工业级用户和高级研究者,结合TF/XDL/PyTorch等深 ...

  2. 阿里开源Euler:国内首个工业级图表征学习框架

    先奉上开源地址:https://github.com/alibaba/euler Euler开源:用图表征学习解决深度学习瓶颈 Euler是阿里巴巴旗下数字营销平台阿里妈妈自研的大规模分布式图表征学习 ...

  3. 大规模分布式图学习框架Euler——安装和使用

    目录 一.Euler介绍 1. 框架 2. 应用 2.1 大规模图的分布式学习 2.2 支持复杂异构图的表征 2.3 图学习与深度学习的结合 2.4 分层抽象与灵活扩展 3. 内置算法 二.Euler ...

  4. 图数据库:Nebula Graph【开源的分布式图数据库】

    Nebula Graph 是一个开源的图数据库,由杭州欧若数网科技有限公司(下文简称:欧若数网)自主研发维护.欧若数网研发人员来自阿里巴巴.Facebook.华为.IBM 等大厂. Nebula Gr ...

  5. 【浙江大学】一个开源的知识图谱表示学习框架

    一.NeuralKG:一个开源的知识图谱表示学习框架 OpenKG地址:openkg.cn/tool/neuralkg GitHub地址:github.com/zjukg/neuralkg Gitee ...

  6. 高并发图片实时渲染技术在阿里妈妈的大规模应用

    个性化推荐已经广泛应用到新媒体.电商.游戏等领域,当你打开手机淘宝的时候,淘宝会根据你的浏览和购买等历史行为,提供个性化的商品推荐.那么,这些形式多样.风格各异的个性化商品展示是怎样最终呈现到APP中 ...

  7. 微软开源人工智能工具和深度学习框架

    微软机器视觉.语音处理.视频检索人工智能开源工具和深度学习框架. 本文介绍了微软在人工智能领域的领先成果.产品线,开源人工智能框架和工具.读者可以运用这些工具快速开发机器视觉.语音处理.视频检索等丰富 ...

  8. 最新分布式训练深度学习框架

    OneFlow 是什么? OneFlow是开源的.采用全新架构设计,世界领先的工业级通用深度学习框架. 为什么是OneFlow? 分布式训练全新体验,多机多卡如单机单卡一样简单 完美契合一站式平台(k ...

  9. [NSDI 17] TuX2: 面向机器学习的分布式图计算系统 学习总结

    今天要讲的文章NSDI 2017年的一篇文章,TUX2: Distributed Graph Computation for Machine Learning.本文主要想解决的问题就是:在图形引擎(如 ...

最新文章

  1. struts2文件上传,下载
  2. mysql 集群架构_mysql企业常用集群架构
  3. VMware vCenter Server6.5安装及群集配置介绍
  4. 修改linux服务器时间
  5. linux的ssh命令
  6. eclipse为项目设置jdk
  7. 最优化理论与凸优化到底是干嘛的?
  8. html5家谱制作模板,Word如何做家谱世系图?
  9. vue 停止页面滚动_Vue关于滚动停止的监听方法
  10. sql server 2008服务无法启动的原因和解决办法
  11. 数学建模 之 ARCH模型和GARCH模型
  12. Ubuntu 安装MinGW32出现Unable to locate package mingw32找不到安装包的解决方法和思路
  13. zabbix lld使用trapper方式(zabbix_sender)
  14. 基于华为鲲鹏云的c语言程序设计,华为DevRun第四讲,华为云鲲鹏云服务移植快速入门与实践...
  15. MATLAB2012a反复激活
  16. ORA-00054: 资源正忙 解决办法
  17. CSDN日报20170407 ——《嘿,程序猿,你该学点经济学了!》
  18. python pandas 分类汇总_pandas去重复行并分类汇总的实现方法
  19. Python井字棋源代码
  20. 1、从键盘输入一个小写字母,转化为大写字母并输出。

热门文章

  1. html5手机拍照上传
  2. 消息队列技术的介绍和原理(MQ)
  3. android7 ios,碰到这样的安卓7.0系统,iOS10真要吓出一身汗!
  4. html网页打不开二级网页,遇到二级网页打不开怎么办 讲解二级页面打不开的处理方法...
  5. 参加AWS技术峰会的收获与思考
  6. 2019伯克利中美峰会 | 2019峰会揭秘 峰会历程回顾 售票通道
  7. Automa自动化插件学习记录
  8. 同事的评价:你的思维跳跃性太大!
  9. python微信好友分析_基于python实现微信好友数据分析(简单)
  10. NOIP2017 Day2t3 队列