图神经网络池化方法
提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 图神经网络池化方法
 - 前言
 - 一、扁平图池化
 - 二、分层图池化
 - 1.节点聚类池化
 - 2.节点丢弃池化
 
- 参考文献
 
前言
图池化操作根据其池化策略的差异,可细分为扁平图池化和分层图池化两大类:
- 如下图(a)所示,扁平图池化(Flat Graph Pooling)技术通过一步操作对图中节点进行降维或聚合,直接获得整体图的表征。这一过程旨在快速提取出图的全局表示,适用于那些需要快速获得全局图表示的场景。
 - 如下图(b)所示,分层图池化(Hierarchical Graph Pooling)则通过一个分阶段的策略来逐步简化图结构,即在图的每一层上通过减少节点的数量,逐步构建图的更高层次的表征。
这种分层的方法允许模型在每一步中细致地捕获和保留图的重要结构信息,适合于需要深层次理解图结构特征的复杂任务。两种池化策略各有优势,选择哪一种依赖于特定任务的需求和目标。 

一、扁平图池化
扁平图池化是一种图池化策略,其特点在于对图中的节点进行一次性的降维或聚合操作,从而简化图的整体结构并直接提取出图级别的特征表示。这种池化技术的核心在于直接从整个图中聚合信息,而非通过对图结构进行多层递归简化来实现。该方法的主要优势在于其简单直接的处理方式,能够在不引入额外计算复杂度的情况下,为下游任务提供有力的图级别特征。
对于给定的图  
     
      
       
       
         G 
        
       
         = 
        
       
         { 
        
       
         A 
        
       
         , 
        
       
         X 
        
       
         } 
        
       
      
        \mathcal{G}=\{A,X\} 
       
      
    G={A,X},其中  
     
      
       
       
         A 
        
       
      
        A 
       
      
    A 是图的邻接矩阵,用于描述图中各个节点之间的连接情况; 
     
      
       
       
         X 
        
       
      
        X 
       
      
    X是节点的特征矩阵,包含了与每个节点相关的属性或特征信息。扁平图池化可以定义为如下过程:
  
      
       
        
         
         
           X 
          
          
          
            ( 
           
          
            l 
           
          
            ) 
           
          
         
        
          = 
         
         
         
           GNN 
          
          
          
            ( 
           
          
            l 
           
          
            ) 
           
          
         
        
          ( 
         
        
          G 
         
        
          ) 
         
        
          , 
         
         
         
         
           h 
          
         
           G 
          
         
        
          = 
         
         
         
           Pool 
          
          
          
            f 
           
          
            l 
           
          
            a 
           
          
            t 
           
          
         
        
          ( 
         
         
         
           X 
          
          
          
            ( 
           
          
            l 
           
          
            ) 
           
          
         
        
          ) 
         
        
          , 
         
        
       
         X^{(l)}=\text{GNN}^{(l)}(\mathcal{G}),\\ h_{\mathcal{G}}=\text{Pool}_{flat}(X^{(l)}), 
        
       
     X(l)=GNN(l)(G),hG=Poolflat(X(l)),
 这里GNN指的是任意图神经网络,经过  
     
      
       
       
         l 
        
       
      
        l 
       
      
    l 层的图神经网络之后,得到图中全部节点的特征表示矩阵 
     
      
       
        
        
          X 
         
         
         
           ( 
          
         
           l 
          
         
           ) 
          
         
        
       
      
        X^{(l)} 
       
      
    X(l)。 
     
      
       
        
        
          h 
         
        
          G 
         
        
       
      
        h_{\mathcal{G}} 
       
      
    hG表示经过图池化后得到的图最终表征向量, 
     
      
       
        
        
          Pool 
         
         
         
           f 
          
         
           l 
          
         
           a 
          
         
           t 
          
         
        
       
      
        \text{Pool}_{flat} 
       
      
    Poolflat表示扁平图池化函数,它需要具备以下两个特点:1)对于不同大小的输入图,输出固定大小的图表示;2)在输入图的节点顺序改变时,输出相同的表示。基于以上讨论,几种最常见的扁平池化方法是均值池化(Mean-Pool)、最大值池化(Max-Pool)和求和池化(Sum-Pool),即通过所有节点特征取平均、求最大值以及求和得到。
近期,研究者们通过融入注意力机制,赋予了模型在构建图级别表示时更大的适应性和灵活性。这种机制允许模型动态地为每个节点分配权重,从而更细致地揭示节点间的相对重要性。例如,一些研究工作[1-3]在他们的池化框架中嵌入了软注意力机制,旨在精确地捕捉并表达节点之间的微妙关系。此外,Bai等人[4]采纳了一种创新策略,将卷积神经网络应用于已排序的节点表示上,通过这种方式,他们能够依据节点特征的排序顺序来挖掘图的关键信息。与传统依赖于节点特征一阶统计信息的方法不同,Wang等人[5]引入了二阶池化(Second-order Pooling,SOPool),其主要思想是利用节点特征的二次方来提取图的二阶统计信息。这种方法通过捕获图节点特征的相互关系,能够提供更丰富和深入的图表示,从而增强模型对图结构复杂性的理解和表达能力。
这里,我们向大家推荐我们组的工作,DKEPool [6](Distribution Knowledge Embedding for Graph Pooling)通过引入分布信息的表征,其也是一种扁平的图池化方法,在确保不丢失任何节点信息的前提下,使用非线性的高斯分布信息去拟合非欧几何的图结构数据,从而提升图结构数据的表征能力以及相应的分类效果。
二、分层图池化
分层池化方法的目的是通过将图迭代地粗化为更小尺寸的新图,以保留图的层次结构信息。根据粗化图的方式,分层池化大致可以分为节点聚类池化、节点丢弃池化以及其他类型的池化。节点聚类池化和节点丢弃池化方法都对原始图结构进行了修改,但它们各自采用了不同的策略来保留图的关键信息。节点聚类池化通过合并节点来形成新的节点结构,这样不仅保留了原始图的信息,还在一定程度上维护了图的结构完整性。相反,节点丢弃池化方法着重于抛弃不重要的节点,仅保留那些被认为是图核心结构的一小部分节点。值得注意的是,尽管分层池化方法在概念上设计为在多个层次上粗化图结构,分层池化方法在技术上仍然使用扁平池化方法来获得粗化后图的表示。
1.节点聚类池化
节点聚类池[7-10]将图池化视作一个节点聚类问题,其核心思想是将图中的节点根据相似性或其他准则映射到若干个簇中。
 为了全面阐释这种方法,这里提供了一个通用的分解框架,主要由以下两个主要模块来实施节点聚类池化:1)簇分配矩阵(Cluster Assignment Matrix, CAM)生成器:给定一个输入图,CAM根据输入图计算节点到簇的分配,这一步骤可能产生每个节点到簇的硬/软分配。2) 图粗化(Graph Coarsening)模块:该模块利用上述簇分配矩阵,通过提取新的特征表示和更新邻接矩阵,转换原始图为一个粗化的简化版本。这一粗化过程旨在保留图的核心结构特性,同时减小了图的规模,从而在保持图的关键信息的同时提高了计算效率。
对于给定的图  
     
      
       
       
         G 
        
       
         = 
        
       
         { 
        
       
         A 
        
       
         , 
        
       
         X 
        
       
         } 
        
       
      
        \mathcal{G}=\{A,X\} 
       
      
    G={A,X},其中  
     
      
       
       
         A 
        
       
      
        A 
       
      
    A 是图的邻接矩阵, 
     
      
       
       
         X 
        
       
      
        X 
       
      
    X是节点的特征矩阵。节点聚类池化过程可以如下表述:
  
      
       
        
         
         
           C 
          
          
          
            ( 
           
          
            l 
           
          
            ) 
           
          
         
        
          = 
         
        
          CAM 
         
        
          ( 
         
         
         
           X 
          
          
          
            ( 
           
          
            l 
           
          
            ) 
           
          
         
        
          , 
         
         
         
           A 
          
          
          
            ( 
           
          
            l 
           
          
            ) 
           
          
         
        
          ) 
         
        
          , 
         
         
         
         
           X 
          
          
          
            ( 
           
          
            l 
           
          
            + 
           
          
            1 
           
          
            ) 
           
          
         
        
          , 
         
         
         
           A 
          
          
          
            ( 
           
          
            l 
           
          
            + 
           
          
            1 
           
          
            ) 
           
          
         
        
          = 
         
        
          Coarsen 
         
        
          ( 
         
         
         
           X 
          
          
          
            ( 
           
          
            l 
           
          
            ) 
           
          
         
        
          , 
         
         
         
           A 
          
          
          
            ( 
           
          
            l 
           
          
            ) 
           
          
         
        
          , 
         
         
         
           C 
          
          
          
            ( 
           
          
            l 
           
          
            ) 
           
          
         
        
          ) 
         
        
          , 
         
        
       
         C^{(l)}=\text{CAM}(X^{(l)},A^{(l)}),\\ X^{(l+1)},A^{(l+1)}=\text{Coarsen}(X^{(l)},A^{(l)},C^{(l)}), 
        
       
     C(l)=CAM(X(l),A(l)),X(l+1),A(l+1)=Coarsen(X(l),A(l),C(l)),
 其中, 
     
      
       
       
         CAM 
        
       
      
        \text{CAM} 
       
      
    CAM 和  
     
      
       
       
         Coarsen 
        
       
      
        \text{Coarsen} 
       
      
    Coarsen 分别指的簇矩阵生成和图粗化操作。 
     
      
       
       
         CAM 
        
       
      
        \text{CAM} 
       
      
    CAM 以第  
     
      
       
       
         l 
        
       
      
        l 
       
      
    l 层的邻接矩阵和节点特征矩阵为输入,输出第  
     
      
       
       
         l 
        
       
      
        l 
       
      
    l 层的簇矩阵  
     
      
       
        
        
          C 
         
         
         
           ( 
          
         
           l 
          
         
           ) 
          
         
        
       
         ∈ 
        
        
        
          R 
         
         
          
          
            n 
           
          
            l 
           
          
         
           × 
          
          
          
            n 
           
           
           
             l 
            
           
             + 
            
           
             1 
            
           
          
         
        
       
      
        C^{(l)}\in\mathbb{R}^{n_l\times n_{l+1}} 
       
      
    C(l)∈Rnl×nl+1, 
     
      
       
        
        
          n 
         
        
          l 
         
        
       
      
        n_l 
       
      
    nl 是第  
     
      
       
       
         l 
        
       
      
        l 
       
      
    l 层的节点个数。 
     
      
       
       
         Coarsen 
        
       
      
        \text{Coarsen} 
       
      
    Coarsen 以第  
     
      
       
       
         l 
        
       
      
        l 
       
      
    l 层邻接矩阵、节点特征矩阵和簇矩阵为输入,输出第  
     
      
       
       
         l 
        
       
         + 
        
       
         1 
        
       
      
        l+1 
       
      
    l+1 层的邻接矩阵和节点特征矩阵。
2.节点丢弃池化
节点丢弃池化[11-16]策略通过采用可学习的评分机制来识别并剔除相对不重要的节点,有效地简化图结构。
 为了深入理解节点丢弃池化的过程,我们构建了一个由三个独立模块组成的通用框架,旨在清楚地说明其工作原理:1)分数生成器(Score Generator):针对输入图的每个节点,该模块负责生成一个反映节点重要性的分数。(2)节点选择器(Node Selector):根据生成的重要性分数,此模块负责挑选出分数最高的前 
     
      
       
       
         k 
        
       
      
        k 
       
      
    k个节点。(3)图粗化(Graph Coarsen):利用所选节点来构建一个新的粗化图,即新的特征矩阵和邻接矩阵。通过这个分模块的框架,节点丢弃池化过程的每个环节都被结构化地展现出来,,从而为优化图结构提供了清晰的路径。
对于给定的图  
     
      
       
       
         G 
        
       
         = 
        
       
         { 
        
       
         A 
        
       
         , 
        
       
         X 
        
       
         } 
        
       
      
        \mathcal{G}=\{A,X\} 
       
      
    G={A,X},其中  
     
      
       
       
         A 
        
       
      
        A 
       
      
    A 是图的邻接矩阵, 
     
      
       
       
         X 
        
       
      
        X 
       
      
    X 是节点的特征矩阵。节点丢弃池化过程可以如下表述:
  
      
       
        
         
         
           S 
          
          
          
            ( 
           
          
            l 
           
          
            ) 
           
          
         
        
          = 
         
        
          Score 
         
        
          ( 
         
         
         
           X 
          
          
          
            ( 
           
          
            l 
           
          
            ) 
           
          
         
        
          , 
         
         
         
           A 
          
          
          
            ( 
           
          
            l 
           
          
            ) 
           
          
         
        
          ) 
         
        
          , 
         
         
         
         
           idx 
          
          
          
            ( 
           
          
            l 
           
          
            + 
           
          
            1 
           
          
            ) 
           
          
         
        
          = 
         
        
          Top-k 
         
        
          ( 
         
         
         
           S 
          
          
          
            ( 
           
          
            l 
           
          
            ) 
           
          
         
        
          ) 
         
        
          , 
         
         
         
         
           X 
          
          
          
            ( 
           
          
            l 
           
          
            + 
           
          
            1 
           
          
            ) 
           
          
         
        
          , 
         
         
         
           A 
          
          
          
            ( 
           
          
            l 
           
          
            + 
           
          
            1 
           
          
            ) 
           
          
         
        
          = 
         
        
          Coarsen 
         
        
          ( 
         
         
         
           X 
          
          
          
            ( 
           
          
            l 
           
          
            ) 
           
          
         
        
          , 
         
         
         
           A 
          
          
          
            ( 
           
          
            l 
           
          
            ) 
           
          
         
        
          , 
         
         
         
           S 
          
          
          
            ( 
           
          
            l 
           
          
            ) 
           
          
         
        
          , 
         
         
         
           idx 
          
          
          
            ( 
           
          
            l 
           
          
            + 
           
          
            1 
           
          
            ) 
           
          
         
        
          ) 
         
        
          , 
         
        
       
         S^{(l)}=\text{Score}(X^{(l)},A^{(l)}),\\ \text{idx}^{(l+1)}=\text{Top-k}(S^{(l)}),\\ X^{(l+1)},A^{(l+1)}=\text{Coarsen}(X^{(l)},A^{(l)},S^{(l)},\text{idx}^{(l+1)}), 
        
       
     S(l)=Score(X(l),A(l)),idx(l+1)=Top-k(S(l)),X(l+1),A(l+1)=Coarsen(X(l),A(l),S(l),idx(l+1)),
 这里,函数Score,Top-k和Coarsen分别表示的是分数生成器,节点选择器和图粗化。
 Score以第 
     
      
       
       
         l 
        
       
      
        l 
       
      
    l层的邻接矩阵和节点特征矩阵为输入,输出  
     
      
       
        
        
          S 
         
        
          l 
         
        
       
         ∈ 
        
        
        
          R 
         
         
          
          
            n 
           
          
            l 
           
          
         
           × 
          
         
           1 
          
         
        
       
      
        S^{l}\in \mathbb{R}^{{n_l}\times 1} 
       
      
    Sl∈Rnl×1 表示节点重要性分数,其中 
     
      
       
        
        
          n 
         
        
          l 
         
        
       
      
        n_l 
       
      
    nl是第 
     
      
       
       
         l 
        
       
      
        l 
       
      
    l层的节点个数。 Top-k将分数从大到小排列并提供 
     
      
       
        
        
          S 
         
        
          l 
         
        
       
      
        S^{l} 
       
      
    Sl中最大的 
     
      
       
       
         k 
        
       
      
        k 
       
      
    k个值的索引, 
     
      
       
        
        
          idx 
         
         
         
           ( 
          
         
           l 
          
         
           + 
          
         
           1 
          
         
           ) 
          
         
        
       
      
        \text{idx}^{(l+1)} 
       
      
    idx(l+1)指示新图中保留节点的索引。与节点聚类池化中Coarsen不同,这里在以第  
     
      
       
       
         l 
        
       
      
        l 
       
      
    l 层邻接矩阵、节点特征矩阵和簇矩阵为输入的同时,需要额外使用  
     
      
       
        
        
          idx 
         
         
         
           ( 
          
         
           l 
          
         
           + 
          
         
           1 
          
         
           ) 
          
         
        
       
      
        \text{idx}^{(l+1)} 
       
      
    idx(l+1) 信息。
参考文献
- Fan X, Gong M, Xie Y, et al. Structured self-attention architecture for graph-level representation learning[J]. Pattern Recognition, 2020, 100: 107084.
 - Itoh T D, Kubo T, Ikeda K. Multi-level attention pooling for graph neural networks: Unifying graph representations with multiple localities[J]. Neural Networks, 2022, 145: 356-373.
 - Yunsheng B, Ding H, Qiao Y, et al. Unsupervised inductive graph-level representation learning via graph-graph proximity[C]//Proceedings of the 28th International Joint Conference on Artificial Intelligence. 1988, 1994.
 - Bai L, Jiao Y, Cui L, et al. Learning graph convolutional networks based on quantum vertex information propagation[J]. IEEE Transactions on Knowledge and Data Engineering, 2021, 35(2): 1747-1760.
 - Wang Z, Ji S. Second-order pooling for graph neural networks[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2020, 45(6): 6870-6880.
 - Chen K, Song J, Liu S, et al. Distribution Knowledge Embedding for Graph Pooling[J]. IEEE Transactions on Knowledge and Data Engineering, 2023, 35(08): 7898-7908.
 - Khasahmadi A H, Hassani K, Moradi P, et al. Memory-Based Graph Networks[C]//International Conference on Learning Representations.
 - Yuan H, Ji S. Structpool: Structured graph pooling via conditional random fields[C]//Proceedings of the 8th international conference on learning representations. 2020.
 - Liu N, Jian S, Li D, et al. Hierarchical adaptive pooling by capturing high-order dependency for graph representation learning[J]. IEEE Transactions on Knowledge and Data Engineering, 2021, 35(4): 3952-3965.
 - Wu J, Chen X, Xu K, et al. Structural entropy guided graph hierarchical pooling[C]//International conference on machine learning. PMLR, 2022: 24017-24030.
 - Lee J, Lee I, Kang J. Self-attention graph pooling[C]//International conference on machine learning. pmlr, 2019: 3734-3743.
 - Ranjan E, Sanyal S, Talukdar P. Asap: Adaptive structure aware pooling for learning hierarchical graph representations[C]//Proceedings of the AAAI conference on artificial intelligence. 2020, 34(04): 5470-5477.
 - Zhang L, Wang X, Li H, et al. Structure-feature based graph self-adaptive pooling[C]//Proceedings of The Web Conference 2020. 2020: 3098-3104.
 - Ma Z, Xuan J, Wang Y G, et al. Path integral based convolution and pooling for graph neural networks[J]. Advances in Neural Information Processing Systems, 2020, 33: 16421-16433.
 - Gao H, Liu Y, Ji S. Topology-aware graph pooling networks[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2021, 43(12): 4512-4518.
 - Shu D W, Kwon J. Hierarchical bidirected graph convolutions for large-scale 3-D point cloud place recognition[J]. IEEE Transactions on Neural Networks and Learning Systems, 2023.
 

















