了解图神经网络 (GNN) 如何通过图结构化数据彻底改变 AI,应用于药物发现、社交网络、交通预测等领域!
图神经网络(GNN)是深度学习(DL)领域中的一种专门架构,旨在处理和分析数据。 深度学习 (DL)领域中的一种专门架构,旨在处理和分析 图表示的数据。虽然标准的 机器学习(ML)模型通常要求 标准机器学习(ML)模型通常要求数据以规则网格(如图像)或顺序数组(如文本)的形式结构化,而 GNN 则擅长解释由节点和边定义的数据。 由节点和连接节点的边定义的数据。这种独特的能力使其能够捕捉实体间的复杂关系和相互依存关系,从而使 和实体间的相互依存关系,使其在连接结构与数据点本身同等重要的任务中不可或缺。 对于连接结构与数据点本身同样重要的任务来说,它们是不可或缺的。
GNN 背后的核心机制是一个称为信息传递或邻域聚合的过程。在这个框架中 图中的每个节点都会通过收集近邻的信息来更新自己的表示。在 训练过程中,网络会学习嵌入--密集向量 表征,这些表征既包含节点本身的特征,也包含其周围网络的结构信息。 网络。
通过多层处理,节点最终可以整合来自图谱远处的信息、 有效地 "看到 "更广阔的背景。这与传统的 线性回归或简单分类模型 相反,传统的线性回归或简单分类模型通常将数据点视为独立实体。像 PyTorch Geometric 等框架促进了这种复杂的 计算,允许开发人员构建复杂的基于图形的应用程序。
要了解 GNN 的用途,最好先将它们与现代人工智能中常见的其他 现代人工智能中常见的神经网络 (NN)类型:
建立关系模型的能力使 GNN 在各种影响力大的行业中发挥强大作用:
虽然专门的库可以处理繁重的消息传递工作,但了解如何构建图形数据是 的第一步。下面是一个使用 PyTorch来 定义图的边连接(拓扑),作为 GNN 的输入。
import torch
# Define a simple graph with 3 nodes and 2 edges
# 'edge_index' represents connections: Node 0->1 and Node 1->2
edge_index = torch.tensor([[0, 1], [1, 2]], dtype=torch.long)
# Define features for each node (e.g., x, y coordinates or attributes)
# 3 nodes, each with 2 feature values
x = torch.tensor([[-1, 0], [0, 0], [1, 0]], dtype=torch.float)
print(f"Graph defined with {x.size(0)} nodes and {edge_index.size(1)} edges.")
GNN 越来越多地被集成到更大的管道中。例如,一个系统可以使用 图像分割来识别场景中的物体 然后使用 GNN 来推理这些物体之间的空间关系,从而在视觉感知和逻辑推理之间架起一座桥梁。 视觉感知和逻辑推理之间的桥梁。像 TensorFlow GNN和 深度图库 (DGL)等工具日趋成熟,部署这些复杂模型的门槛也在不断降低,从而扩大了其应用范围。 模型的门槛不断降低,将其应用范围扩展到 智能城市及其他领域。