GNNExplainer

GNNExplainer: Generating Explanations for Graph Neural Networks

1. Contribution 本文贡献

  • 提出第一款通用,模型无关的(model-agnostic)对于GNN模型的解释器GNNEXPLAINER
  • 形式化描述GNNEXPLAINER为最大化互信息的优化任务
  • 抽取重要的子图结构及节点特征子集,作为模型解释。

image-20231211103857083

2. Background 背景信息

对于非图结构的神经网络,解释方法主要有如下两个方向:

1.为整个网络构建简单的代替模型

常为模型无关的(model-agnostic),在待解释样本点的局部建立可信的估计。

E.g., 线性模型如LIME,规则集合如ANN_DT

2.识别模型计算过程中的重要层面

E.g. 关注特征梯度(feature gradients)等。

对于图神经网络设计解释方法,除去节点特征外,还需要结合考虑图的结构特征

3. Problem Formulation 问题定义

3.1 GNN回顾

抽象GNN基本操作如下:

给定GNN模型 Φ\Phi , 对于 ll 层节点vv的特征表达求取,共经过如下3步。

  1. 与其邻居节点进行信息传递:

    image-20231211113756040

  2. 聚合邻居节点信息:

Mil=AGG(mijlvjNvi)M_{i}^{l}=\operatorname{AGG} ( {m_{i j}^{l} | v_{j} \in \mathcal{N}*{v*{i}}})

  1. 结合自身节点上层表达,生成本层节点表达

3.2 GNNEXPLAINER: Problem formulation

摘要

三段话总结 gnn-explainer 做了什么。

  • 背景是:针对同质图的可解释性操作,和GNN模型结构无关,主要是分析 node feature 和节点信息聚合过程链路对模型预测的影响。模型支持单点解释和群体解释。
  • 模型的输入输出:以节点预测为例,单点解释也就是输入一个node,返回预测该node任务中贡献最大的子图+子图中节点特征,也就是可解释性输出的内容。群体解释就是输入一类节点,同样还是返回可解释性输出的内容。模型优化函数:优化整个 graph 的预测结果和 subgraph 的预测差,找到预测差最大的subgraph,即是解释出来的重要子图。
  • 评估:最终在合成数据集/真实数据集上进行评估,这里的评估方式是通过挖掘出和groundtruth类似的子图结构用于计算准确率。

img

举个实例,上图这个同质图分类任务,如果预测的人群类别是左图左上的篮球,那么GNN-explainer会抓出对打篮球这个预测结果贡献度最高的红色子图,也就是红色标明的球类运动,诸如排球/足球等;如果预测的人群类别是左图右下的航行,GNN-explainer会抓出对航行这个预测结果贡献度最高的绿色子图,也就是绿色标明的海边运动,诸如皮划艇/沙滩排球等。

问题定义

image-20240424174740235

img

GNNExplainer

单例解释

image-20240424174701585

后续还可以根据预测任务的不同类别,修改为条件期望

结合节点特征的单例解释

image-20240424174721821

单类群体解释

image-20240424174816564

实验结果分析

所有论文的实验过程和结果分析还是非常值得一看的,毕竟这是吹牛逼的核心区域,也是用来检验吹的好不好的唯一标准。 - 鲁迅

图可解释的方向,如何量化可解释性的效果是一个大难题。

本篇作为图可解释性的开篇之作,使用的评估方式是在合成数据集和真实数据集上,和attention类/grad梯度类的解释工作对比解释的子图结构的准确率。

终于到了讲解封面图的时候了!!!!!

如下图的合成数据集上,这里主要对比的是子图的结构,直接看下面A|B的实例说明,可以看到最右边的groundtruth给出的图结构中,仅有本篇论文做到了结构的完全解释,而grad/att得方法都是不全甚至完全不同结构的,自然得到的准确率非常低。

img

在真实数据集上,就没有量化指标惹,只能直接看实例,可以看到和合成数据集类似,本方法把groundtruth得结构都完整顺利得识别出来了。

img

在节点特征维度实例分析来看,可以看到att方法没有给出对应的节点特征维度,本篇方法同样是最佳的。同样,这里没有给出量化指标说明。

img

结论与延伸

作为开篇之作还是提供了非常完善的可解释性思路,并且拥有扩展性可以复用到不同的图任务图结构上。

可以改进的点粗略看下来有几条:

  • 首先,全篇看下来应该是在同质图上的可解释性方法,可以转化到异质图上尝试效果。
  • 其次,优化函数仅考虑到了结构的差异,可以尝试引入 attention 结构进行辅助优化。
  • 最后,评估部分有缺陷,目前只在合成数据集上给出了量化指标,且评估方式仅是通过比较结构的相似性。