AAAI2022的文章 “KerGNNs: Interpretable Graph Neural Networks with Graph Kernels”。该文提出了一种基于子图的节点聚合算法KerGNNs,将GNN和图核整合在一个框架中,充分发挥两种方法的优势。
受到CNN的启发,KerGNN采用可训练的隐藏图作为图滤波器,与子图计算更新节点的embedding。作者还证明了MPNN是KerGNN的特例。在KerGNNs中,经过训练的图滤波器可以显示数据集的局部图结构,与传统的GNN模型相比,这大大提高了模型的可解释性。
引言
近年来,机器学习领域投入了大量精力将图神经网络应用于众多下游的图相关任务。对于这些图结构任务,不同GNN变体之间的共同点是消息传递神经网络MPNN。对于图分类任务,MPNN由两个阶段组成:邻域聚合(neighborhood aggregation)和图级别读出(graph-level readout)。具体来说,对于邻域聚合,每个节点都有三个步骤来生成嵌入:
- 接收邻居节点的消息;
- 聚合消息;
- 更新节点自身特征(对局部结构信息编码);
对于图级别任务,使用置换不变读出函数(permutation-invariant readout function)从整个图中提取特征表示。事实上,MPNN是作为Weisfeiler-Lehman(WL)算法的连续可微形式而产生的。然而,最近的研究表明,MPNN在图同构测试方面最多与WL内核和WL算法一样好。这证明了主流GNN表达能力的局限性。例如,图a显示了两个无法用1-WL算法区分的图,因此MPNN也无法区分它们(图的同构检验)。
- 图a:1-WL图同构检验(检验两个图是否同构)不能区分一个六边形和两个三角形,而基于子图的方法可以根据不同的子图拓扑找到差异。
- 图b:黄色阴影表示节点 v v v的子图。在与图滤波器交互后,更新的节点被涂成蓝色。
在GNNs出现之前,图核是解决图分类任务最广泛使用的技术。图核度量图之间的相似性。核函数不需要在高维空间中嵌入学习节点,只需在低维特征空间中计算核值,就可以在高维特征空间中操作,比直接在高维空间中计算更高效。由于基于核的方法在经验上的成功以及图结构数据集的可用性不断提高,已经提出了许多图核方法。 然而,由于其手工制作的特征和固定的特征构造方案,图内核仍然存在局限性,这可能无法有效地捕获大图上的高维信息(例如,复杂的节点交互)。
为了解决上述问题并提高GNNs的表达能力,作者提出了一种基于子图的节点聚合算法,将GNNs和图核结合到一个框架中,从而可以利用这两种方法的优点。一方面,对于邻域聚合,使用图核结合由节点邻域构成的子图进行计算,这样表达能力就不会受到使用多个相邻节点集的1-WL同构测试的限制。图a中显示了一个示例,其中我们注意到两个图中的节点1具有相同的邻域集,但其邻域会产生不同的子图拓扑,这些拓扑可以通过图核来区分。另一方面,图核的特征构造方案可以按照标准的GNN训练框架进行训练,实现更大的应用性。
基于子图的节点聚合,作者提出了一种新的GNN框架,称为KerGNNs。具体来说:
- 首先在每一层中引入一组可训练的隐藏图,称为图滤波器。输入图中的每个节点都与包含其局部拓扑信息的子图相关联。
- 然后,采用图核函数来比较图滤波器和输入子图的相似性,并使用计算出的核值更新各自节点的特征表示(如图b所示)。
- 作者证明了kerGNNs提供了一种新的核视角,可以将标准的CNN结构扩展到图域,并推广了大多数MPNN。然后用各种实际的图和节点分类任务对所提出的模型进行了评估,结果表明,与许多现有的最先进的模型相比,kerGNNs具有更好的性能。
- 为了更好地理解基于GNN的方法的预测,KerGNNs可以进一步可视化经过训练的图滤波器,类似于CNN中的可视化滤波器,从而与现有GNN相比,为各种图相关任务提供更好的可解释性。
关于相关工作:
- 有几项工作致力于通过引入空间、层次和高阶GNN变体来提高GNN的表达能力。
- 图核和GNN可以在同一个框架中组合。一些文章在不同阶段应用了图核和神经网络。也有使用GNN架构设计图核的工作。
- 关于图任务的可解释性:图结构和特征信息都会引入复杂的GNN模型,这使得人们很难理解预测结果。因此,GNN模型的透明度和可解释性是需要解决的重要问题。除了像常规GNN一样可视化输出的图外,KerGNN还提供经过训练的隐藏图,作为训练的副产品,无需额外计算,其中包含有用的结构信息,显示整个数据集的共同特征,而不是一个特定的图,并有助于解释GNN的预测。
方法
KerGNNs
文章首先定义节点和子图的嵌入表示以及节点映射函数。给定一个图 G = ( V , E ) G=(V,E) G=(V,E),节点特征由映射函数 ϕ : V → R d \phi:V\rightarrow R^{d} ϕ:V→Rd进行mapping,该函数将每个节点 v ∈ V v\in V v∈V映射为向量 ϕ ( v ) ∈ R d \phi(v)\in R^{d} ϕ(v)∈Rd。图的映射函数为 Φ : G s e t → R d ′ \Phi:G_{set}\rightarrow R^{d'} Φ:Gset→Rd′,其中, G s e t G_{set} Gset是图 G G G的集合 G ∈ G s e t G\in G_{set} G∈Gset。
对于 L L L层神经网络中的每个隐藏层 l l l,输入时一个无向图 G = ( V , E ) G=(V,E) G=(V,E),每个节点 v v v对应特征为 ϕ l − 1 ( v ) ∈ R d l − 1 \phi_{l-1}(v)\in R^{d_{l-1}} ϕl−1(v)∈Rdl−1,输出也是相同的图,其中每个节点的特征更新为 ϕ l ( v ) ∈ R d l \phi_{l}(v)\in R^{d_{l}} ϕl(v)∈Rdl。受到CNN滤波器的启发,作者在每个KerGNN层定义一组图滤波器提取输入图中每个节点周围的局部结构信息。
在第 l l l层的第 i i i个图滤波器是一个图 H i ( l ) H_{i}^{(l)} Hi(l)(包含 n i ( l ) n_{i}^{(l)} ni(l)个节点),在数学上,这个图滤波器是可学习的参数(邻接矩阵 A i ( l ) ∈ R n i ( l ) × n i ( l ) A_{i}^{(l)}\in R^{n_{i}^{(l)}\times n_{i}^{(l)}} Ai(l)∈Rni(l)×ni(l),以及节点属性矩阵 W i ( l ) ∈ R n i ( l ) × d l − 1 W_{i}^{(l)}\in R^{n_{i}^{(l)}\times d_{l-1}} Wi(l)∈Rni(l)×dl−1);
对于一层KerGNN层,图 G G G中每个节点 v v v,都有一个子图 G v = ( V v , E v ) G_{v}=(V_{v},E_{v}) Gv=(Vv,Ev)和节点特征 { ϕ 0 ( u ) : u ∈ V v } \left\{\phi_{0}(u):u\in V_{v}\right\} {ϕ0(u):u∈Vv},通过每层的图滤波器 { H i ( 1 ) : i = 1 , . . . , d 1 } \left\{H_{i}^{(1)}:i=1,...,d_{1}\right\} {Hi(1):i=1,...,d1}以获得节点在该层的输出 ϕ 1 ( v ) \phi_{1}(v) ϕ1(v),计算公式为: ϕ 1 , i ( v ) = K ( G v , H i ( 1 ) ) ∈ R \phi_{1,i}(v)=K(G_{v},H_{i}^{(1)})\in R ϕ1,i(v)=K(Gv,Hi(1))∈R其中, K ( ⋅ ) K(\cdot) K(⋅)是随机游走核函数,通过计算子图和每个图滤波器的相似性,可得到该层的输出。
对于多层KerGNN,通过叠加单层KerGNN和readout层来构建多层KerGNN。 l l l层的输入是带有节点特征 { ϕ l − 1 ( v ) : v ∈ V } \left\{\phi_{l-1}(v):v\in V\right\} {ϕl−1(v):v∈V}, l l l层包含 d l d_{l} dl个图滤波器 { H i ( l ) : i = 1 , . . . , d l } \left\{H_{i}^{(l)}:i=1,...,d_{l}\right\} {Hi(l):i=1,...,dl},每个图滤波器有一个可训练的邻接矩阵 A i ( l ) A_{i}^{(l)} Ai(l)和节点属性矩阵 W i ( l ) W_{i}^{(l)} Wi(l),图 G G G中节点 v v v的输出特征的第 i i i维的值可通过下属公式计算: ϕ l , i ( v ) = K ( G v , H i ( l ) ) ∈ R \phi_{l,i}(v)=K(G_{v},H_{i}^{(l)})\in R ϕl,i(v)=K(Gv,Hi(l))∈R对于图分类,作者设置了图级别的readout为图生成embedding。通过对所有节点的embedding求和,得到每一层的图表示。为了利用模型每一层信息,将所有层的图表示连接: Φ ( G ) = c o n c a t ( ∑ v ∈ V ϕ l ( v ) ∣ l = 0 , 1 , . . . , L ) \Phi(G)=concat(\sum_{v\in V}\phi_{l}(v)|l=0,1,...,L) Φ(G)=concat(v∈V∑ϕl(v)∣l=0,1,...,L)
时间复杂度分析
大多数MPNN的时间复杂度为 O ( n 2 ) O(n^{2}) O(n2),如果邻接矩阵是稀疏的且包含 m m m个非零值,则复杂度为 O ( m ) O(m) O(m)。在KerGNN中,由于更新节点 v v v的嵌入涉及 n v n_{v} nv个邻居, n v n_{v} nv是节点 v v v的度。KerGNN是将图核应用在子图 G v G_{v} Gv上,而不是整个图,因此计算复杂度与每个子图的复杂度相关。对于 G v G_{v} Gv,有 n v + 1 n_{v}+1 nv+1个节点,邻接矩阵有 m v m_{v} mv个非零值。时间复杂度为: O ( P d ( d ′ n G F ( n G F + n v + 1 ) + m v ) ) O(Pd(d'n_{GF}(n_{GF}+n_{v}+1)+m_{v})) O(Pd(d′nGF(nGF+nv+1)+mv))其中, P P P是随机游走的最大长度, d d d和 d ′ d' d′是当前层和下一层的节点特征维度, n G F n_{GF} nGF是每个图滤波器的节点数。在无向子图中, m v m_{v} mv表示边的数量,并且有 n v < m v < n v ( n v − 1 ) / 2 n_{v}<m_{v}<n_{v}(n_{v}-1)/2 nv<mv<nv(nv−1)/2。将整个图中所有节点的计算时间相加,KerGNN的时间复杂度将介于 O ( n 2 ) O(n^{2}) O(n2)和 O ( n 3 ) O(n^{3}) O(n3)之间。
实验
实验结果
作者在八个公开可用的图分类数据集上评估模型性能。结果如下表所示。从结果可以看到,KerGNNs比传统的基于1-WL算法的GNN具有更好的性能,而与高阶GNN具有相似的性能,且运行时间更短。单层的KerGNN模型在IMDB这样的小图上表现得很好。对于更大的图,具有更多层或具有深度随机游走核的更深层模型性能更好。其中,OOR代表资源不足(包括时间和显存开销)。
同时,作者还分析了不同参数对模型性能的影响。其中图滤波器的最优参数对于不同的数据集是不同的,这取决于不同类型图的局部结构。对于随机游走长度,除了ENZYMES数据集外,在其他数据集上,较长的游走长度一般有利于分类结果。此外,DD和ENZYMES数据集上可以通过更大的子图实现更高的精度,因为更大的子图包含更多丰富的邻域拓扑信息。其余的数据集不会受到太大的影响,因为作者固定了图滤波器的大小,当子图大小和图滤波器大小不匹配时,模型性能会下降,例如,小型图滤波器无法处理较大的子图。
上图结果是在1 fold(1折)数据集上得到的,对于上面三个图,只有横轴上的参数改变,其余参数保持不变。
可解释性
作者可视化了MUTAG和REDDITB数据集训练的图滤波器。其中MUTAG数据集包含188种化合物,根据它们对细菌的诱变作用分为两类,数据集中的MUTAG图大部分由6个碳原子组成的环结构组成。与标准GNN变体相比,KerGNN具有图滤波器作为额外的信息,以帮助解释模型的预测。为了使图滤波器可视化,作者从训练好的KerGNN层提取每个图滤波器的邻接矩阵和节点属性矩阵。然后采用ReLU函数来修剪不重要的边。对于MUTAG数据集,从下图可以看到大多数图滤波器都有环形结构,类似于输入图的碳环,有些图滤波器有较小的连接环,类似于连接的碳环。KerGNN层利用图滤波器中的这些环来匹配输入图中的局部结构模式(例如碳环),这说明了碳环在诱变效应中的重要性,这也与输出图中的观察相一致。
上图a来自MUTAG数据集,图b来自REDDIT-B数据集,在图滤波器和输出的图中,节点颜色表示属性值的相对大小。