GNN

图神经网络

图神经网络是针对一些图结构数据设计的网络,比如分子结构啥的。

模型结构

首先图是由 G ( N , E ) G(N,E) G(N,E),N是节点,E是边组成。对于每个节点和边,定义 l n l_n ln表示节点的特征向量, l ( n 1 , n 2 ) l_{(n_1,n2)} l(n1,n2)定义 n 1 n_1 n1 n 2 n_2 n2的边,一个直观的图如下图

在这里插入图片描述

上图中的节点表示对象或概念,边表示它们之间的关系。 每个概念自然都有其特点及相关概念,所以基于每个节点的邻居节点的信息引入 x n x_n xn表示,我们在本文中称之为n的全局表示,因为他是综合了相邻节点的信息的

定义 f w f_w fw状态局部转移函数, g w g_w gw是局部输出函数描述输出的产生。有如下表示
x n = f w ( l n , l c o [ n ] , x n e [ n ] , l n e [ n ] ) o n = g w ( x n , l n ) x_n=f_w(l_n,l_{co[n]},x_{ne[n]},l_{ne[n]}) \\ o_n=g_w(x_n,l_n) xn=fw(ln,lco[n],xne[n],lne[n])on=gw(xn,ln)
其中 l n l_n ln表示节点n的特征表示, l c o [ n ] l_{co[n]} lco[n]表示相邻边的特征向量, x n e [ n ] x_{ne[n]} xne[n]表示节点n相邻节点的全局表示, l n e [ n ] l_{ne[n]} lne[n]表示节点n相邻节点的特征向量。 x n x_n xn o n o_n on考虑信息的传递是由相邻节点通过相邻边传过来的。

有定理,当 f w f_w fw是一个压缩映射的时候x_n最后会趋于稳定,具体就不说明,就是任意节点 x n x_n xn随着不停的迭代的迭代最后会区域稳定。所以 x n x_n xn最终稳定的值是需要使用状态迭代的方式计算出来,故不难推出由下式
x n ( t + 1 ) = f w ( l n , l c o [ n ] , x n e [ n ] ( t ) , l n e [ n ] ) o n ( t ) = g w ( x n ( t ) , l n ) x_n(t+1)=f_w(l_n,l_{co[n]},x_{ne[n]}(t),l_{ne[n]})\\ o_n(t)=g_w(x_n(t),l_n) xn(t+1)=fw(ln,lco[n],xne[n](t),lne[n])on(t)=gw(xn(t),ln)

如果最后的任务以节点为中心的任务时,就是每个节点都要输出什么值时,很明显是要对每个节点信息进行监督的,定义损失函数最小均方误差
e w = ∑ i = 1 p ∑ j = 1 q i ( t i , j − φ ( G i , n i , j ) ) 2 e_w=\sum_{i=1}^{p}\sum_{j=1}^{q_i}(t_{i,j}-\varphi(G_i,n_{i,j}))^2 ew=i=1pj=1qi(ti,jφ(Gi,ni,j))2
其中p是可以理解为图的个数,有可能模型并不只是一个图啊, q i q_i qi代表第 i i i个图的节点数, n i , j n_{i,j} ni,j代表第i个图的第j个节点, t i , j t_{i,j} ti,j表示第i个图的第j个节点的期望值。

我们最终的目标是训练得到函数 f w f_w fw的一组参数 w w w使得在这组参数下稳定下来的 x n x_n xn通过 g ( w ) g(w) g(w)输出一个我们期望的值,所以与传统RNN不同地方是他的时间步是不确定的。整个过程用神经网络建模,有如下直观表示

在这里插入图片描述

学习算法

首先假定z(t)表示是某一个时间t是,总损失对于x的导数,
z ( t ) = ∑ i = 0 T − t ∂ e ( T ) ∂ o ( T ) ∂ G w ( x ( T ) , l N ) ∂ x ( T ) ∏ j = 1 i ( ∂ F w ( x ( T − j ) , l N ) ∂ x ( T − j ) ) = ∑ i = 0 T − j ∂ e w ( T ) ∂ x ( T − j ) ) = ∑ T t ∂ e w ( T ) ∂ x ( T − j ) ) , 注 意 最 后 一 个 求 和 的 表 示 , 是 逆 序 的 (1) z(t)=\sum_{i=0}^{T-t}\frac{\partial e(T)}{\partial o(T)}\frac{\partial G_w(x(T),l_N)}{\partial x(T)}\prod_{j=1}^{i}(\frac{\partial F_w(x(T-j),l_N)}{\partial x(T-j)})\\ =\sum_{i=0}^{T-j}\frac{\partial e_w(T)}{\partial x(T-j)})=\sum_{T}^{t}\frac{\partial e_w(T)}{\partial x(T-j)})\\, \tag{1} 注意最后一个求和的表示,是逆序的 z(t)=i=0Tto(T)e(T)x(T)Gw(x(T),lN)j=1i(x(Tj)Fw(x(Tj),lN))=i=0Tjx(Tj)ew(T))=Ttx(Tj)ew(T)),(1)
不难得到当z(t)是收敛时也就是整个网络再加深也没有意义有如下式子
z ( t ) = z ( t + 1 ) ∂ F w ( x , l ) ∂ x + ∂ e w ∂ o ∂ G w ( x , l N ) ∂ x (2) z(t)=z(t+1)\frac{\partial F_w(x,l)}{\partial x}+\frac{\partial e_w}{\partial o}\frac{\partial G_w(x,l_N)}{\partial x}\tag{2} z(t)=z(t+1)xFw(x,l)+oewxGw(x,lN)(2)
代表的就算再叠加一个时间步求导,他同样对于x的梯度也是一样的,此时达到收敛,所以可以求出稳态z满足如下式子
z = ∂ e w ∂ o ∂ G w ( x , l N ) ∂ x ( I a − ∂ F w ( x , l ) ∂ x ) − 1 , 其 中 I a 是 单 位 矩 阵 , a 维 的 (3) z=\frac{\partial e_w}{\partial o}\frac{\partial G_w(x,l_N)}{\partial x}(I_a-\frac{\partial F_w(x,l)}{\partial x})^{-1},\\\tag{3} 其中I_a是单位矩阵,a维的 z=oewxGw(x,lN)(IaxFw(x,l))1,Iaa(3)
接下来就是求 ∂ e w ∂ w \frac{\partial e_w}{\partial w} wew,由隐函数理论有,
∂ ψ ( w ) ∂ w = ( I a − ∂ F w ( x , l ) ∂ x ) − 1 ∂ F w ( x , l ) ∂ w (4) \frac{\partial \psi(w)}{\partial w}=(I_a-\frac{\partial F_w(x,l)}{\partial x})^{-1}\frac{\partial F_w(x,l)}{\partial w}\tag{4} wψ(w)=(IaxFw(x,l))1wFw(x,l)(4)
其中 ψ \psi ψ指的还是 F w F_w Fw传递函数,当趋于稳态的时候有
∂ ψ ( w ) ∂ w = ∂ F w ( x , l ) ∂ w + ∂ F w ( x , l ) ∂ x ∂ ψ ( w ) ∂ w \frac {\partial\psi(w)}{\partial w}=\frac{\partial F_w(x,l)}{\partial w}+\frac{\partial F_w(x,l)}{\partial x}\frac{\partial\psi (w)}{\partial w} wψ(w)=wFw(x,l)+xFw(x,l)wψ(w)
所以推出(4)式。

所以现在可以求出误差关于w的导数根据链式求导有:
∂ e w ∂ w = ∂ e w ∂ o ∂ G w ( x , l N ) ∂ w + ∂ e w ∂ o ∂ G w ( x , l N ) ∂ x ∂ ψ ( w ) ∂ w (5) \frac{\partial e_w}{\partial w}=\frac{\partial e_w}{\partial o}\frac{\partial G_w(x,l_N)}{\partial w}+\frac{\partial e_w}{\partial o}\frac{\partial G_w(x,l_N)}{\partial x}\frac{\partial \psi(w)}{\partial w}\tag{5} wew=oewwGw(x,lN)+oewxGw(x,lN)wψ(w)(5)
然后将(4)式和(3)式代入(5)可得
∂ e w ∂ w = ∂ e w ∂ o ∂ G w ( x , l N ) ∂ w + ∂ e w ∂ o ∂ G w ( x , l N ) ∂ x ( I a − ∂ F w ( x , l ) ∂ x ) − 1 ∂ F w ( x , l ) ∂ w = ∂ e w ∂ o ∂ G w ( x , l N ) ∂ w + z ∂ F w ( x , l ) ∂ w (6) \frac{\partial e_w}{\partial w}=\frac{\partial e_w}{\partial o}\frac{\partial G_w(x,l_N)}{\partial w}+\frac{\partial e_w}{\partial o}\frac{\partial G_w(x,l_N)}{\partial x}(I_a-\frac{\partial F_w(x,l)}{\partial x})^{-1}\frac{\partial F_w(x,l)}{\partial w}\\ =\frac{\partial e_w}{\partial o}\frac{\partial G_w(x,l_N)}{\partial w}+z\frac{\partial F_w(x,l)}{\partial w}\tag{6} wew=oewwGw(x,lN)+oewxGw(x,lN)(IaxFw(x,l))1wFw(x,l)=oewwGw(x,lN)+zwFw(x,l)(6)
,

所以求出了梯度后就好办了,整个算法的流程如下
在这里插入图片描述

对于非线性GNN来说,为了保证 F w F_w Fw是压缩映射,使得最终 x n x_n xn可收敛,需要在原有损失函数加上一个惩罚项实现,即
e w = ∑ i = 1 p ∑ j = 1 q i ( t i , j − φ ( G i , n i , j ) ) 2 + β L ( ∣ ∣ ∂ F w ∂ x ∣ ∣ ) 其 中 { L ( ∣ ∣ ∂ F w ∂ x ∣ ∣ ) = ( ∂ F w ∂ x − u ) 2 , 当 ∂ F w ∂ x > u L ( ∣ ∣ ∂ F w ∂ x ∣ ∣ ) = 0 , 当 ∂ F w ∂ x < = u 其 中 0 < u < 1 e_w=\sum_{i=1}^{p}\sum_{j=1}^{q_i}(t_{i,j}-\varphi(G_i,n_{i,j}))^2+\beta L(||\frac {\partial F_w}{\partial x}||) \\ 其中 \left \{ \begin{array}{c} L(||\frac {\partial F_w}{\partial x}||)=(\frac {\partial F_w}{\partial x}-u)^2, 当\frac {\partial F_w}{\partial x}>u \\ L(||\frac {\partial F_w}{\partial x}||)=0, 当\frac {\partial F_w}{\partial x}<=u \\ \end{array} \right. \\ 其中0<u<1 ew=i=1pj=1qi(ti,jφ(Gi,ni,j))2+βL(xFw){L(xFw)=(xFwu)2,xFw>uL(xFw)=0xFw<=u0<u<1

代码实现

省略,

人工智能(AI)最近经历了复兴,在视觉,语言,控制和决策等关键领域取得了重大进展。 部分原因在于廉价数据和廉价计算资源,这些资源符合深度学习的自然优势。 然而,在不同的压力下发展的人类智能的许多定义特征仍然是当前方法无法实现的。 特别是,超越一个人的经验 - 从婴儿期开始人类智能的标志 - 仍然是现代人工智能的一项艰巨挑战。 以下是部分立场文件,部分审查和部分统一。我们认为组合概括必须是AI实现类似人类能力的首要任务,结构化表示和计算是实现这一目标的关键。就像生物学利用自然和培养合作一样,我们拒绝“手工工程”和“端到端”学习之间的错误选择,而是倡导一种从其互补优势获益的方法。我们探索如何在深度学习架构使用关系归纳偏差来促进对实体,关系和组成它们的规则的学习。我们为AI工具包提供了一个新的构建模块,具有强大的关系归纳偏差 - 图形网络 - 它概括和扩展了在图形上运行的神经网络的各种方法,并为操纵结构化知识和生成结构化行为提供了直接的界面。我们讨论图网络如何支持关系推理和组合泛化,为更复杂,可解释和灵活的推理模式奠定基础。作为本文的配套文件,我们还发布了一个用于构建图形网络的开源软件库,并演示了如何在实践使用它们。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值