清华大学发布首个自动图机器学习工具包 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

相关文章

JAVA实现Token自动续期机制的示例代码

《JAVA实现Token自动续期机制的示例代码》本文主要介绍了JAVA实现Token自动续期机制的示例代码,通过动态调整会话生命周期平衡安全性与用户体验,解决固定有效期Token带来的风险与不便,感兴... 目录1. 固定有效期Token的内在局限性2. 自动续期机制:兼顾安全与体验的解决方案3. 总结PS

C#中通过Response.Headers设置自定义参数的代码示例

《C#中通过Response.Headers设置自定义参数的代码示例》:本文主要介绍C#中通过Response.Headers设置自定义响应头的方法,涵盖基础添加、安全校验、生产实践及调试技巧,强... 目录一、基础设置方法1. 直接添加自定义头2. 批量设置模式二、高级配置技巧1. 安全校验机制2. 类型

Linux五种IO模型的使用解读

《Linux五种IO模型的使用解读》文章系统解析了Linux的五种IO模型(阻塞、非阻塞、IO复用、信号驱动、异步),重点区分同步与异步IO的本质差异,强调同步由用户发起,异步由内核触发,通过对比各模... 目录1.IO模型简介2.五种IO模型2.1 IO模型分析方法2.2 阻塞IO2.3 非阻塞IO2.4

linux部署NFS和autofs自动挂载实现过程

《linux部署NFS和autofs自动挂载实现过程》文章介绍了NFS(网络文件系统)和Autofs的原理与配置,NFS通过RPC实现跨系统文件共享,需配置/etc/exports和nfs.conf,... 目录(一)NFS1. 什么是NFS2.NFS守护进程3.RPC服务4. 原理5. 部署5.1安装NF

SpringBoot AspectJ切面配合自定义注解实现权限校验的示例详解

《SpringBootAspectJ切面配合自定义注解实现权限校验的示例详解》本文章介绍了如何通过创建自定义的权限校验注解,配合AspectJ切面拦截注解实现权限校验,本文结合实例代码给大家介绍的非... 目录1. 创建权限校验注解2. 创建ASPectJ切面拦截注解校验权限3. 用法示例A. 参考文章本文

MyBatis Plus实现时间字段自动填充的完整方案

《MyBatisPlus实现时间字段自动填充的完整方案》在日常开发中,我们经常需要记录数据的创建时间和更新时间,传统的做法是在每次插入或更新操作时手动设置这些时间字段,这种方式不仅繁琐,还容易遗漏,... 目录前言解决目标技术栈实现步骤1. 实体类注解配置2. 创建元数据处理器3. 服务层代码优化填充机制详

Vite 打包目录结构自定义配置小结

《Vite打包目录结构自定义配置小结》在Vite工程开发中,默认打包后的dist目录资源常集中在asset目录下,不利于资源管理,本文基于Rollup配置原理,本文就来介绍一下通过Vite配置自定义... 目录一、实现原理二、具体配置步骤1. 基础配置文件2. 配置说明(1)js 资源分离(2)非 JS 资

深入浅出Spring中的@Autowired自动注入的工作原理及实践应用

《深入浅出Spring中的@Autowired自动注入的工作原理及实践应用》在Spring框架的学习旅程中,@Autowired无疑是一个高频出现却又让初学者头疼的注解,它看似简单,却蕴含着Sprin... 目录深入浅出Spring中的@Autowired:自动注入的奥秘什么是依赖注入?@Autowired

修复已被利用的高危漏洞! macOS Sequoia 15.6.1发布

《修复已被利用的高危漏洞!macOSSequoia15.6.1发布》苹果公司于今日发布了macOSSequoia15.6.1更新,这是去年9月推出的macOSSequoia操作... MACOS Sequoia 15.6.1 正式发布!此次更新修复了一个已被黑客利用的严重安全漏洞,并解决了部分中文用户反馈的

基于Redis自动过期的流处理暂停机制

《基于Redis自动过期的流处理暂停机制》基于Redis自动过期的流处理暂停机制是一种高效、可靠且易于实现的解决方案,防止延时过大的数据影响实时处理自动恢复处理,以避免积压的数据影响实时性,下面就来详... 目录核心思路代码实现1. 初始化Redis连接和键前缀2. 接收数据时检查暂停状态3. 检测到延时过