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