Google刚刚推出了图神经网络Tensorflow-GNN

时间:2024-02-22 14:43:37

  每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领域的领跑者。点击订阅,与未来同行! 订阅:https://rengongzhineng.io/

在当今数字化的世界里,对象及其之间的复杂关系构成了无数的网络,例如交通网络、生产网络、知识图谱和社交网络。这些关系网的重要性在于,它们不仅仅展示了对象的属性,更重要的是展示了对象之间的相互作用。离散数学和计算机科学通过将这些网络形式化为由节点和边组成的图,有助于我们理解和分析这些复杂的结构。然而,传统的机器学习算法往往只能处理规则和统一的关系,例如像素网格、词序列,或者完全没有关系。这就是图神经网络(GNN)技术崭露头角的原因所在。

GNN技术能够有效地利用图的连通性和节点及边上的输入特征,为整个图(例如预测分子反应)、单个节点(例如预测文档的主题)或潜在的边(例如预测两个产品是否可能一起被购买)做出预测。更进一步,GNN还能将图的离散、关系信息以连续的方式编码,使之可以自然地融入到其他深度学习系统中,架起了传统神经网络与新兴需求之间的桥梁。

TensorFlow GNN 1.0(TF-GNN)的发布,标志着在大规模构建GNN方面迈出了重要一步。作为一个经过生产测试的库,TF-GNN支持在TensorFlow中进行建模和训练,以及从庞大的数据存储中提取输入图。TF-GNN特别适用于处理异构图,即那些由不同类型的对象和关系组成的图,这使得它能够自然地表示现实世界中的对象及其关系。

TF-GNN内部使用tfgnn.GraphTensor对象来表示图,这是一个复合张量类型,被接受为tf.data.Dataset、tf.function等的一等公民。它不仅存储了图的结构,还存储了附加到节点、边和整个图上的特征。在Keras高级API中,或者直接使用tfgnn.GraphTensor原语,可以定义对GraphTensors的可训练转换。

TF-GNN的一个典型应用是预测巨大数据库中交叉引用表定义的图中某种类型节点的属性,例如预测计算机科学arXiv论文的主题领域。GNN在许多标记示例的数据集上进行训练,但每个训练步骤只涉及少量的训练示例。通过在底层图的相对较小的子图流上进行训练,GNN能够扩展到处理百万级别的数据。这个过程,通常称为子图采样,对GNN训练至关重要。TF-GNN通过提供工具来实现动态和交互式的改进采样方法,从而优化了这一过程。

此外,TF-GNN 1.0还推出了一个灵活的Python API,配置动态或批处理子图采样的所有相关规模,从Colab笔记本中的交互式操作到通过Apache Beam分布式处理存储在网络文件系统上的巨大数据集。这些采样的子图上的GNN任务是计算根节点的隐藏(或潜在)状态,该状态汇总并编码了根节点邻域的相关信息。在异构图中,对不同类型的节点和边使用分别训练的隐藏层往往是有意义的。

TF-GNN支持在各种抽象级别构建和训练GNN,从使用库中预定义模型的*别,到用图数据传递原语从头开始编写GNN模型的最低级别。TF-GNN还提供了一个简洁的方法来协调Keras模型的训练,在通常的情况下,提供了ML痛点(如分布式训练和tfgnn.GraphTensor填充)的现成解决方案。

总之,TF-GNN的发布为TensorFlow中GNN的应用提供了强大的支持,促进了该领域的进一步创新。开发者们被鼓励尝试TF-GNN的Colab演示,探索用户指南和Colabs,或深入了解相关论文,以充分利用这一新兴技术。

去试试: https://colab.research.google.com/github/tensorflow/gnn/blob/master/examples/notebooks/ogbn_mag_e2e.ipynb