Stanford大佬Rex Ying的文章:《GNNExplainer: Generating Explanations for Graph Neural Networks》
摘要
传统非图网络的可解释性方法包括两种:
第一种是制定简单的替代模型的完整神经网络。这可以用一种模型不可知论的方式来完成,通常是通过学习关于预测的局部置信度逼近,例如通过线性模型[29]或规则集来表示预测的充分条件[3,25,47];
第二种方法确定了计算的重要方面,例如,通过特征梯度[13,43],神经元对输入特征的反向传播[6,31,32],以及反事实推理[19]。然而,这些方法生成的显著性图[43]在某些情况下被证明具有误导性,并容易出现梯度饱和等问题[31,32]。这些问题在离散输入(如图邻接矩阵)中更加严重,因为梯度值可以只在非常小的间隔内非常大。正因为如此,这种方法不适合解释神经网络在图上做出的预测。
目前图网络的可解释性方法包括两种:
事后可解释性方法(post-hoc interpretability methods)[1,14,15,17,23,38]没有创建新的、固有的可解释性模型,而是将模型视为黑盒,然后探查相关信息。然而,还没有人做过利用关系结构(如图)的工作。缺乏解释图结构数据预测的方法是有问题的,因为在许多情况下,图上的预测是由节点和它们之间边的路径的复杂组合引起的。例如,在某些任务中,只有当图中存在另一条可选路径形成一个循环时,一条边才重要,而这两种特征只有结合起来考虑,才能准确预测节点标签[10,12]。因此,它们的共同贡献不能被建模为单个贡献的简单线性组合。
最近的GNN模型通过注意机制增强了可解释性[28,33,34]。然而,尽管学习到的边注意值可以指示重要的图结构,但对于所有节点的预测,这些值是相同的。因此,这与许多应用相矛盾,在这些应用中,边是预测一个节点标签的必要条件,而不是预测另一个节点的标签。此外,这些方法要么局限于特定的GNN架构,要么不能同时考虑图结构和节点特征信息来解释预测
GNNExplainer确定了紧凑的子图结构和在GNN预测中具有关键作用的节点特征子集。此外,GNNExplainer可以为整个类的实例生成一致和简洁的解释。我们将GNNExplainer定义为一个优化任务,它使GNN的预测和可能的子图结构分布之间的互信息最大化。 在合成图和真实图上的实验表明,我们的方法可以识别重要的图结构以及节点特征,并在解释精度上超过基线方法高达43.0%。 GNNExplainer提供了多种好处,从可视化语义相关结构到可解释性,以及洞察错误GNN的错误。
GNNExplainer优势:
(i)它可以增加对GNN模型的信任,(ii)它在越来越多的与公平、隐私和其他安全挑战[11]有关的决策关键应用中提高模型的透明度,(iii)它允许使用者获得对网络特征的理解,在将模型部署到现实世界之前,识别并纠正模型所犯的系统性错误模式
现有方法包括:
1)使用更简单的替代模型来局部拟合原模型,然后探究这些模型的解释性。
2)测试模型的相关特征,并找到了高层次特征的良好定性解释或是识别有影响力的输入实例。
然而,这些方法在合并关系信息(图的本质)方面做得不够。由于这一方面对于图上机器学习的成功至关重要,任何对GNN的预测的解释都应该利用图提供的丰富的关系信息以及节点特性。
GNNExplainer可以处理单实例和多实例解释。在单实例解释的情况下,GNNExplainer解释了一个GNN对一个特定实例的预测(例如,一个节点标签、一个新链接、一个图级标签)。在多实例解释的情况下,GNNExplainer也能提供解释,以一致地解释一组实例(例如,给定类的节点)。GNNExplainer将已训练GNN的整个图的丰富子图来进行解释,以便子图最大程度地利用GNN的预测交互信息。这是通过建立一个平均场变分逼近(mean field variational approximation)和学习一个实值图掩码(learning a real-valued graph mask)来选择GNN计算图的重要子图来实现的。同时,GNNExplainer还学习了一个特性掩码,它掩盖了不重要的节点特性(图1)
GNNExplainer旨在生成对预测结果影响最大的图和节点特征
给定一个训练好的GNN模型Φ和一个预测(例如,单实例解释,第4.1和4.2节)或一组预测(例如,多实例解释,第4.3节),GNNExplainer将通过识别对模型Φ的预测最有影响的子图和节点特征来生成解释在解释一组预测的情况下,GNNExplainer将聚合集合中的单个解释,并自动用一个范例总结它。最后,我们讨论了GNNExplainer如何用于图上的任何机器学习任务,包括链接预测和图分类
GNNExplainer的工作原理可以形式化为以下公式:
其中MI量化了当v的图网络仅包含子图Gs,其节点特征仅包含Xs时的预测概率的变化。
例如,考虑邻点,当从图中去除Vj时,预测概率下降明显,则称Vj是Vi预测的反事实推理的良好解释(good counterfactual explanation);同样地,当去除之间的边,Vi的预测概率下降明显,则称该边是Vi预测的反事实推理的良好解释。
由于(1)中的交叉熵项H(Y)是恒定值(因为已训练好的模型是固定的),因此要最大化MI,只需最小化条件熵,其形式为:
简单来说,就是找到最重要的子图(为了更加紧凑与有代表性,限定子图的节点数为Km,),并且把这些子图去掉会最小化预测概率。在实际上,这些子图传递着最多交互信息
GNNExplainer优化: GNNExplainer直接优化是不容易处理的,因为Gc有指数级多的子图GS,遍寻这些子图是非常耗时的。于是考虑Gs的部分邻接矩阵,即。并强制子图约束为。这种连续弛豫continuous relaxation可以解释为Gc子图分布的变分近似。特别地,如果我们将GS ~ G视为随机图变量,则式(2)中的目标函数变为:
在凸性假设下,Jensen不等式给出了以下上界:
为了可柔性估计(tractably estimate)EG,我们使用平均场变分近似(mean-field variational approximation),并将G分解为多元伯努利分布:。这使得我们可以根据平均场近似估计期望,从而得到AS,其中(j, k)第一个项表示是否存在边(vj, vk)的期望。我们从经验上观察到,尽管GNN具有非凸性,但该近似加上一个促进离散性的正则化器[40]仍能收敛到良好的局部极小值。最后,我们利用梯度下降法优化了GNNEXPLAINER目标的计算效率版本如下
图结构信息与节点特征信息的联合学习
为了确定哪些节点特征对预测y最重要, GNNExplainer学习了解释子图GS中节点的特征选择器F。GNNExplainer没有将Xs定义为由所有节点特征组成(意思就是没有考虑全部节点特征),即,而是认为是GS中节点特征的子集,通过二进制特征选择器(相对于掩码),如图2B所示
其中具有不被F掩盖的节点特征,解释子图Gs以及特征Xs被共同优化以最大化互信息目标:
表示从Eq.(1)中考虑结构和节点特征信息来生成预测yˆ
学习二元特征掩码选择器F。将表示为。直观上看,如果某一特征不重要,GNN的权值矩阵中对应的权值会趋近于零。实际上,这意味着屏蔽掉这部分特征并不会降低y的预测概率。相反,如果特征很重要,那么屏蔽掉特征会降低预测概率。然而,这种方法的问题是,某一特征值接近于零,它就会忽略了对预测很重要的特征。为了解决这个问题,我们边缘化了所有的特征子集,并在训练[48]期间使用蒙特卡洛估计从Xs中节点的经验边缘分布中采样。进一步,我们使用一个重新参数化的技巧[20]将Eq.(7)中的梯度反向传播到特征掩码F。特别是,通过反向传播d维随机变量X,可以对其重新参数化:,s.t. 其中Z是一个从经验分布中采样的d维随机变量,KF是一个代表解释中要保留的特征的最大数量的参数。
实验结果: