持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第1天,点击查看活动详情
简介
图是一种数据结构,它针对一组对象及其相关关系建模,其中,对象就是图中的节点,关系则是图中的边。由于图结构具有很强的表示能力,因此近年来,使用机器学习方法来分析图结构的研究越来越受到关注。图结构用于表示不同领域的许多系统,这些领域包括社会科学(社交网络)、自然科学(物理系统和蛋白质交互网络)、知识图谱等。作为机器学习中独特的非欧几里得数据结构,图结构广泛用于针对节点分类、链接预测和聚类问题的研究。 图神经网络(graph neural network, GNN)是图领域中的基于深度学习的方法,因其卓越的性能和较好的可解释性而被广泛用于图分析。
概述
GNN的概念最早是由Marco Gori、Franco Scarselli 等人提出的。出于简洁考虑,我们将讨论Scardelli等人提出的模型,它将现有的神经网络方法拓展到图数据处理领域。 一个节点通常由其特征和图中与其相关的节点表示。GNN的目标在于为每一个节点学习一个状态表示hv∈Rs,它能编码节点的邻居节点的信息。利用这个状态表示,可以获得模型的的输出Ov,比如预测节点标签的分布。 典型的图如下图所示,基础GNN模型处理无向的同构图,图中每个节点都具有特征xv,同时每条边也可能具有自己的特征,co[v]和ne[v]分别表示节点v的边集合和节点集合。
模型介绍
对于给定的节点与边的输入特征,接下来介绍基础GNN模型如何获得节点嵌入表示hv和输出嵌入式表示ov。 为了根据输入的节点邻居更新节点状态,基础GNN模型使用一个带参数的函数f,叫作局部转移函数(local transition function),这一函数由全部节点共享。为了得到节点的输出,引入另一个带参数的函数g,叫作局部输出函数(local output function)。于是,将hv和ov分别定义如下:
ov = g(hv, xv)
其中,x和h分别表示输入特征和隐状态,co[v]和ne[v]分别表示和节点v相连的边的集合。xv, xco[v], hne[v], xne[v]分别表示节点特征、该节点的边的特征、该节点相邻节点的隐状态,以及该节点相邻节点的特征。
将所有的状态、输出、特征和节点特征分别堆叠起来,并使用矩阵形式分别表示H、O、X和XN。于是,上面的公式可以改写为:
O = G(H, XN)
其中,F是全局转移函数(global transition function),G是全局输出函数(global output function),二者分别由局部函数对所有节点堆叠形成。H的值为公式三的不动点,假设F是压缩映射(contraction map),就可以确定H的值。
根据巴拿赫不动点定理,GNN使用如下迭代方式求解节点状态:
其中,Ht表示H的第t轮迭代。对任意初始值Ho,对公式来说,动态系统将以指数速度收敛到公式公式三描述的解。注意,f和g所定义的计算可以由FNN来实现。
局限性
实验结果显示,GNN能够有效地建模结构化数据。尽管如此,基础GNN模型依然存在局限性。
- 首先,计算效率较低。在计算不动点的过程中,需要迭代求解节点的隐状态,模型需要执行T个步骤来逼近不动点。如果放宽不动点的理论假设,那么可以设计一个多层GNN模型来相对稳定地表示节点及其邻域。
- 其次,基础GNN模型在迭代过程中使用的参数是相同的,而大部分主流神经网络为了层次化地提取特征,在不同的层具有不同的参数。此外,GNN模型顺序地更新节点表示,可以使用RNN变体(例如GRU和LSTM)来提高模型的性能。
- 再次,基础GNN模型不能很好地对边的特征进行建模。举例来说,在知识图谱中存在多种关系,沿着不同的边传递的信息应该随着边的类型不同而不同。此外,如何学习边的隐状态也是一个重要的问题。
- 最后,如果T是一个相当大的数,那么采用不动点方法求解得到的节点表示不能很好地表现节点的特征,这是因为其特征将在值上更加平滑,缺乏足以分辨不同节点的信息。
在基础GNN模型之上,人们提出多种变体,以应对上述局限之处。例如,门控神经网络用于解决第一个问题,关系图卷积网络用于解决与有向图相关的问题。