分层图池化:Hierarchical Graph Representation Learning with Differentiable Pooling

来源: KDD’18, 2018

论文: https://arxiv.org/abs/1806.08804

本文提出了一个层级池化的方法。在每一层,应用两个GNN,一个生成该层级的节点嵌入,一个将不同类别的节点聚类成不同的簇。这一层的输出即为下一层的输入。

分层图池化:Hierarchical Graph Representation Learning with Differentiable Pooling

1 问题与挑战

  • 从节点嵌入到图嵌入的常用方法有:简单地汇总或平均最后一层中的所有节点嵌入,引入一个连接到图中所有节点的“虚拟节点”,或使用在集合上运行的深度学习体系结构聚合节点嵌入
  • 问题:这些方法都是扁平(flat)的,即在图分类任务的时候,先为所有节点生成嵌入,然后将所有的节点一口气聚合为图嵌入。这种方法忽略了层级结构,但是在诸如有原子基团的分子等任务中,是有层级结构的。这种扁平的池化方法可能会损害模型性能
  • 其他解决方法:将CNN架构应用于所有节点嵌入的拼接(如DGCNN),但这需要指定(或学习)节点上的规范顺序,这通常非常困难,相当于求解图同构
  • 执行分层池化的问题:1)没有自然的网格结构;2)不同图的节点数和边数都不同

2 提出方法:DiffPool

使用分配矩阵的聚合方法

  • 使用一个分配矩阵(assignment matrix)进行图的池化操作。公式(3)表示,下一层的特征矩阵是上一层的聚类;公式(4)表示,下一层的临界矩阵,是上一层的临界矩阵,根据聚类方式调整过来的,下一层临界矩阵的每一个元素的大小,都对应着不同簇之间连接的强弱
  • 分层图池化:Hierarchical Graph Representation Learning with Differentiable Pooling
    • A为临界矩阵,X为特征矩阵,Z为特征使用GNN矩阵聚合后的结果
上一篇:# 399. 除法求值


下一篇:六度空间(C语言)