图神经网络

在图上面的问题

  1. 图层面:预测整个图的单个属性——eg:一个用图表示的分子其气味更像什么?(即其问题会涉及到整个图的结构)
  2. 节点层面:预测图中每个节点的一些属性——eg:一个组织中,两个管理者存在分歧,判断其他成员更支持哪一个管理者?其和对应表示的图中两个管理者和其他成员的距离高度相关。
  3. 边层面:预测图中边的属性或是否存在——eg:预测几个人之间的关系(对于发现实体之间的连接,可以认为图是完全连接的,然后根据它们的预测值剪枝边以达到稀疏图)
    以上问题均可通过GNN来解决。

图如何与神经网络结合

神经网络的输入大多都是矩阵、网格类型的数据,至于图如何结合,图主要包括四类数据:节点、边、图的连接性(一条边连接的哪两个顶点)。前三个可以用向量来表示,连接性可以用邻接矩阵,但其中存在顶点数量很大,边少图的存储问题以及一个图可以用多个邻接矩阵表示但应用不一定产生同样的结果,以此提出采用邻接表。

图神经网络

GNN

GNN是一个可以对图上的所有信息(顶点、边、全局的上下文)进行一个优化的变化,同时其也保持住图的对称信息(变化后,图结构不会变)。
GNN采用“图-入,图-出”架构,也就是输入一个图输出一个图,其是会对图中一些属性的向量进行变换,但是不改变输入图的连接性。

一个简单的GNN

对于顶点向量、边向量、全局向量分别采用一个MLP,这些MLP就构成一个GNN层,然后输入得到变化后的输出

如何进行预测

顶点预测

  1. 有顶点向量
    通过一个全连接层,再通过softmax函数便可得到,其与神经网络相似。
  2. 无顶点向量
    从顶点连接的边向量获取信息得到顶点向量,从而进行预测,其得到顶点向量的过程为汇聚。

边、全局预测

与顶点预测类似。

消息传递

上述的预测过程中,并未很好地利用图的连接,因此通过消息传递来很好地利用图的连接性。

过程

对于一个顶点向量,先让其与其邻居顶点向量通过汇聚后得到一个顶点向量,然后再通过MLP进行更新。

对应的优化

之前缺失信息的时候,是在最后预测的时候采用汇聚得到。现在可以在GNN层便进行汇聚,例如顶点向量汇聚得到边向量。

使用全局向量

对于一个很大的图来说,两个顶点如果要进行消息传递要经过很长的步骤,此时便通过全局向量来解决。其相当于说连接了所有的顶点向量以及边向量,在他们之间担任了桥梁的作用。具体操作即是在汇聚时也加入全局向量的信息。

总结

图神经网络中,每个预测任务,如顶点预测,其可以把相邻的顶点信息、边信息、全局信息都可以拿过来用,以此完成预测。

文章参考来自https://distill.pub/2021/gnn-intro/

你可能感兴趣的:(神经网络)