图网络(Graph Network, GN)
目录 |
图网络(Graph Network, GN)是2018年由 DeepMind、谷歌大脑、MIT 和爱丁堡大学等公司和机构的 27 位科学家共同提交的论文《Relational inductive biases, deep learning, and graph networks》中提出的一个基于关系归纳偏置的AI概念。研究人员称,该方法推广并扩展了各种神经网络方法,并为操作结构化知识和生成结构化行为提供了新的思路。[1]
图网络是在拓扑空间(topological space)内按图(graph)结构组织以进行关系推理(relational reasoning)的函数集合。在深度学习理论中是图神经网络( graph neural network, GNN)和概率图模型(Probabilistic Graphical Model, PGM)的推广。
图网络由相互连接的图网络块(GN block)组成,在神经网络实现中也被称为“节点(node)”如图1中vi。节点间的连接被称为“边(edge)”如图1中ek,表示了节点间的依赖关系。sk 和 rk分别表示边ek发送节点和接收节点的索引。图网络中节点和边的性质与图结构相同,因此可分为有向图(directed graph)和无向图(undirected graph)。
有向图的例子包括递归神经网络(Recursive Neural Network)和循环神经网络(Recurrent Neural Network);
无向图的例子包括Hopfield神经网络、马尔可夫网络(Markov Network)等。
需要指出,图网络在定义上并不是人工神经网络(Artificial Neural Network, ANN)的子集而是其推广,但在人工智能问题中,ANN是图网络的实现方式之一 [1] 。
图1:图网络的定义
图网络的每个节点都有内部状态和系统状态,被称为“属性(attribute)”。图网络的属性会在计算中按时间步(time-step)更新,更新方式包括同步和异步两种,同步更新时,一个时间步内所有节点的属性都会更新,异步更新时,一个时间步内只有部分节点的属性得到更新[1]。
图2:图网络的节点、连边和全局信息
对于一个任意的图结构G(V, E),其中V = (v1,...,vn)表示节点集合,E = (e1,...,en) 表示边集合。每条边表示两个节点之间的依赖关系。节点之间的连接可以是有向的,也可以是无向的。图中每个节点 v 都用一组神经元来表示其状态 h(t),初始状态可以为节点v的输入特征x(v)。每个节点可以收到来自相邻节点的消息,并更新自己的状态。[2]
其中N(v)表示节点v的邻居, 表示在第t时刻节点v收到的信息,e(u,v) 为边e(u,v) 上的特征[2] 。
上述两公式 是一种同步的更新方式,所有的结构同时接受信息并更新自己的状态。而对于有向图来说,使用异步的更新方式会更有效率,比如循环神经网络或递归神经网络。在整个图更新T 次后,可以通过一个读出函数(readout function)yt来得到整个网络的表示[2] 。
图网络是一种框架将深度学习与贝叶斯网络进行了融合,其结果是产生了一种具有推理能力的概率图模型。但不仅如此,他们还提出了更多思路去结合深度学习与图网络,指明了在图网络领域应用深度学习的清晰方向。本质上,它是对神经网络的扩充,我们知道,神经网络的结构很特殊,而他的学习方式也通过反向传播进行连边上的权重调整。
而图网络则可以从多个角度对神经网络进行扩充,具体而言,任何一个图网络都包含节点、连边、全局信息这样三个大的信息单元,每个单元都可以被表征为一个向量。
相比于深度学习只能更新权重,图网络的学习发生于每一个环节上,包括对连边状态的更新、节点状态的更新和全局信息的更新。在做完前馈运算之后,它也会进行反向传播学习,因为它的每一步计算都是可微分的。
我们可以这样理解图网络的学习能力:图网络将前馈的思路放在了每一个环节,连边、节点、全局信息就都可以在反馈过程中被调整,这就使得网络的整体架构变得可学习。
用图网络表示机械狗
例如我们将机械狗作为一个物理上的多体框架放在图网络上进行处理,首先,图网络可以将机械狗的每个机械结构作为一个实体,机械结构之间由关节相连,关节就可以被看做连边,而节点和连边之上都是带有信息的,这样我们就获得了一份图网络数据。
图3:机械狗
每个节点上都可以有一组向量,而机械狗的运动就可以由所有的节点向量和连边向量来表示。当然,我们也可以加入更多的全局信息,例如从宏观状态上观察到的机械狗的运动信息等等。
因此,我们对机械狗从各个角度进行了可微分描述,也建立了表示这些信息的图网络,接下来我们就可以学习机械狗的运动模式了。
怎样进行更高层的信息整合呢?在基本的图网络构建完成之后,我们可以在高层次对信息进行处理来完成更复杂的任务。
图4:图网络的高层信息整合
例如,我们可以将多个图网络叠加在一起(每一个图网络都是同构的,但它们表征的信息并不同),这样我们就可以构建出多层的图网络,从而拟合复杂的运算过程。
我们也可以将不同时间的图网络状态放入RNN架构中,从而完成对网络状态的预测,甚至我们可以将网络的输出作为自己的输入,进行后续状态的预测和生成。
除了物理系统,我们也完全可以将这一套原理放在更宏观的架构之下,例如,我们可以用这一种框架去学习网络上的动力学过程,例如在社交网络上,每个人都是节点,而人们在社交网络上的观点是怎样传播的?在交通流中,交通信息(堵车程度,车速信息等)又该怎样传播?这一类问题都可以通过图网络来解决。