您当前的位置:首页 > 新闻 > 科技

灵活、轻便,阿里开源简化GNN应用框架Graph-Learn

时间:2020-04-03 16:42:50  来源:  作者:

近日,阿里巴巴开源了简化 GNN 应用的新框架 Graph-Learn。该框架可从实际案例中提取解决方案,应用于推荐系统、反欺骗等多个领域。相关代码已经可以在 GitHub 上下载。

近年来,图神经网络(GNN)已经在图像分类、语义分割、推荐系统、程序推理乃至分子结构预测等领域,都有着越来越广泛的应用。GNN 一般是将底层图形作为计算图,通过在图上传递、转换和聚合节点特征信息学习神经网络基元以生成单个节点嵌入。生成的节点嵌入可以作为输入,用于如节点分类或连接预测的任何可微预测层,完整的模型可以通过端到端的方式训练。

灵活、轻便,阿里开源简化GNN应用框架Graph-Learn

 

近日,阿里巴巴团队开源了 Graph-Learn(以下简称 GL),这是一个用以简化图神经网络应用的新框架。它能够从实际的案例中提取出解决方案,并且这些解决方案已在推荐、反欺骗和知识图谱系统领域得到了应用和验证。

GL 的可移植性和灵活性对于开发者来说十分友好,在该框架的基础上,开发者可以更轻松地实现 GNN 算法、自定义与图相关的运算符,并且更轻松地拓展现有模块。Container 和物理机上都可以安装 GL。

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

模型示例

GCN

图卷积网络被认为是基于深度学习的图形结构化数据方法最突出的进展之一。GCN 上的卷积算子是频谱图卷积的部分近似。从空间角度来看,相邻节点的嵌入被聚合在一起用以更新节点的自嵌入。

灵活、轻便,阿里开源简化GNN应用框架Graph-Learn

 

GAT

图注意力网络是 GCN 接下来的主要工作。GAT 将注意力机制融入了 GCN。通过计算节点之间的注意力系数,GAT 对节点及其相邻进行加权汇总,从而使得每个节点都能专注于最相关的相邻项从而进行决策。

灵活、轻便,阿里开源简化GNN应用框架Graph-Learn

 

GraphSAGE

GraphSAGE 是一个通用的归纳框架,可以有效地为之前无法可视化的数据生成节点嵌入。为了利用大规模图形数据,GraphSAGE 会建议从原始图形数据中采样计算子图形,然后进行逐批训练。以及它还提出了通过几个 aggregators 来有选择地聚合相邻项的嵌入。

灵活、轻便,阿里开源简化GNN应用框架Graph-Learn

 

快速开始

以最流行的图神经网络模型 GCN 为例,这部分展示一下如何基于 low-level 的 GL API 和深度学习框架(比如 TensorFlow)构建图学习模型。

如何创建一个基于学习的模型

需要执行以下四个步骤:

采样:使用内置采样函数采样子图(称为 EgoGraph)。

团队抽象了四个基本函数,包括 sample_seed,positive_sample,negative_sample 和 receptive_fn。sample_seed 用于生成初始 Nodes 以及 Edges(一系列节点或边缘),然后 positve_sample 将其用作输入以生成样本 Edges。negative_sample 函数可对非监督模型的负 Nodes 或 Edges 进行采样。GNN 需要聚集 nodes(edges)的相邻信息以便更新 nodes 及 edges 嵌入,因此提供了 acceptive_fn 来采样相邻信息。种子 Nodes 和 Edges 以及采样被统一组织为 EgoGraph。

图形流:使用 EgoFlow 时会根据不同的后端将 EgoGraph 转换为 EgoTensor。

GL 建模是基于 TensorFlow 等深度学习框架之上的。因此,需要将采样的 EgoGraphs 转换为张量格式 EgoTensor。团队将 EgoFlow 进行此转换。EgoFlow 还生成用于迭代训练和 pipeline 的 iterator。

定义编码器:使用 EgoGraph 编码器和功能编码器对 EgoTensor 进行编码。

获取 EgoTensor 之后,需要定义从原始数据到嵌入的转换例程。而对于 GNN 模型,此步骤是聚合节点并将其与自身节点的 nodes/edges 合并。

定义损失函数和训练:将编码的嵌入内容提供给损失函数及训练。

GL 内置了一些常见的损失函数和优化器,也可以自定义自己的损失函数和优化器。同时支持本地和分布式培训。

主要概念

源数据

GL 支持多种数据格式,用以简化从原始数据到 Graph 对象的整个构建过程。源数据放置在文件系统上,建模时,加载程序会将文件读取为 StructuredAccessFile。

对于用户而言,提供了两类源数据:Node Source 以及 Edge Source。这里将其描述为 Node Source 和 Edge Source 支持的数据格式。

通常情况下,节点包含一个 ID 以及多个描述实体的属性。Edge 包含两个 ID,用于描述两个节点之间的关系。Edges 也可能附加了属性。例如,「用户在星期六早上购买了产品」。它使用了用户和产品 ID 描述 Edge,「星期六早上」是该 Edge 的属性。

除属性外,GL 还支持源数据中的权重和标签。权重对于许多采样算法很重要,而标签是监督训练的必备条件。

如上所述,GL 使用 WEIGHTED,LABELED 和 ATTRIBUTED 作为基本 ID 的可选扩展。

图形对象

Graph 是一个组织原始数据的单元,用以启用高级操作。GL 作业中只能存在一个且是唯一的 Graph 对象。能够支持所有类型的图,包括同构图,具有不同类型 nodes 或 edges 的异构图或是以及具有附加在 nodes 或 edges 上属性的图。提供丰富的 API 来提取有关图形的信息。

通常来说,创建图形对象需要以下三个步骤:

声明一个 Graph 对象

描述出其拓扑性

初始化数据

分布式模式

GL 支持分布式模式运行的服务器或客户端以及其任意组合。服务器角色负责加载和管理图形。客户端与深度学习框架在同一过程中运行,以提供图形数据进行训练。在训练期间,将从客户端生成数据的查询或采样请求,在服务器中对其进行处理。最后,服务器的结果被聚合回客户端。

灵活、轻便,阿里开源简化GNN应用框架Graph-Learn

 

「服务器」和「客户端」只是 GL 中的逻辑层面的角色,它们也可以放在同一台机器上。



Tags:阿里开源   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
Sentinel是阿里巴巴开源的限流器熔断器,并且带有可视化操作界面。在日常开发中,限流功能时常被使用,用于对某些接口进行限流熔断,譬如限制单位时间内接口访问次数;或者按照某种规...【详细内容】
2021-04-30  Tags: 阿里开源  点击:(251)  评论:(0)  加入收藏
Seata 是 Simple Extensible Autonomous Transaction Architecture 的简写,由 feascar 改名而来。 Seata 是阿里开源的分布式事务框架,属于二阶段提交模式。...【详细内容】
2021-03-31  Tags: 阿里开源  点击:(405)  评论:(0)  加入收藏
本文作者:HelloGitHub-秦人HelloGitHub 推出的《讲解开源项目》系列,今天给大家带来一款开源 Java 版可以实现动态服务发现,配置和服务管理平台——Nacos,它是阿里巴...【详细内容】
2020-11-12  Tags: 阿里开源  点击:(110)  评论:(0)  加入收藏
今天为大家介绍一款实用工具——阿里开源内核诊断工具diagnose-tools。diagnose-tools是由阿里巴巴开发的linux内核诊断工具,用于linux性能分析,特别是大规模集群系统中的抖动问题分析。...【详细内容】
2020-11-03  Tags: 阿里开源  点击:(269)  评论:(0)  加入收藏
好记性不如烂笔头,记录下来的才是永恒!这里是Java实战技术大本营,诚邀关注。本文已收录入GitHub,GitHub搜【wind7rui/JavaHub】。Nacos是什么Nacos是阿里巴巴的开源项目,它提供...【详细内容】
2020-07-10  Tags: 阿里开源  点击:(44)  评论:(0)  加入收藏
前言距离上一篇文章发布又过去了两周,这次先填掉上一篇秒杀系统文章结尾处开的坑,介绍一下数据库中间件Canal的使用。「Canal用途很广,并且上手非常简单,小伙伴们在平时完成公...【详细内容】
2020-05-10  Tags: 阿里开源  点击:(37)  评论:(0)  加入收藏
近日,阿里巴巴开源了简化 GNN 应用的新框架 Graph-Learn。该框架可从实际案例中提取解决方案,应用于推荐系统、反欺骗等多个领域。相关代码已经可以在 GitHub 上下载。近年来,...【详细内容】
2020-04-03  Tags: 阿里开源  点击:(61)  评论:(0)  加入收藏
▌简易百科推荐
非法购买公民信息、开发人脸认证规避技术……今年年初,广东省公安厅网安部门侦破全国首例破解“青少年防沉迷系统”的新型网络犯罪案件,抓获犯罪嫌疑人13名,查处非...【详细内容】
2021-12-28    人民日报客户端  Tags:数据安全步   点击:(5)  评论:(0)  加入收藏
就在今天,腾讯方面宣布将在2022年1月31日下架企业QQ和营销QQ,其实这一消息的降临并不让笔者意外,因为早在今年的10月28日20点之后,企业QQ和营销QQ就被停止了续费服务。相信很多...【详细内容】
2021-12-27  科技探险家    Tags:企业QQ   点击:(20)  评论:(0)  加入收藏
日前,上海交通大学发布《全球电竞之都评价报告》,对全球15个致力于发展电竞之都的城市进行评价,上海作为中国城市电竞发展的排头兵,其拥有众多优质电竞企业及完整产业集群,因此排...【详细内容】
2021-12-27  经济日报    Tags:电竞   点击:(3)  评论:(0)  加入收藏
为优化网络氛围环境,微博又开始整顿用户信息了。本月月初,微博官方发布公告,要求昵称中带有如“二货”“SB”“瘪三”“娘炮”等明显低俗或侮辱性词汇的用户尽快修改,否则将面临...【详细内容】
2021-12-24  运了个营    Tags:微博   点击:(10)  评论:(0)  加入收藏
昨日谷歌宣布,自2022年12月19日开始停止对OnHub的软件支持,OnHub路由器仍将提供Wi-Fi信号,但用户无法用谷歌Home应用程序管理它。无法更新Wi-Fi网络设置、添加额外的Wifi设备或...【详细内容】
2021-12-22  雷峰网    Tags:Google OnHub   点击:(5)  评论:(0)  加入收藏
IT之家 12 月 20 日消息,百度网盘青春版 iOS 客户端今日晚间率先开启内测,安卓客户端将在稍后内测。使用苹果 iPhone 的IT之家小伙伴可以点此下载内测版,需要先下载 TestFlight...【详细内容】
2021-12-21  IT之家    Tags:百度网盘   点击:(10)  评论:(0)  加入收藏
对于拼车单,是接还是不接,不少网约车司机表示很矛盾。接吧,钱少事多,常常跑了个寂寞,不接吧,车多客少,挑三拣四没饭吃。 在平台大力推广拼车单之下,不少司机迫于生活压力,最终还是打...【详细内容】
2021-12-17  网约车情报分享    Tags:滴滴   点击:(9)  评论:(0)  加入收藏
蓝鲸TMT频道12月16日讯,据饿了么官方微信公众号,近日,在圆桌会上,蓝骑士与平台交流了配送安全问题。饿了么表示,线上将技术手段融入安全防护;线下将持续进行安全培训,并试点智能头...【详细内容】
2021-12-17    金融界  Tags:饿了么   点击:(24)  评论:(0)  加入收藏
开源最前线(ID:OpenSourceTop) 猿妹编译项目地址: https://github.com/restic/restic全球知名代码托管平台 GitHub 今天就重磅发布了今年的年度报告——《2021 年度 O...【详细内容】
2021-12-17  Python部落    Tags:   点击:(9)  评论:(0)  加入收藏
新京报快讯 据中国网络视听节目服务协会网站消息,12月15日,中国网络视听节目服务协会发布了《网络短视频内容审核标准细则》(2021)。中国网络视听节目服务协会组织有关短视频平...【详细内容】
2021-12-16    新京报  Tags:短视频   点击:(11)  评论:(0)  加入收藏
相关文章
    无相关信息
最新更新
栏目热门
栏目头条