GNNExplainer: Generating Explanations for Graph Neural Networks 个人总结
写在前面:为方便阅读,尽量使用中文总结,对于翻译无把握或专有词汇,在中文后附上原文字段。此外,水平有限,对文章理解有偏差部分恳请大家海涵, 指正。
0. 原作信息
@inproceedings{ying2019gnnexplainer,
title={Gnnexplainer: Generating explanations for graph neural networks},
author={Ying, Zhitao and Bourgeois, Dylan and You, Jiaxuan and Zitnik, Marinka and Leskovec, Jure},
booktitle={Advances in Neural Information Processing Systems},
pages={9240--9251},
year={2019}
}
1. Contribution 本文贡献
-
提出第一款通用,模型无关的(model-agnostic)对于GNN模型的解释器GNNEXPLAINER
-
形式化描述GNNEXPLAINER为最大化互信息的优化任务
-
抽取重要的子图结构及节点特征子集,作为模型解释。
2. Background 背景信息
对于非图结构的神经网络,解释方法主要有如下两个方向:
- 为整个网络构建简单的代替模型
常为模型无关的(model-agnostic),在待解释样本点的局部建立可信的估计。
E.g., 线性模型如LIME,规则集合如ANN_DT
- 识别模型计算过程中的重要层面
E.g. 关注特征梯度(feature gradients)等。
对于图神经网络设计解释方法,除去节点特征外,还需要结合考虑图的结构特征。
3. Problem Formulation 问题定义
3.1 GNN回顾
抽象GNN基本操作如下:
给定GNN模型 Φ \Phi Φ , 对于 l l l 层节点 v v v的特征表达求取,共经过如下3步。
-
与其邻居节点进行信息传递:
m i j l = MSG ( h i l − 1 , h j l − 1 , r i j ) m_{i j}^{l}=\operatorname{MSG}\left(\mathbf{h}_{i}^{l-1}, \mathbf{h}_{j}^{l-1}, r_{i j}\right) mijl=MSG(hil−1,hjl−1,rij)
-
聚合邻居节点信息:
M i l = AGG ( { m i j l ∣ v j ∈ N v i } ) M_{i}^{l}=\operatorname{AGG}\left(\left\{m_{i j}^{l} | v_{j} \in \mathcal{N}_{v_{i}}\right\}\right) Mil=AGG({ mijl∣vj∈Nvi})
-
结合自身节点上层表达,生成本层节点表达
h i l = UPDATE ( M i l , h i l − 1 ) \mathbf{h}_{i}^{l}=\operatorname{UPDATE}\left(M_{i}^{l}, \mathbf{h}_{i}^{l-1}\right) hil=UPDATE(Mil,hil−1)
3.2 GNNEXPLAINER: Problem formulation
对于节点 v v v,其经过图神经网络后得到的embedding,由其对应的邻居节点及特征决定,分别计邻居组成的子图结构为 G c ( v )