【论文阅读-HGP-SL】Hierarchical Graph Pooling with Structure Learning
论文地址:https://arxiv.org/pdf/1911.05954
代码地址:https://github.com/cszhangzhen/HGP-SL
来源:WWW 2020
这篇论文提出了一种新的基于TopK的图池化操作符HGP-SL,它可以集成到各种图神经网络架构中。HGP-SL将图池和结构学习整合到一个统一的模块中,以生成图的层次表示。更具体地说,图池操作自适应地选择节点的子集,形成后续层的诱导子图。为了保持图的拓扑信息的完整性,进一步引入了一种结构学习机制,在每一层上学习一个优化的集合图结构。将HGP-SL算子与图神经网络相结合,以图分类任务为重点,进行图级表示学习。
模型体系结构
虚线框展示了HGP-SL的工作流程,包括图池和结构学习。学习的边在图中以虚线表示。这个过程(卷积和池操作)要重复几次。然后,对聚合节点表示应用一个读出函数来生成固定大小的表示,通过MLP层进行图分类。
卷积层
池化层
得分函数
能够由邻居节点重构得到的节点,所具有的信息较少,所以我们删除这些节点。这里,用了曼哈顿距离来衡量节点自身和重构得到的节点之间的距离,然后删除得分小的节点。
因为池操作可能会导致诱导子图中高度相关的节点断开连接,从而失去图结构信息的完整性,进一步阻碍消息传递过程。所以我们要学习一种新的S(包含结构信息)去替换A。这里用一种稀疏注意力机制去得到。
后面加的 A 使得原本就相连的节点之间的相似性更大。最后经过归一化后得到的S可以理解为两个节点相连的概率。
后面的邻接矩阵都用S来代替,则得分函数可以写为:
topK
保留得分较大的节点,删除得分小的节点,更新邻接矩阵。
Readout层
对于每一层池化后的结果,经过分别进行全局平均池化和最大池化操作,并进行concat操作后输出,来代表这一子图的embedding。
总结
利用重构的思想来修改得分函数。