Creating Meaningful Graph Neural Network Explanations with Generative Causality Techniques
最编程
2024-01-27 20:23:32
...
- 总体流程
首先从计算图中蒸馏出因果图,然后将因果图作为标签训练图生成模型
- 蒸馏子图
假设实例i的计算图为,分别为节点集合、邻接矩阵以及特征矩阵,GNN的目标是学习出条件分布,实例i的二阶计算图如下图圈中所示。这里的实例i是节点,注意当实例为图时,计算图为整个图。生成解释的目标即为计算图学习出一个子图,该子图和预测结果是最相关的,即,这一过程称之为蒸馏子图。
给定计算图,表示模型的预测误差,表示从图中去掉边的预测误差,该边对实例的个体因果效应定义为模型误差的减少量
其中,,,
考虑到图的特殊结构,来自边的贡献并不是完全独立的,比如在上面的图里,j就同时是i的一阶和二阶邻居,为此,论文提出要使用一些graph rules,比如确保top-k因果贡献最高的边是相互连通的,得到的子图为。
- 作为解释器的图生成模型
论文使用了基于图卷积的编码器和内积解码器构成图自编码器来生成子图。具体过程是先用卷积模块学习到节点特征,然后计算因果邻接矩阵,每一个值表示对应边的因果贡献。
为了对节点的角色进行标记,论文使用了节点标记的技巧,中心节点标记为0,一阶邻居标记为1,如下图依次类推,并将这些标签转化为one-hot编码,在其他的链路预测以及图分类任务上,节点标记算法要做对应修改。