18 日,TensorFlow 项目组发布了图神经网络(GNN)库,使开发者可以通过 TensorFlow 轻松处理图结构化数据。从 2019 年开始,图神经网络就被视作 AI 领域的核心研究方向,但从 2019 - 2021,该领域的主要动态集中在论文层面,在 TensorFlow GNN 发布前,工业环境还未出现大规模支持。此外,一直有许多开发者研究基于 TensorFlow 的 GNN 实现,这次发布也相当于正式给出官方答案。
TensorFlow GNN 基本信息
TensorFlow GNN 主要提供了几类主要服务:
建模 API;
基于张量的图形数据结构;
数据处理管道;
实例模型。
其工作流程及组件示意如下:
TF-GNN项目组在官方博客上详细列举了初始版本的程序和功能,包括:
用于创建可轻松与其他类型模型组合的 GNN 模型的高级 Keras 样式 API。GNN 通常与排序、深度检索(双编码器)结合使用或与其他类型的模型(图像、文本等)混合使用;
用于异构图的 GNN API。我们在 Google 和现实世界中处理的许多图问题都包含不同类型的节点和边。因此,我们选择提供一种简单的方法来对此进行建模;
一个定义良好的模式来声明一个图的拓扑结构,以及验证它的工具。该模式描述了其训练数据的形状,并用于指导其他工具;
一种 GraphTensor 复合张量类型,它保存图形数据,可以批处理,并具有可用的图形操作例程;
GraphTensor 结构上的操作库:
节点和边上的各种高效广播和池化操作,以及相关工具。
标准烘焙卷积库,机器学习工程师/研究人员可以轻松扩展。
产品工程师可以快速构建 GNN 模型而不必担心其细节的高级 API。
磁盘上图形训练数据的编码,以及用于将此数据解析为数据结构的库,您的模型可以从中提取各种特征。
图数据逐渐成为主流
图包含四大类基本信息:节点、边、全局信息(节点数等)、连通性(两个节点间是否是连通的)。要把图的信息以矩阵的形式输入机器学习模型是非常复杂的,具体可以通过下图体验下:
而图神经网络,就是对图的所有属性(节点、边、全局上下文)进行的可优化转换,同时保留对称性。一般认为 GNN 可以分为图卷积网络(Graph Convolution Networks,GCN)、 图注意力网络(Graph Attention Networks)、图自编码器( Graph Autoencoders)、图生成网络( Graph Generative Networks) 和图时空网络(Graph Spatial-temporal Networks)等几大类。
不仅是 GNN,“Graph(图)”这个词,本身在 IT 圈的出现频率也越来越高。比如图数据库,使用图形化的模型进行查询的数据库,通过节点、边和属性等方式来表示和存储数据,支持增删改查(CRUD)等操作。图数据库的相关产品有Nebula Graph、Neo4j、Janus、HugeGraph 等,不但社区内关注度很高,资本的投入也越来越大。
以开源的 Nebula Graph 为例,在腾讯、微信、美团都有大规模的应用。在腾讯,图数据库被用于安全、知识图谱等业务场景;在微信,则被用于解决大数据集存储、秒级回滚等问题。
图数据在交通预测、舆情勘测、疾病传播建模、物理模拟等领域都有比较广泛的应用。举个例子,今年 8 月 8 日,康奈尔大学的专家发表了一篇论文,用循环图神经网络实现对在线论坛的谣言预测,GitHub 代码:https://github.com/google-research/social_cascades
当我们要表达真实世界对象与对象间的数据关系时,图数据更加自然。在接下来的几年,与图数据有关的处理和存储软件,可能也会越来越多。
参考链接:
https://blog.tensorflow.org/2021/11/introducing-tensorflow-gnn.html
评论