函数 τ 是将一个图G和图中的一个节点n转化为一个实值向量的函数,这个函数 τ ( G , n ) ∈ R^m。监督学习的任务就在于从已知样本中学习得到这样的函数。
对于专注于图的应用,函数 τ 和具体的节点无关,即τ(G),训练时,在一个图的数据集中进行分类或回归。上图中(a)图是一个化学分子结构,能够使用图G进行表示,函数 τ (G )可能用于估计这种化学分子对人体有害的概率,因此,我们并不关注分子中具体的原子(相当于节点),所以属于graph-focused应用。
对于专注于节点的应用,τ函数依赖于具体的节点n,即 τ ( G , n )。上图中(b)图是一张城堡的图片,图片中的每一种结构都由节点表示,函数τ ( G , n )可能用于预测每一个节点是否属于城堡(图中的黑点)。这种类型属于node-focused应用。
GNN模型基于信息传播机制,每一个节点通过相互交换信息来更新自己的节点状态,直到达到某一个稳定值,GNN的输出就是在每个节点处,根据当前节点状态分别计算输出。
一个直观的想法是将图中的顶点视为目标或者concept,边表示顶点间关系。每个concept 都自然的通过各自的特征和关联concepts的特征定义。然后通过顶点包含的信息以及其邻域的信息,给每个顶点n一个状态向量: 参数函数 fw 称为局部变换函数,描述了顶点 n n n和其邻域的依赖性。gw 称为局部输出函数,刻画了输出值的生成过程。 注:特征向量简称属性;状态向量简称状态;
/* Remark: 特征向量简称属性;状态向量简称状态; 邻域的定义可以根据实际情况自由设定; 变换函数和输出函数的参数可能依赖于不同给顶点n。本文考虑相同的参数设置; */
整合所有的状态,属性以及输出等式(1),可以表示为: 其中 Fw全局变换函数,Gw为全局输出函数,分别是 fw和gw的叠加形式。 根据Banach的不动点理论,假设 Fw是一个压缩映射函数,那么上面式子有唯一不动点解,而且可以通过迭代方式逼近该不动点
GNN的信息传播流图以及等效的网络结构 根据上图所示,顶端的图是原始的Graph,中间的图表示状态向量和输出向量的计算流图,最下面的图表示将更新流程迭代T次,并展开之后得到等效网络图。
实现GNN需要如下技术 求解(1)的方法; 更新fw和gw的学习算法; fw和gw的实现方案;
GNN的学习就是估计参数w ,使得函数φw能够近似估计训练集。 其中, qi表示在图Gi中监督学习的节点个数,对于graph-focused的任务,需要增加一个特殊的节点,该节点用来作为目标节点,这样,graph-focused任务和node-focused任务都能统一到节点预测任务上,学习目标可以是最小化如下二次损失函数:
算法流程图如下: FORWARD用于迭代计算出收敛点,BACKWARD用于计算梯度。
在GNN中,函数gw不需要满足特定的约束,直接使用多层前馈神经网络,对于函数fw,则需要着重考虑,因为fw需要满足压缩映射的条件,而且与不动点计算相关。下面提出两种神经网络和不同的策略来满足这些需求
在这个结构中, hw通过多层前馈网络实现,但是,并不是所有的参数w都会被使用,因为同样需要保证Fw是一个压缩映射函数,这个可以通过惩罚项来实现。