论文题目–《基于图递归注意力网络的高效图生成方法》
摘要
提出了一种新的基于深度学习的生成图得模型,称为图递归注意力网络。该模型一次生成一组节点和一组边的信息。在当前实现了最好的效果。
1.介绍
图生成任务是指,用输入的数据,生成图结构。
贡献:
1.该方法的时间复杂度为O(N),每一步生成一组边和一组节点的信息。
2.提出了一个基于注意力的图神经网络,它能够更好地利用已经生成的图的部分,用于有效的建模已经生成的部分新添加的节点
3.使用贝努利模型来参数化每一代输出的分布结果,该模型能够更好的探索多个生成的边之间的相关性。
2.模型
图的表示和生成过程
该文的目标是学习一个概率分布p(G)在一个简单图的基础之上。给定一个简单图G=(V,E)和一个图中节点的序列π。然后定义一个映射
表示可能的邻接矩阵,和图中节点的序列。用π去隐式的表示这个邻接矩阵中的节点的序列。
其中,对于无向图来说,他的邻接矩阵是对称的所以就可以用下三角矩阵来代替整个邻接矩阵。
然后在该方法中,每一步生成一行或者一个块中的数据。生成一个序列向量
其中:
第i行数据被填充为零。
然后该过程一直会持续到最大次数。对于生成的序列向量,通过公式:
可以得到。
整个过程如下图所示:
如图,最开始输入是一个简单图,然后同一个颜色的节点属于同一个类别也就是同属于一个块。下三角矩阵是一个邻接矩阵,其中的深色方格就代表节点之间是有边。然后一个块之中有2行,也就是把2行分为一个块,其中是可以通过参数自己设置的。然后加入一个新的块也就是其中的粉红色的节点,然后在新添加的节点之后的图通过图递归注意力网络,最后生成节点之间每条边的概率,最后根据概率生成新的图。其中的L是指每一条边的概率的集合的一个序列向量。
2.2图递归注意力网络
该模型每一次都生成一个块中的B行数据。其中第t个块包含的行数检索为:
生成图的步骤数为:
节点个数N/每块中的行数向上取整。
所以生成的边的概率可以分解为公式如下:
循环神经网络是一个标准的建模模型对于序列结构的数据,但是其中也有很多的缺点,比如说两个节点在图的拓扑结构中距离很近,但是在节点的序列结构中却相距很远,这是不合理的。为了解决这个问题,作者利用了GNN而不再是RNN。GNN能够更加好的探索节点之间的关系,这些都是RNN做不到的。
节点的表示
要利用GNN来处理生成的边的序列向量,那么该如何利用呢。怎样去表示一个节点呢。在第t步中,我们用以下公式表示上一步输入的节点信息:
如图公式2,通过一个权值参数W和一个偏执项b,将序列向量L量化成了一个节点数据h。因为是上一层输入过来的节点信息h,所以i要小于t。特别的,当时第0层的时候,也就是最开始,我们设置h=0.
这样通过上面的式子我们就将一个序列向量量化成了一个节点数据,然后,就可以输入GNN,进行计算了。
注意力的图神经网络
在经过将边的序列信息量化成节点信息之后,就可以输入图神经网络了,对于在GNN中第r步的信息传导,可以用以下公式表示:
其中hir是指节点i在第r步中的隐层表示,mijr是指节点i到节点j的信息向量。hir一把是指对于hir节点信息的增强。其中,如果节点i在已经生成的图结构之中,那么xi的值为0。aijr是指节点i和节点j之间边的注意力权重。然后,在得到以上的信息之后通过一个循环神经网络GRU,将以上信息进行整合,得到最终的新更新的节点信息hir+1。
输出分布:
在经过R轮信息传递之后,获得了节点的最终表示hiR,然后模型的边的概率通过一个伯努利混合模型生成:
权重和参数通过输入节点表示信息到多层感知机中计算得到,然后利用伯努利混合模型,最终得到边的概率分布。
最后根据边的概率分布得到最后生成的图。
4.实验