《StructPool Structured Graph Pooling via Conditional Random Fields》阅读笔记

本文提出了STRUCTPOOL,一种新的图池化技术,将图池化转化为节点聚类问题。通过结合节点特征和拓扑信息,利用条件随机场学习簇分配,从而生成更具有表达力的图表示。实验表明,STRUCTPOOL在多个数据集上表现出优越性能,尤其在考虑高阶图结构时效果更佳。该方法可以被集成到图神经网络中,提升图分类任务的预测能力。
摘要由CSDN通过智能技术生成

一.概述

本文作者提出了一种获取图级(graph-level)表示的新图池化(graph pooling)——STURCTPOOL。通过STRUCTPOOL将图池化视为节点聚簇问题,通过其可以对原始图的节点进行聚簇,然后基于此生成一个新图,新图上的每个节点都由原始图上一个簇的节点生成。在聚簇的过程中,不仅考虑了节点的特征,还考虑了其它节点的簇分配(一种拓扑信息,通过条件随机场获得)。作者在多个数据集上进行实验,证明了通过STRUCTPOOL可以获取到更具表达力的图表示。

二.STRUCTURED GRAPH POOLING

2.1 图和图卷积的定义

:图 G G G可以用其邻接矩阵 A = { 0 , 1 } n × n A = \{0,1\}^{n \times n} A={0,1}n×n和特征矩阵 X ∈ R n × c X \in \mathbb{R}^{n \times c} XRn×c表示,其中 n n n表示图中的节点数, c c c表示节点特征的维数。

作者使用的图卷积与标准的GCN略有不同,其公式如下所示:
X i + 1 = f ( D − 1 A ^ X i P i ) (1) X_{i+1}=f\left(D^{-1} \hat{A} X_{i} P_{i}\right) \tag{1} Xi+1=f(D1A^XiPi)(1)
其中 A ^ = A + I \hat{A} = A + I A^=A+I表示加了自环的邻接矩阵, X i ∈ R n × c i X_i \in \mathbb{R}^{n \times c_i} XiRn×ci表示第 i i i个卷积层后的节点表示, P i ∈ R c i × c i + 1 P_i \in \mathbb{R}^{c_i \times c_{i + 1}} PiRci×ci+1是可学习的特征变换矩阵, f f f表示非线性激活函数。

2.2 通过节点聚簇进行图池化

作者考虑通过节点聚类(node clustering)来进行图池化。原始图 G G G中的节点被划分到 k k k个簇中,每个簇都被转换为新图上的一个节点。假定图池化生成一个包含 k k k个节点的新图 G ~ \tilde{G} G~,该图对应的表示为 X ~ ∈ R k × c ~ \tilde{X} \in \mathbb{R}^{k \times \tilde{c}} X~Rk×c~ A ~ ∈ { 0 , 1 } k × k \tilde{A} \in \{0,1\}^{k \times k} A~{0,1}k×k

聚簇问题可以被表示为一个分配矩阵 M ∈ R n × k M \in \mathbb{R}^{n \times k} MRn×k。对于硬分配 m i , j ∈ { 0 , 1 } m_{i,j} \in \{0,1\} mi,j{0,1}表示是否节点 i i i属于簇 j j j。对于软分配 m i , j ∈ [ 0 , 1 ] m_{i,j} \in [0,1] mi,j[0,1]表示节点 i i i属于簇 j j j的概率,且 ∑ j m i , j = 1 \sum_{j}m_{i,j} = 1 jmi,j=1

原始图到新图 G ~ \tilde{G} G~的转换公式如下:
X ~ = M T X , A ~ = g ( M T A M ) (2) \tilde{X}=M^{T} X, \tilde{A}=g\left(M^{T} A M\right) \tag{2} X~=MTX,A~=g(MTAM)(2)
其中 g ( ⋅ ) g(\cdot) g()是一个函数,当 a ~ i , j > 0 \tilde{a}_{i,j} > 0 a~i,j>0时, g ( a ~ i , j ) = 1 g(\tilde{a}_{i,j})=1 g(a~i,j)=1,否则 g ( a ~ i , j ) = 0 g(\tilde{a}_{i,j})=0 g(a~i,j)=0

2.3 通过条件随机场学习簇分配

节点特征描述了不同节点属性,具有相似特征的节点有更高的概率被分配到同一个簇里。也就是说,任何节点的簇分配不仅依赖于节点的特征矩阵 X X X还取决于其它节点的簇分配。作者认为高阶图结构信息对于graph pooling是有用的,应该在学习簇分配时被显式捕获。为此作者提出名为STRUCTPOOL的图池化,其考虑通过特征矩阵 X X X和不同节点分配间的关系来生成分配矩阵。作者将其表示为条件随机场(Conditional Random Field, CRF)问题。

X X X为观测值,定义 Y = { Y 1 , . . . , Y n } Y = \{Y_1,...,Y_n\} Y={Y1,...,Yn}为随机场,其中 Y i ∈ { 1 , . . . , k } Y_i \in \{1,...,k\} Yi{1,...,k}是一个随机变量,表示节点 i i i被分配的簇,则
P ( Y ∣ X ) = 1 Z ( X ) exp ⁡ ( − ∑ c ∈ C G ′ ψ c ( Y c ∣ X ) ) (3) P(Y \mid X)=\frac{1}{Z(X)} \exp \left(-\sum_{c \in C_{G^{\prime}}} \psi_{c}\left(Y_{c} \mid X\right)\right) \tag{3} P(YX)=Z(X)1expcCGψc(YcX)(3)
其中 c c c表示一个团, C G ′ C_{G'} CG表示 G ′ G' G上的团集合。 Z ( X ) Z(X) Z(X)是划分函数, ψ c ( ⋅ ) \psi_c(\cdot) ψc()是由 c c c诱导的势(potential)函数。然后对一个分配 y = { y 1 , . . . , y n } y=\{y_1,...,y_n\} y={y1,...,yn}的Gibbs能量函数可以定义为:
E ( y ∣ X ) = ∑ c ∈ C G ′ ψ c ( y c ∣ X ) (4) E(y|X) = \sum_{c \in C_{G'}} \psi_c(y_c | X) \tag{4} E(yX)=cCGψc(ycX)(4)
寻找一个最优分配相当于最大化 P ( Y ∣ X ) P(Y|X) P(YX),也相当于最小化Gibbs能量

2.4 带拓扑信息的Gibbs Energy

C G ′ C_{G'} CG表示在图 G ′ G' G上定义的团集(clique set),作者使用 C G ′ C_{G'} CG上的一元(unary)团(只包含一个节点的团)。作者基于** ℓ \ell -hop连接性**来定义成对的团。 A ℓ ∈ { 0 , 1 } n × n A^{\ell} \in\{0,1\}^{n \times n} A{0,1}n×n表示图 G G G ℓ \ell -hop连接性,若 a i , j ℓ = 1 a^{\ell}_{i,j}=1 ai,j=1,则表示节点 i i i和节点 j j j ℓ \ell -hop内可达。因此若 ( i , j ) ∈ C G ′ (i,j) \in C_{G'} (i,j)CG是成对团,则 a i , j ℓ = 1 a^{\ell}_{i,j}=1 ai,j=1。基于此,关于簇分配 y y y的Gibbs能量可以形式化为:
E ( y ) = ∑ i ψ u ( y i ) + ∑ i ≠ j ψ p ( y i , y j ) a i , j ℓ (5) E(y)=\sum_{i} \psi_{u}\left(y_{i}\right)+\sum_{i \neq j} \psi_{p}\left(y_{i}, y_{j}\right) a_{i, j}^{\ell} \tag{5} E(y)=iψu(yi)+i=jψp(yi,yj)ai,j(5)
其中

  • ψ u ( y i ) \psi_{u}\left(y_{i}\right) ψu(yi)表示节点 u u u分配给簇 y i y_i yi的一元能量。
  • ψ p ( y i , y j ) \psi_{p}\left(y_{i}, y_{j}\right) ψp(yi,yj)为成对能量,表示将节点 i , j i,j i,j分别分配给簇 y i , y j y_i,y_j yi,yj的能量。

为了简单起见,公式(5)中去掉了条件 X X X

作者使用神经网络来获取上述两种能量。

对于一元能量 Ψ u ∈ R n × k \Psi_{u} \in \mathbb{R}^{n \times k} ΨuRn×k,作者在节点特征矩阵 X X X上应用多层图卷积来获取。


已经工作采用高斯核来计算成对能量,基于此成对能量可以被表示为:
ψ p ( y i , y j ) = μ ( y i , y j ) ∑ m = 1 K w ( m ) k ( m ) ( x i , x j ) (6) \psi_{p}\left(y_{i}, y_{j}\right)=\mu\left(y_{i}, y_{j}\right) \sum_{m=1}^{K} w^{(m)} k^{(m)}\left(x_{i}, x_{j}\right) \tag{6} ψp(yi,yj)=μ(yi,yj)m=1Kw(m)k(m)(xi,xj)(6)
其中 k ( m ) ( ⋅ , ⋅ ) k^{(m)}(\cdot, \cdot) k(m)(,)表示第 m m m个高斯核, x i x_i xi即节点 i i i X X X中对应的特征向量, w ( m ) w^{(m)} w(m)是可学习的权重参数, μ ( y i , y j ) \mu(y_i,y_j) μ(yi,yj)相容性(compatibility)函数,可以用来建模不同分配对间的相容性。但由于精确计算高斯核的输出计算效率比较低,因此作者提出用注意力矩阵来作为成对能量的度量。高斯核反映了不同特征向量之间的联系有多强,注意力矩阵反映了不同特征向量之间的相似性,这两者有相似之处,且后者的计算成本显著降低。基于此,成对能量定义如下:
ψ p ( y i , y j ) = μ ( y i , y j ) x i T x j ∑ k ≠ i x i T x k (7) \psi_{p}\left(y_{i}, y_{j}\right)=\mu\left(y_{i}, y_{j}\right) \frac{x_{i}^{T} x_{j}}{\sum_{k \neq i} x_{i}^{T} x_{k}} \tag{7} ψp(yi,yj)=μ(yi,yj)k=ixiTxkxiTxj(7)
作者指出公式(5)的优化是比较困难的,因此使用了一种平均场近似(mean field approximation),它是一种迭代更新算法。作者使用mean field approximation可以获取最可能的簇分配。

2.5 STRUCTPOOL总结

STRUCTPOOL算法如下所示:

algorithm

作者指出该算法可以用GNN操作来实现:

  • 一元能量矩阵 Ψ \Psi Ψ可以通过几层GCN卷积来获取;
  • 正则化操作(Algorithm1中的3&9)等价于softmax操作;
  • 相容性函数 μ ( i , j ) \mu(i,j) μ(i,j)可以实现为可训练矩阵 N ∈ R k × k \mathcal{N} \in \mathbb{R}^{k \times k} NRk×k
  • 其它步骤可以通过矩阵乘法来实现。

STRUCTPOOL可视化为:

visual

其中原始图 G G G包含6个节点,颜色表示其特征,从该图可以看出一元能量矩阵是通过GCNs获取的,成对能量是使用节点特征 X X X和拓扑信息 A A A获取的注意力矩阵。然后执行迭代更新,通过mean field approximation来生成最可能的分配矩阵。最终得到新生成的图 G ~ \tilde{G} G~

在图分类中,首先通过STRUCTPOOL可以获取到每个图的 k k k个向量,然后应用1维卷积和全连接层来进行分类。

三.实验

测评的benchmark数据集统计特征如下:

dataset

不同池化技术的结果为:

pools

结论:STRUCTPOOL处于SOTA地位。

不同迭代更新次数的结果为:

itera

结论:随着迭代次数的增加,性能也变得更好。

拓扑信息的影响实验结果为:

topology

结论 ℓ \ell 越大,更多的成对关系被考虑,性能越好。

在GIN中整合STRUCTPOOL结果为:

gins

结论:在GIN中加入STRUCTPOOL可以显著提升预测性能。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

斯曦巍峨

码文不易,有条件的可以支持一下

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值