清华大学发布首个自动图机器学习工具包 AutoGL,开源易用可扩展,支持自定义模型...

本文主要是介绍清华大学发布首个自动图机器学习工具包 AutoGL,开源易用可扩展,支持自定义模型...,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

来源:机器之心本文约2800字,建议阅读6分钟如何应用自动机器学习 (AutoML) 加速图机器学习任务的处理?

清华大学发布全球首个开源自动图学习工具包:AutoGL (Auto Graph Learning),支持在图数据上全自动进行机器学习。

人工智能的蓬勃发展离不开数据、算力、算法这三大要素。而在浩瀚的数据中,有一种数据结构既普遍又复杂,它就是图(graph)。

图是一种用于描述事物之间关系的结构,其基本构成元素为节点和连接节点的边。

很多不同领域的研究问题都可以很自然地建模成图机器学习,例如蛋白质建模、物理系统模拟、组合优化等基础研究;社交媒体分析、推荐系统、虚假新闻检测等互联网应用;以及金融风控、知识表征、交通流量预测、新药发现等。

社交网络图示例

图结构丰富且具有与生俱来的导向能力,因此非常适合机器学习模型。同时,它又无比复杂,难以进行大规模扩展应用。而且不同的图数据在结构、内容和任务上千差万别,所需要的图机器学习模型也可能相差甚远,这就导致不同任务的模型自动化面临巨大挑战。如何设计最优的图自动机器学习模型,是一个尚未解决的难题。

图 + AutoML = ?

自动机器学习 (AutoML) 旨在将机器学习的过程自动化,在降低机器学习使用门槛的同时,提升机器学习的效果。但现有的自动机器学习工具,无法考虑图数据的特殊性,因此无法应用在图机器学习模型中。

为了解决该问题,清华大学朱文武教授带领的网络与媒体实验室发布了球首个开源自动图学习工具包:AutoGL (Auto Graph Learning)。该工具支持在图数据上全自动进行机器学习,并且支持图机器学习中最常见的两个任务:节点分类任务(node classification)与图分类任务(graph classification)。

AutoGL 流程图

AutoGL 工具包首先使用 AutoGL Dataset 维护图机器学习任务所需数据集。AutoGL Dataset 导入了大规模图表示学习工具包 CogDL 和图神经网络库 PyTorch Geometric (PyG) 中的数据集模块,并添加对 OGB 数据集的支持,同时还添加了一些支持以便集成 auto solver 框架。

不同的图机器学习任务可以通过不同的 AutoGL Solver 得到解决。AutoGL Solver 使用四个主要模块自动化解决给定任务,分别是特征工程(Feature Engineering)、图学习模型(Graph Learning Model)、超参数优化(HPO),以及模型自动集成(Auto Ensemble)。每个部分在设计时都引入了对图数据特殊性的考虑。

模块 1:特征工程

AutoGL 特征工程模块包含了图机器学习过程中常用的特征工程方法,包括节点 / 边 / 子图特征提取、变换和筛选,如节点度数、节点 ID、特征向量等。这些方法显著丰富了目标图数据上的信息,提高了图学习的效果。同时,用户还可以非常方便地扩展特征工程模块,以实现个性化的需求。

模块 2:图学习模型

AutoGL 目前支持 GCN、GAT、GIN 等常见图学习模型,可以完成包括点分类、图分类在内的多种常见任务,使用方式简单,上手方便。同时,AutoGL 主页还提供了详细的说明文档,支持用户自定义模型,可扩展性良好。

模块 3:超参数优化

AutoGL 目前集成了多种通用超参数优化方法, 如网格搜索、随机搜索、贝叶斯优化、模拟退火、TPE 等算法,同时还包含专门针对图学习优化的自动机器学习算法 AutoNE。该模块省去了图学习中繁杂的手动调参过程,极大地提高了工程效率。同时,该模块易于使用,用户只需给出各个超参数的类型和搜索空间、指定超参数优化方法,即可快速上手运行若干自动图学习模型。

AutoGL 会在给定的资源预算(时间、搜索次数等)内给出最优的超参数组合。该模块同样支持扩展,用户可以自定义新的超参数优化算法。

模块 4:模型自动集成

自动集成模块目前支持两类常用的集成学习方法:voting 和 stacking。该模块通过组合多个基模型得到一个博采众长的集成模型,从而进一步提升图学习的效果。

AutoGL 工具包目前支持多种算法,如下表所示:

AutoGL 工具包四个不同模块所支持的算法

AutoGL 工具包极大地方便了开发人员进行对应的图学习算法设计和调优。用户只需按照 AutoGL 的数据集标准提供目标数据集,AutoGL 就会自动寻找最优的模型和对应的超参数,从而简化图学习算法开发与应用的流程,极大提升图学习相关的科研和应用效率。

此外,AutoGL 工具包还提供了一个供使用者公平地测试与对比算法的平台。AutoGL 在设计时遵循模块化思想,每个模块均可扩展,用户只需实现对应模块类的接口,即可方便地测试自己的算法,为快速获得 baseline 效果、公平对比不同模型性能提供方便。

未来展望

据 AutoGL 研发团队透露,他们将进一步深入研发,以方便其他研究者、业界使用者和初学者快速上手 AutoGL,解决学术界、产业界遇到的图学习相关问题。

AutoGL 网站显示,该工具包将在近期支持以下功能:

  • 神经架构搜索;

  • 大规模图数据集支持;

  • 更多图任务(如链接预测、异构图任务、时空任务);

  • Graph Boosting & Bagging;

  • 对更多图模型库提供后端支持(如 DGL)。

AutoGL 研发团队期待得到各类使用反馈,以更好地完善 AutoGL 的各项功能。「我们的最终目的是推动自动图机器学习在学术界与工业界的深层次探索和应用。」AutoGL 研发者谈及之后的计划时表示。

相关链接:

AutoGL 网站地址:http://mn.cs.tsinghua.edu.cn/autogl/

AutoGL 代码链接:https://github.com/THUMNLab/AutoGL

AutoGL 说明文档:https://autogl.readthedocs.io/en/latest/index.html

图深度学习模型综述:https://arxiv.org/abs/1812.04202

编辑:黄继彦

这篇关于清华大学发布首个自动图机器学习工具包 AutoGL,开源易用可扩展,支持自定义模型...的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/901235

相关文章

使用Sentinel自定义返回和实现区分来源方式

《使用Sentinel自定义返回和实现区分来源方式》:本文主要介绍使用Sentinel自定义返回和实现区分来源方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Sentinel自定义返回和实现区分来源1. 自定义错误返回2. 实现区分来源总结Sentinel自定

SpringKafka消息发布之KafkaTemplate与事务支持功能

《SpringKafka消息发布之KafkaTemplate与事务支持功能》通过本文介绍的基本用法、序列化选项、事务支持、错误处理和性能优化技术,开发者可以构建高效可靠的Kafka消息发布系统,事务支... 目录引言一、KafkaTemplate基础二、消息序列化三、事务支持机制四、错误处理与重试五、性能优

Java的IO模型、Netty原理解析

《Java的IO模型、Netty原理解析》Java的I/O是以流的方式进行数据输入输出的,Java的类库涉及很多领域的IO内容:标准的输入输出,文件的操作、网络上的数据传输流、字符串流、对象流等,这篇... 目录1.什么是IO2.同步与异步、阻塞与非阻塞3.三种IO模型BIO(blocking I/O)NI

SpringBoot中封装Cors自动配置方式

《SpringBoot中封装Cors自动配置方式》:本文主要介绍SpringBoot中封装Cors自动配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录SpringBoot封装Cors自动配置背景实现步骤1. 创建 GlobalCorsProperties

idea中创建新类时自动添加注释的实现

《idea中创建新类时自动添加注释的实现》在每次使用idea创建一个新类时,过了一段时间发现看不懂这个类是用来干嘛的,为了解决这个问题,我们可以设置在创建一个新类时自动添加注释,帮助我们理解这个类的用... 目录前言:详细操作:步骤一:点击上方的 文件(File),点击&nbmyHIgsp;设置(Setti

新特性抢先看! Ubuntu 25.04 Beta 发布:Linux 6.14 内核

《新特性抢先看!Ubuntu25.04Beta发布:Linux6.14内核》Canonical公司近日发布了Ubuntu25.04Beta版,这一版本被赋予了一个活泼的代号——“Plu... Canonical 昨日(3 月 27 日)放出了 Beta 版 Ubuntu 25.04 系统镜像,代号“Pluc

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应

如何自定义Nginx JSON日志格式配置

《如何自定义NginxJSON日志格式配置》Nginx作为最流行的Web服务器之一,其灵活的日志配置能力允许我们根据需求定制日志格式,本文将详细介绍如何配置Nginx以JSON格式记录访问日志,这种... 目录前言为什么选择jsON格式日志?配置步骤详解1. 安装Nginx服务2. 自定义JSON日志格式各

Java常用注解扩展对比举例详解

《Java常用注解扩展对比举例详解》:本文主要介绍Java常用注解扩展对比的相关资料,提供了丰富的代码示例,并总结了最佳实践建议,帮助开发者更好地理解和应用这些注解,需要的朋友可以参考下... 目录一、@Controller 与 @RestController 对比二、使用 @Data 与 不使用 @Dat

Android自定义Scrollbar的两种实现方式

《Android自定义Scrollbar的两种实现方式》本文介绍两种实现自定义滚动条的方法,分别通过ItemDecoration方案和独立View方案实现滚动条定制化,文章通过代码示例讲解的非常详细,... 目录方案一:ItemDecoration实现(推荐用于RecyclerView)实现原理完整代码实现