MPNN

基本原理

主要由邻居聚合和消息传递构成,用Xi(k-1)表示节点i在k-1层的节点特征,ej,i表示从节点j到节点i的边特征,消息传递图神经网络可以描述为:
在这里插入图片描述
方框表示一种可微的排列不变的函数。例如:求和,求均值,取最大值等。ϕ表示可微函数,例如MLPs(多层感知机)。

机制

理论

MPNN的前向传播包括两个阶段,第一个阶段称为message passing(信息传递)阶段,第二个阶段称为readout(读取)阶段。定义一张图G = ( V , E ) ,其中V 是所有节点,E 是所有边。

消息传递阶段

message passing阶段会执行多次信息传递过程。对于一个特定的节点v
在这里插入图片描述
在公式(1)中,m(t+1)是结点v在t+1时间步所接收到的信息,N ( v ) 是结点v所有的邻居节点,ht是节点v在t时间步的特征向量,evw是节点vw的边特征,M是消息函数。该公式的意义是节点v收到的信息来源于节点v本身状态,周围的节点状态和与之相连的边特征。生成信息后,就需要对结点进行更新。
在公式(2)中,Ut是节点更新函数,该函数把原来的节点状态ht和信息m(t+1)作为输入,得到新的节点状态h(t+1),这个和RNN的更新函数是一样的,可以用GRU或者LSTM来表示Ut。当然,对于公式1和公式2而言为一个时间步,如果设为T次,那么最后得到的结果是hT。

读取阶段

readout阶段使用读取函数R 计算基于整张图的特征向量,可以表示为
在这里插入图片描述
y是最终的输出向量,R 是读取函数,这个函数有两个要求:1、要可以求导。2、要满足置换不变性(结点的输入顺序不改变最终结果,这也是为了保证MPNN对图的同构有不变性)

例子

门控图神经网络(Gated Graph Neural Networks, GG-NN)
这里,信息函数、结点更新函数和读取函数被定义为
在这里插入图片描述
消息函数( 4 ) 中,矩阵A决定了图中的结点是如何与其他结点进行相互作用的,一条边对应一个矩阵。GGNN文章中的公式如下所示
在这里插入图片描述
其中,a(t)是结点vt时刻接受到的信息向量,h(t-1)表示节点在t-1个时间步的状态,在这里插入图片描述
把每个节点形状拼接在一个维度上,维度大小为DV,b是偏置项。

A矩阵


在这里插入图片描述
A是边的特征矩阵,考虑了边的方向,它是由outin两个部分拼接而成的,图中的字母代表不同的作用类型,可以看作是每条边的特征,维度是(D,D)。以2号结点为v节点为例,在Outgoing EdgesIncoming Edges中分别找到2号节点 得到一个(D,2D)的矩阵Av。
读取函数( 6 ) 看起来是较为复杂的。首先⊙表示逐元素相乘,i 和j 分别表示一个全连接神经网络,并且在i 的外面又套了一层sigmoid函数,用符号σ 表示。对于神经网络i而言,输入是结点的初始状态和最终状态,因此输入维度是2 * in_dim,而对于神经网络j而言,输入只有结点的最终状态,因此输入维度是in_dim。但是这两个神经网络的输出维度是一样的,这样才能逐元素相乘。

传播模型

在这里插入图片描述
式(1)中,hv是结点v的初态,D维度的向量,当结点输入特征Xv小于D,在后面补充0。式子(3)到(6)是类似GRU的计算z用来控制遗忘信息,r用来控制产生信息。式子(6)(1-zv)选择遗忘那些过去的信息,zv选择记住那些新产生的信息。式子(5)中rv决定从那些过去的信息产生新的信息。hv(t-1)是产生新的信息。zt和rt叫做更新门和重置门。

输出模型

有两种输出,每个结点分别输出值以及整张图输出一个值。
对于每个结点输出:在这里插入图片描述
g是函数,利用逐个node最终状态和初始输入分别求输出。
对于整张图输出一个值:
在这里插入图片描述
i和j表示神经网络,输入是concat(hv,xv),输出实际值向量在这里插入图片描述

  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值