什么是 GNN(图形神经网络)?

GNN 简介

图形神经网络 (GNN) 是一种深度神经网络架构,在实际应用和前沿机器学习研究中都很流行。它们采用神经网络模型来表征实体及其关系的数据。这类网络对现实世界的数据挖掘、社交网络理解、知识图谱、推荐系统和生物信息学具有重要价值。

GNN 的开发从卷积神经网络 (CNN) 和循环神经网络 (RNN) 等深度学习算法中获得了灵感,但它们有几个关键区别。CNN 专为具有网格状结构的数据(如图像像素)设计任一像素最多可与八个相邻像素连接。相反,RNN 适合序列结构,其中每个元素最多可以连接到其他两个元素,如文本中的词序列。但在图形结构数据中,任何元素均可拥有一个或多个连接,且特定元素的连接数可能毫无规律可循。

图形神经网络是几何深度学习的一种实现1,可分为四个基本类别:

基于图形的学习,可学习类似图形的数据。

基于网格的学习,可学习类似图像的数据和其他可用网格描述的数据类型。

基于群组的学习,可学习信息如何与父群组关联。当数据来自球体等群组(例如来自全球不同来源的地质数据)时,这种方法尤为强大。

基于网状的学习,可学习信息如何在不规则网格中传播,例如分析和预测物体三维模型的元素。

GNN 是一个活跃的人工智能研究领域,但已获得 Python 等语言构建的库和工具包(包括 TensorFlow 和 PyTorch框架)的充分支持。

图形是什么?

一组对象及其相互关系可以用图形来表示。计算机科学研究人员开发了用于操作图形数据结构的神经网络。

图形表示实体集合之间的关系,这些实体之间的关系称为“边”,实体集合被称为“节点”。从数学上讲,图形 G 定义为一组节点 V 以及一组边的元组。E:G = (V, E)。每条边是一对由两个顶点组成的,代表它们之间的连接。

为进一步描述每个节点、边或整个图形,我们可在图形的这些组成部分中存储信息。

图示展示了图形的顶点以及它们如何通过边连接。 图形的顶点(有时也称为节点)通过边连接。

通过为每条边分配方向性,可以进一步描述图形。图形可以分为有向图和无向图。无向图表示一种双向关系。如果 Rosa 有兄弟姐妹 Juan,那么 Juan 也有兄弟姐妹 Rosa。Rosa 与其兄弟姐妹的关系无方向性,仅表示两者相连。有向图表示具有方向性的关系。如果 Rosa 有年长兄弟姐妹 Juan,则“年长兄弟姐妹”关系仅单向存在:从 Juan 指向 Rosa,Juan 没有“年长兄弟姐妹”。

无向图和有向图示例 图形的类型取决于边是否具有方向性。

邻接矩阵是可视化图形连通性的一种方式。这是图形顶点的基于矩阵的表示,可以表示无向图和有向图。

有向图和表示该图的数字邻接矩阵 有向图的边可用邻接矩阵表示

所示有向图的邻接矩阵标明了所有顶点及构成边的方向。例如,有向图中的节点 0 连接到节点 1,但由于连接的方向性,反向连接并不成立。在邻接矩阵中,[第 0 行,第 1 列] 包含值,而 [第 1 行,第 0 列] 无值。

图形的表示应具备排列不变性,这意味着如果图形的结构相同但节点顺序不同,则图形的表示应该产生相同的结果。这种方法可确保图形的表示具有与图形本身相同的属性。

图形神经网络

GNN 通常采用“图进图出”架构。这意味着这些模型类型接受图形作为输入,并将信息加载到其节点、边和全局上下文中。模型逐步转换这些嵌入,而不改变输入图形的连接性。嵌入将节点表示为节点嵌入,顶点表示为顶点嵌入。这些嵌入使模型能够学习节点类型及其在图形中的位置,以及边的类型和位置。

通常,神经网络训练通过基于训练数据随机子集计算的梯度来更新网络参数。为训练图网络,图形神经网络创建保留父图基本属性的子图。

GNN 使用消息传递机制聚合相邻节点信息,使其能够捕捉图形中的复杂关系。对图形结构数据进行建模的一个挑战是捕获节点之间的交互。神经消息传递通过提供图形数据中依赖关系和相互作用的建模框架来解决这一挑战。节点与其相邻节点交换信息并聚合该信息,以更新自身表示。此消息传递过程类似于图形节点交换消息或信号。

图形分析类型

GNN 支持多种分析类型,每种类型均提供对图形数据不同要素的洞察。

图形级任务

在图级形任务中,GNN 预测整个图形的属性。对于表示为图形的分子,可能需预测其是否会与疾病相关受体结合。对于社交网络,可能需预测其是否可能与特定机构(如大学或学院)关联。此类模式识别可框架化为图形分类形式,因其对整个图形进行分类。

节点级任务

节点级任务涉及预测图形中每个节点的身份或角色。例如,社交网络数据集中的节点分类问题可能是基于用户的朋友网络连接,预测其是否可能具有特定兴趣。如果朋友只对高尔夫感兴趣,而没有其他共同的兴趣爱好,则强烈表明新朋友也可能喜爱高尔夫。这些类型的节点特征通常可以用图形神经网络 (GNN) 进行预测。

边级任务

图形最后一类预测问题是边预测,有时称为链接预测。

边级推理的一个示例是图像场景理解。在识别图像中的对象之后,深度学习模型还可以预测它们之间的关系。这属于边级分类,因为节点表示图像中的物体,预测结果指示哪些节点共享一条边或该边的取值。如果要发现实体之间的联系,可以将图形视为“全连接”图形,然后根据预测值修剪边,得到一个稀疏图。

变体和扩展

图卷积网络4 (GCN):这种方法是基于卷积神经网络的变体的半监督学习,可以从基于图的数据中学习和预测。这些模型的规模与图边缘数量成线性关系,因此适用于大型数据集。这些模型还能学习局部图结构和节点的功能。

图自动编码器2:这些变体是端到端可训练的神经网络模型,用于图的无监督学习、聚类和链接预测。它们通常使用 GCN 作为编码器来创建嵌入,并使用解码器根据学习到的潜在表示重建图形。

图形注意力网络3 (GAT):一种处理图形结构数据的神经网络架构。GAT 利用自注意力层形式的注意力机制,解决了先前基于图形卷积或其近似方法的缺陷。通过堆叠节点可关注其邻域特征的层,GAT 能够(隐式)为邻域中不同节点指定不同权重。这样就不需要求逆等成本高昂的矩阵操作,也不依赖预先知晓图形结构。

图形表示:学习是一个研究领域,它扩展了图形神经网络,旨在从图形中复杂关系找到有意义的(可能是低维的)节点表示。此扩展的一个示例是斯坦福大学的 GraphSage 项目6,它为节点创建低维向量表示,使其适合处理节点表示高维数据的数据。

GNN 架构

作为 GNN 结构的示例,我们可以考虑使用一个简单的图形卷积网络 (GCN) 来对整个图形进行分类。最简单的 GCN 包含三层:

卷积层 - 该层对每个节点进行卷积,以学习其连接。

非线性激活层 - 该层将 ReLU 等激活函数应用于卷积的输出。

输出线性层 - 最后一层将输出相加,生成最终预测结果。

首先,通过卷积层图形中的每个节点执行卷积运算。该卷积层利用每个节点邻居的特征信息进行聚合,更新与每个节点关联的权重。然后,将非线性激活函数(例如 ReLU)应用于卷积层输出。为达到最佳精度,网络可使用多个卷积和非线性激活层堆叠。最后,使用输出线性层预测图形最可能属于的类别。

GCN 概念简单,适用于大规模图形且易于编程,但也存在关键缺陷。其一,GCN 不支持边特征。它们仅能学习和预测节点特征或整体图特征。GCN 不存在消息传递概念。此问题限制其仅适用于所有必需信息存在于节点而非边中的场景。

然而,消息传递神经网络 (MPNN) 允许边的表示。5消息传递过程大致如下。图形中的每个节点接收作为节点初始输入特征的初始嵌入。在消息传递的每次迭代中,节点都会聚合来自其相邻节点的信息。然后,使用更新函数将聚合后的信息与节点的当前嵌入结合起来。更新后的嵌入信息将传递给下一次信息传递迭代。经过多次迭代以体现图形复杂性后,最终嵌入用于表示图形中的每个节点。最后,神经网络执行聚合、更新和迭代步骤,以学习整体图形的复杂模式。

使用消息传递可实现更复杂的节点分类、边分类,甚至预测边可能在图形中出现的位置(称为链接预测)。

GNN 的应用

GNN 在自然语言处理 (NLP) 方面有许多应用。例如在文档分类中,GNN 可用于对文档中单词或句子之间的关系进行建模。这种能力有助于改进文档分类和信息检索。GNN 可以通过表示问题中的单词与知识图中的候选答案之间的关系,帮助完成问答任务。GNN 可以捕获文本中的上下文信息和情感依赖关系,提升高歧义或特定实体关系场景中的情感分析精度。

它们在计算机视觉方面也有许多应用。在图像分割任务中,GNN 可通过将相邻像素之间的关系建模为图形,用于像素级图像分割任务。GNN 可以通过捕获上下文信息和图像中对象之间的关系来辅助目标检测。在场景理解任务中,GNN 用于理解复杂场景及场景图生成,表示图像中物体间的空间关系。

GNN 也是生物信息学领域的强大工具。在基因组序列分析中,GNN 可以对基因或遗传序列之间的关系进行建模,助力基因表达预测和序列分类任务。在药物发现中,GNN 可用于预测药物与靶点的相互作用以及预测分子特性,这在药物研究中至关重要。

脚注

1. Inductive representation learning on large graphs, Will Hamilton, Zhitao Ying, Jure Leskovec, https://papers.nips.cc/paper_files/paper/2017/hash/5dd9db5e033da9c6fb5ba83c7a7ebea9-Abstract.html

2. Variational Graph Auto-Encoders, Thomas N. Kipf, Max Welling https://arxiv.org/abs/1611.07308

3. Graph Attention Networks; Petar Veličković, et al, https://arxiv.org/abs/1710.10903

4. Semi-Supervised Classification with Graph Convolutional Networks, Thomas N. Kipf, Max Welling https://arxiv.org/abs/1609.02907

5. Hierarchical Graph Representation Learning with Differentiable Pooling, NeurIPS 2018 · Rex Ying, et al https://arxiv.org/abs/1806.08804

6. GraphSage https://snap.stanford.edu/graphsage/

相关解决方案
watsonx.ai

加速生成式 AI 在核心工作流中发挥作用,提高生产力。

了解 watsonx.ai
人工智能 (AI) 解决方案

借助 IBM 业界领先的 AI 专业知识和解决方案组合,让 AI 在您的业务中发挥作用。

深入了解 AI 解决方案
AI 咨询与服务

通过增加 AI 重塑关键工作流程和运营,最大限度提升体验、实时决策能力和商业价值。

深入了解 AI 服务

资源

自然语言处理
相关主题
深度学习
相关主题
采取后续步骤

深入了解 IBM watsonx 产品组合中的 IBM 基础模型库,满怀信心地为您的业务扩展生成式 AI。

了解 watsonx.ai 持续关注 IBM 在 AI 领域的最新动态