论文信息
论文标题:DAG Matters! GFlowNets Enhanced Explainer For Graph Neural Networks
论文作者:李文倩、李银川、李志刚、郝建业、庞燕
论文来源:ICLR 2023
论文地址:link
论文代码:link
Abstract
一、研究背景与核心问题
- 聚焦图神经网络(GNN)预测逻辑解释这一关键研究方向,该方向近年来关注度持续提升,核心需求是揭示 GNN 模型做出预测背后的合理依据(rationales)。
- 明确现有研究的主流思路:通过组合优化(combinatorial optimization) 从原始图中筛选出一个子图(subgraph),用该子图作为对 GNN 预测的忠实解释(faithful explanations),即认为子图是影响预测结果的关键结构。
- 候选子图规模爆炸:由于图结构中可能的子图数量呈指数级增长(exponential size),导致当前主流方法(state-of-the-art methods)在处理大规模 GNN 时适用性受限(limits the applicability),难以高效筛选出关键子图。
1. 方法思路革新
- 摒弃传统 “组合优化筛选子图” 的思路,转向生成式框架:提出基于生成流网络(GFlowNets)的 GNN 解释器 ——GFlowExplainer,将 “子图筛选优化问题” 转化为 “逐步生成子图问题(step-by-step generative problem)”。
2. GFlowExplainer 核心目标
- 学习一种策略(policy),该策略能生成一个子图分布(distribution of subgraphs),且分布中每个子图的概率与该子图的奖励(reward) 成正比(proportional to its reward)。
- 奖励设计的核心逻辑:奖励值反映子图对 GNN 预测的重要性,概率与奖励挂钩可确保生成的子图更可能是影响预测的关键结构。
3. 方法的两大关键优势
- 消除节点序列影响:由于 GFlowExplainer 的生成逻辑基于有向无环图(DAG)结构,能整合不同节点序列生成同一子图的轨迹信息,因此无需任何预训练策略(no pre-training strategies needed),解决了部分现有方法(如基于强化学习的解释器)依赖预训练的问题。
- 适配大规模场景:提出一种新的割点矩阵(cut vertex matrix),该矩阵能高效探索 GFlowNets 结构中的父状态(parent states),大幅降低父状态探索的计算复杂度,使方法可应用于大规模 GNN 场景。
三、实验验证与结论
1. 实验设计范围
- 在合成数据集(synthetic datasets) 和真实数据集(real datasets) 上均开展了大量实验(extensive experiments),覆盖节点分类、图分类等典型 GNN 任务场景。
2. 实验结果结论
- 定性结果(qualitative results):从子图可视化角度,GFlowExplainer 生成的解释子图能更准确匹配真实关键结构(如 motif),无关节点 / 边更少,解释直观性更强。
- 定量结果(quantitative results):以 AUC(衡量子图与真实关键结构匹配度)等指标衡量,GFlowExplainer 性能显著优于现有主流基线方法(如 GNNExplainer、RGExplainer),证明了方法的优越性(superiority)。
四、核心价值总结
维度
|
具体价值
|
方法创新
|
首次将 GFlowNets 生成能力引入 GNN 解释领域,实现 “优化问题→生成问题” 的范式转换
|
实用性提升
|
消除预训练依赖、通过割点矩阵适配大规模场景,降低方法落地门槛
|
解释性能
|
从定性、定量双重维度验证解释的忠实性与准确性,优于现有主流方法
|
1 introduction
一、GNN 的研究背景与应用基础
1. GNN 的广泛关注与核心价值
-
关注动因:随着现实世界中图结构数据(如社交网络、化学分子)的大量涌现(springing up),图神经网络(GNNs)因能有效利用图的结构与节点特征信息,受到学术界与工业界的广泛关注(widespread attention)。
-
典型任务覆盖:目前 GNN 相关研究已广泛覆盖多种图任务,核心包括:
-
节点分类(node classification):如识别社交网络中用户的兴趣类别、分子中原子的属性标注等,相关代表性研究包括 Henaff et al. (2015)、Liu et al. (2020)。
-
图分类(graph classification):如判断分子是否具有某种化学性质(如致突变性)、区分不同类型的社交网络拓扑等,代表性研究包括 Zhang et al. (2018)。
2. GNN 研究的关键缺口:预测逻辑解释
-
缺口定位:尽管 GNN 在各类图任务中性能优异,但揭示 GNN 预测背后的合理依据(uncovering rationales behind predictions) 这一方向的探索相对不足(relatively less explored)。
-
解释需求的必要性:在医疗、化学等关键领域,仅获得 GNN 的预测结果不够,需明确 “哪些输入特征(节点 / 边)主导了预测”,才能确保模型决策的可信任性与可解释性,因此 GNN 解释方法逐渐进入公众视野(gradually stepped into the public eye)。
二、GNN 解释方法的分类框架
1. 两大核心分支
根据解释对象与范围的差异,现有 GNN 解释方法分为两大分支(Yuan et al. (2022)):
-
模型级解释(model-level explanations):旨在揭示 GNN 模型整体的决策逻辑与通用模式,如 “模型倾向于关注图中的哪些拓扑结构(如环、星型结构)进行分类”,适用于理解模型的全局行为。
-
实例级解释(instance-level explanations):针对单个输入实例(如某个具体分子、某个特定节点),识别对该实例预测结果起关键作用的输入特征,是本文的核心研究方向(we mainly focus on instance-level explanations)。
2. 实例级解释的四大子分支
实例级解释通过定位单个实例的关键输入特征实现解释,具体可细分为四类,文中逐一梳理了各类方法的核心逻辑与代表性研究:
子分支类型
|
核心原理
|
代表性研究
|
基于梯度 / 特征(Gradients/Features-based)
|
计算模型预测结果对输入特征(节点 / 边特征)的梯度,或直接将高层特征映射回输入,以梯度大小 / 特征映射权重衡量特征重要性
|
Zhou et al. (2016)、Baldassarre & Azizpour (2019)、Pope et al. (2019)
|
基于扰动(Perturbation-based)
|
通过扰动输入特征(如删除某条边、遮蔽某个节点),观察 GNN 预测结果的变化,变化越大则该特征越关键
|
Ying et al. (2019)、Luo et al. (2020)、Schlichtkrull et al. (2020)、Wang et al. (2020)
|
基于分解(Decompose-based)
|
将 GNN 的预测结果分解为各输入特征的贡献项,通过贡献项大小判断特征重要性,本质是 “反向追溯预测的来源”
|
Baldassarre & Azizpour (2019)、Schnake et al. (2020)、Feng et al. (2021)
|
基于代理模型(Surrogate-based)
|
围绕待解释实例采样邻域数据,训练一个简单可解释的代理模型(如线性模型、决策树)拟合 GNN 在该邻域的预测行为,通过代理模型的参数解释关键特征
|
Vu & Thai (2020)、Huang et al. (2022)、Yuan et al. (2022)
|
3. 强化学习在解释中的应用
-
部分研究尝试将强化学习(RL)引入 GNN 解释,如:
-
XGNN(Yuan et al. (2020)):用于模型级解释,将 “学习模型全局解释模式” 转化为强化学习的奖励优化问题。
-
RGExplainer(Shan et al. (2021)):用于实例级解释,通过智能体迭代选择节点生成子图,以子图对预测的影响为奖励训练策略。
三、现有实例级解释方法的核心缺陷
1. 组合优化与大规模场景的矛盾
-
核心问题:现有方法(尤其是基于扰动、代理模型的方法)本质是 “从所有可能的子图中筛选最优关键子图”,而子图的候选数量随图规模增长呈指数级上升(exponentially increase),导致方法在大规模 GNN 场景下效率低下(inefficient)、难以处理(intractable)。
-
关键对比:基于扰动的方法虽能返回离散的关键边,但生成的解释缺乏连通性;而基于图生成的方法(如 RGExplainer)虽能提供连通子图(更符合 GNN 的消息传递逻辑),但仍受限于组合优化的本质,无法规避候选子图爆炸问题。
2. 采样效率与有效性的不足
-
蒙特卡洛树搜索(MCTS)的局限:部分方法(如基于 Shapley 值的 SubgraphX)依赖 MCTS 探索子图,但 MCTS 存在高方差(high variance) 问题,且忽略了 “图是无序集合” 的本质 —— 不同节点序列可能生成同一子图,但 MCTS 会将其视为不同轨迹,导致样本利用率低(loss of sampling efficiency),无法整合相同子图的多轨迹信息,最终影响解释效果(loss of effectiveness)。
四、本文方法的核心思路与优势
1. 方法创新:引入 GFlowNets 实现 “生成式解释”
-
核心突破:利用生成流网络(GFlowNets,Bengio et al. (2021b))的强生成能力,将 “子图组合优化问题” 转化为 “子图逐步生成问题(cast the combinatorial optimization problem as a generation problem)”,提出 GFlowExplainer。
-
核心目标:学习一种生成策略,使生成的连通子图分布满足 “子图概率与互信息(mutual information,衡量子图与 GNN 预测的关联度)成正比”,而非传统方法追求的 “最大化互信息”。
2. GFlowExplainer 解决现有缺陷的三大原因
-
更强的探索能力:GFlowNets 的流匹配条件(flow matching condition) 能引导策略高效探索子图空间,避免陷入局部最优解(avoid the trap of suboptimal solutions),解决组合优化的效率问题。
-
更高的样本利用率:与传统树搜索或节点序列建模不同,GFlowExplainer 能整合不同节点序列生成同一子图的轨迹信息(consolidate information from sampled trajectories),大幅提升样本利用率,进而优化解释性能。
-
适配大规模场景:通过引入 “割点(cut vertex)” 概念,设计高效的父状态探索机制,减少训练迭代次数,使方法可应用于大规模图,同时无需预训练(no pre-training strategies needed)。
五、本文的四大核心贡献
-
方法创新:首次将 GFlowNets 框架应用于 GNN 解释,提出一种手工设计的方法,从 “能量与预定义评分函数成正比的目标分布” 中采样子图(sample from a target distribution with the energy proportional to the predefined score function)。
-
消除序列依赖:利用 GFlowNets 中的 DAG 结构,关联 “生成同一图但节点序列不同的轨迹”,无需预训练即可显著提升 GNN 解释的有效性(significantly improve the effectiveness of GNN explanations)。
-
效率优化:针对图连通性约束导致的 GFlowNets 父状态探索繁琐问题,引入割点概念并提出适用于动态图的高效割点判定准则(efficient cut vertex criteria),加速整个解释过程。
-
实验验证:通过大量实验(合成与真实数据集、定性与定量分析)证明,GFlowExplainer 性能优于当前主流方法(outperform current state-of-the-art approaches)。
2 RELATED WORK
一、图神经网络(GNNs)相关研究
- 发展现状:近年来 GNN 发展迅速,已成为处理图结构数据的核心技术,能够有效利用图的拓扑结构与节点 / 边属性信息(leverage the structure and properties of graphs),相关代表性基础研究包括 Scarselli et al. (2008)、Sanchez-Lengeling et al. (2021)。
- 核心框架:消息传递机制:绝大多数 GNN 变体均基于消息传递方案(message passing scheme) 构建,该机制包含两个核心步骤:
- 模式提取(pattern extraction):从节点的邻域中提取结构化信息;
- 交互建模(interaction modeling):在网络层内对提取的邻域信息与节点自身信息进行融合。
这一框架由 Gilmer et al. (2017) 总结提出,成为后续 GNN 变体设计的基础。
2. 典型 GNN 变体与核心差异
不同 GNN 变体的核心区别在于邻域信息聚合函数(neighbor aggregation function) 与特征处理逻辑的差异,文中梳理了主流变体的设计思路:
GNN 变体
|
核心设计逻辑
|
关键创新点
|
GCN(Welling & Kipf, 2016)
|
基于图卷积的半监督分类模型,使用拉普拉斯矩阵规范化邻接矩阵
|
采用均值池化(mean-pooling) 聚合邻域信息,简化了图卷积的计算流程
|
GraphSAGE(Hamilton et al., 2017)
|
适用于大规模图的归纳学习模型,通过采样邻域降低计算成本
|
支持均值 / 最大 / LSTM 池化(mean/max/LSTM-pooling),灵活适配不同数据特性
|
GIN(Xu et al., 2018)
|
理论证明 “能近似区分不同图结构” 的 GNN 模型,基于图同构测试思路设计
|
采用求和池化(sum-pooling) 与节点特征的可学习映射,增强结构区分能力
|
GAT(Velickovic et al., 2017)
|
引入注意力机制的 GNN,解决邻域节点权重均等化问题
|
基于注意力机制(attention mechanisms) 为不同邻域节点分配差异化权重,突出关键节点影响
|
SGC(Wu et al., 2019)
|
简化版 GNN,聚焦邻域聚合的核心价值
|
发现 GNN 的优异性能主要源于邻域聚合(neighbor aggregation),而非特征变换与非线性激活,大幅简化模型结构,提升计算效率
|
APPNP(Klicpera et al., 2018)
|
结合个性化 PageRank 的 GNN,优化长距离信息传递
|
将特征变换(feature transformation)与邻域聚合(neighbor aggregation)解耦,通过概率传播实现更高效的长距离信息融合
|
二、生成流网络(GFlowNets)相关研究
1. GFlowNets 的核心目标与机制
- 核心定义:GFlowNets(Bengio et al., 2021a; b)是一种生成式模型,目标是训练生成策略(generative policies),通过离散动作序列生成组合型对象(compositional objects $x \in \mathbb{D}$ ),且生成对象的概率与给定的奖励函数(reward function) 成正比。
- 关键特性:
- 能根据与奖励成正比的分布采样轨迹(sample trajectories according to a distribution proportional to the rewards),在需要高效探索组合空间的场景中优势显著(exploration is important);
- 与强化学习(RL)本质区别:RL 目标是 “最大化期望回报”,通常仅生成单条最优动作序列;GFlowNets 目标是 “生成符合奖励分布的多样对象”,更适配 “从大量候选中筛选多样关键结构” 的需求(如 GNN 解释中的子图生成)。
2. GFlowNets 的主流应用场景
文中梳理了 GFlowNets 在不同领域的应用,体现其在组合生成任务中的通用性:
-
- 分子生成(molecule generation):如 Bengio et al. (2021a)、Jain et al. (2022),生成符合特定化学性质(如药物活性)的分子结构,需在庞大的分子结构空间中高效探索;
-
- 离散概率建模(discrete probabilistic modeling):如 Zhang et al. (2022),构建离散数据(如图、序列)的概率分布模型,用于生成或推断;
-
- 贝叶斯结构学习(bayesian structure learning):如 Deleu et al. (2022),学习概率图模型的结构,需从大量可能的图结构中采样符合数据分布的模型;
-
- 因果发现(causal discovery):如 Li et al. (2022),推断变量间的因果关系图,需筛选出与观测数据一致的因果结构;
-
- 连续控制任务(continuous control tasks):如 Li et al. (2023),将离散动作序列的生成逻辑扩展到连续动作空间,用于机器人控制等场景。
三、实例级 GNN 解释(Instance-level GNN Explanation)相关研究
1. 四大子分支的详细梳理与缺陷分析
实例级解释的核心目标是 “识别对单个实例预测起关键作用的输入特征”,文中针对前文提及的四大子分支,逐一深入分析其原理、代表性研究及核心局限性:
1)基于梯度 / 特征的方法(Gradients/Features-based)
-
- 核心原理:通过计算 “模型预测对输入特征的梯度” 或 “将高层网络特征映射回输入层”,以梯度大小或特征映射权重衡量输入特征的重要性,进而定位关键节点 / 边。
-
- 代表性研究:Zhou et al. (2016)(首次提出 GNN 的梯度解释思路)、Baldassarre & Azizpour (2019)(扩展梯度计算至多层 GNN)、Pope et al. (2019)(结合特征可视化增强解释直观性)。
-
- 核心缺陷:计算出的 “重要性分数(scores)有时无法直观反映特征的真实贡献(could not reflect the contributions intuitively)”,例如梯度大的特征可能因模型过拟合而与预测逻辑无关,导致解释可信度低。
-
- 核心原理:通过扰动输入图的特征(如删除边、遮蔽节点特征),观察 GNN 预测结果的变化幅度 —— 变化越大,说明该特征对预测越关键,最终筛选出关键子图。
-
- 代表性研究与缺陷:
-
-
- GNNExplainer(Ying et al., 2019):首个专门为 GNN 设计的扰动解释方法,将解释问题转化为 “最大化预测与子图分布的互信息” 的优化任务,但缺乏全局视角(lack a global view),易陷入局部最优(stuck at local optima);
-
-
-
- Causal Screening(Wang et al., 2020):基于因果推断的扰动方法,同样存在 “局部最优” 问题;
-
-
-
- PGExplainer(Luo et al., 2020)、GraphMask(Schlichtkrull et al., 2020):虽能提供一定全局信息(通过参数化掩码学习),但需依赖重参数化技巧(reparameterization trick),且无法保证生成的子图是连通的(could not guarantee connected subgraphs)—— 这与 GNN 的 “消息传递依赖连通结构” 的核心逻辑相悖,导致解释缺乏合理性。
-
-
- 核心原理:将 GNN 的预测结果(如分类概率)分解为 “每个输入特征的贡献项”,通过贡献项的正负与大小判断特征的重要性,本质是 “反向追溯预测结果的来源”。
-
- 代表性研究:LRP(Baldassarre & Azizpour, 2019)、GNN-LRP(Schnake et al., 2020)、DEGREE(Feng et al., 2021)。
-
- 核心缺陷:分解规则通常针对特定 GNN 结构(如 GCN、GAT)设计,难以适配复杂、结构化的图数据集(difficulty of applying to complex and structured graph datasets),泛化性差;且分解过程中可能引入近似误差,导致贡献项与真实影响偏差较大。
-
- 核心原理:围绕待解释实例的邻域(如 k-hop 范围内的节点)采样数据,训练一个简单可解释的代理模型(如线性回归、决策树),拟合 GNN 在该邻域的预测行为,再通过代理模型的参数(如线性系数、决策树分支)解释关键特征。
-
- 代表性研究:PGMExplainer(Vu & Thai, 2020)、GraphLime(Huang et al., 2022)。
-
- 核心缺陷:邻域范围的定义(definition of neighboring areas)需要精细调整,不同任务(节点分类 / 图分类)、不同图结构的邻域设置差异极大,导致方法的泛化性极难保证(generalization to other problem settings highly non-trivial),且代理模型的拟合误差会进一步影响解释准确性。
- 核心思路:将 “生成关键子图” 视为强化学习的 “序列决策任务”—— 智能体每次选择一个节点 / 边加入子图,以 “子图对预测的贡献” 为奖励,训练最优生成策略。
- 代表性研究与缺陷:
- XGNN(Yuan et al., 2020):用于模型级解释,不适用于实例级;
- RGExplainer(Shan et al., 2021):首个用于实例级解释的 RL 方法,但需要低效的预训练策略(requires inefficient pre-training strategies),且依赖蒙特卡洛估计采样轨迹,存在高方差(high variances for sampling) 问题,导致解释稳定性差(如不同采样轮次生成的关键子图差异大)。
四、相关工作与本文方法的核心差异总结
研究领域
|
现有方法的核心局限
|
本文 GFlowExplainer 的突破点
|
GNN 基础模型
|
聚焦预测性能优化,未解决 “预测逻辑解释” 问题
|
基于 GNN 的消息传递逻辑,生成连通子图作为解释,确保解释与 GNN 核心机制一致
|
GFlowNets 应用
|
未应用于 GNN 解释场景,主要集中在分子生成、因果发现等
|
首次将 GFlowNets 引入 GNN 解释,将 “子图筛选优化” 转化为 “生成任务”,解决组合优化的效率问题
|
实例级 GNN 解释
|
1. 组合优化导致大规模场景低效;2. 依赖预训练 / 重参数化;3. 无法保证子图连通性;4. 采样方差高
|
1. DAG 结构 + 割点矩阵适配大规模场景;2. 无需预训练;3. 生成过程保证子图连通;4. 整合多轨迹信息降低采样方差
|
3 GFLOWEXPLAINER
3.1 问题定义
1. 图与 GNN 模型基础符号
- 图结构定义:设图 $G=(V, E)$ ,其中 $V$ 为节点集合, $E$ 为边集合;节点特征为 $x=\{x_1, ..., x_n\}$ ( $x_i \in \mathbb{R}^d$ , $d$ 为特征维度);邻接矩阵 $A$ 描述边关系( $A_{ii}=1$ , $\{v_i, v_j\} \in E$ 时 $A_{ij}=1$ );对称归一化邻接矩阵 $\hat{A}=\tilde{D}^{-1/2}A\tilde{D}^{-1/2}$ ( $\tilde{D}$ 为 $A$ 的度对角矩阵)。
- GNN 模型定义:设 $\Phi$ 为训练完成的 GNN 模型,用于预测节点或图的标签。对于节点实例 $v_i$ ,预测结果为 $Y_i=\Phi(v_i)$ ;对于图实例 $G_i$ ,预测结果为 $Y_{g_i}=\Phi(G_i)$ 。
- 核心目标:为给定实例(节点 $v_i$ 或图 $G_i$ )识别关键子图 $G_s=(V_s, E_s)$ 及对应节点特征 $X_s=\{x_j | v_j \in G_s\}$ ,这些子图与特征是 GNN 预测结果的核心依据。
- 传统优化目标:现有方法将解释任务转化为最大化互信息的优化问题:
其中 $MI(\cdot)$ 为互信息函数, $H(\cdot)$ 为熵函数, $H(Y|G_s)=-\mathbb{E}_{Y|G_s}[\log P_{\Phi}(Y|G_s)]$ ( $P_{\Phi}(Y|G_s)$ 为 GNN 基于子图 $G_s$ 的预测概率)。由于 $H(Y)$ 为定值,目标等价于 “最小化 GNN 仅基于 $G_s$ 预测时的不确定性”。
3. 本文方法的目标转换
- 转换逻辑:候选子图数量呈指数级增长,直接求解组合优化问题难度大,因此将 “子图筛选优化” 转化为 “子图逐步生成” 问题。
- 生成式目标:提出 GFlowExplainer(基于 GFlowNets 的 GNN 解释器),其核心是学习生成策略 $\pi(a_t | s_t)$ ,使生成的子图分布满足 $P(Y, G_s) \propto r(Y, G_s)$ ( $r(Y, G_s)$ 为基于互信息设计的奖励函数),而非传统的 “最大化互信息”。
3.2 流建模
1. 流网络与概率测度基础
- DAG 结构定义:GFlowNets 的流网络基于有向无环图(DAG) $G=(S, A)$ ,其中 $S$ 为有限状态集合, $A \subseteq S \times S$ 为状态转移(对应动作 $a_t: s_t \to s_{t+1}$ )。
- 轨迹与流定义:
- 完整轨迹 $\tau=(s_0, ..., s_n, s_f) \in T$ , $s_0$ 为初始状态, $s_f$ 为终止状态, $T$ 为所有轨迹集合;
- 流函数 $F(\cdot)$ :非负函数, $F(s_t \to s_{t+1})$ 为边流(动作流), $F(\tau)$ 为轨迹流, $F(s)$ 为状态流(所有经过 $s$ 的轨迹流之和)。
- 总流约束:设 DAG 总流为 $Z$ ,满足 $Z=F(s_0)=\sum F(s_f)=\sum r(s_f)$ (可类比为 “水流从 $s_0$ 流入,经轨迹从所有 $s_f$ 流出,总流出量等于总流入量”)。
- 前向转移概率:策略 $\pi(a_t | s_t)$ 由流函数归一化得到,即:
- 轨迹与状态概率:
- 轨迹概率 $\mathcal{P}_F(\tau) = \prod_{t=0}^{f-1} \mathcal{P}_F(s_{t+1} | s_t)$ ;
- 状态概率 $\mathcal{P}_F(s) = \frac{F(s)}{Z}$ (状态流占总流的比例)。
- 核心目标:使终止状态(即生成的子图)概率满足 $\mathcal{P}_F(s_f) \propto r(s_f)$ ,确保重要子图(高奖励)被优先生成。
- 定义背景:原始流网络无法对下游终止流进行边缘化,因此引入基于 DAG 子图家族 $\{G_s, s \in S\}$ 的状态条件流网络( $G_s$ 包含所有满足 $s' \geq s$ 的状态 $s'$ , $\geq$ 为偏序关系)。
- 条件流函数:条件流 $F_s(s_n \to s_m) = F(s_n \to s_m)$ (与原始流共享边流),初始条件流 $F_s(s) = \sum_{s' \geq s} F(s' \to s_f)$ (边缘化所有下游终止流)。
- 条件概率: $\mathcal{P}_s(s' | s) = \frac{F_s(s' \to s_f)}{F_s(s)}$ ( $\forall s' \geq s$ ),确保在特定初始状态(如待解释节点)下,生成子图的概率仍与奖励成正比。
- 本文简化:解释任务中从固定起始节点 $v_0$ ( $s_0=v_0$ )采样轨迹,可忽略条件流的下标 $s$ ,简化计算。
3.3 状态与动作定义
1. 核心定义
-
状态(State):状态 $s_t \in S$ 对应子图 $G_s(s_t)$ : $s_0$ 为仅含起始节点 $v_0$ 的子图, $s_f$ 为满足停止准则的终止子图(关键解释子图)。
-
邻居(Neighbours):
-
节点邻居 $N(v_j)$ :子图内与 $v_j$ 直接相连的节点( $\{v_i, v_j\} \in E$ );
-
图邻居 $\overline{N}(s_t)$ :子图外与子图内节点直接相连的节点( $v_i \notin G_s(s_t)$ 且 $\exists v_j \in G_s(s_t)$ 使 $\{v_i, v_j\} \in E$ ),即子图的边界节点。
-
-
动作(Action):动作 $a_t: s_t \to s_{t+1}$ 为 “将图邻居 $\overline{N}(s_t)$ 中的一个节点加入子图”,即 $a_t: \{v_i\}^+ \sim \overline{N}(s_t)$ ,状态转移满足 $s_{t+1}=s_t \cup \{v_i\}$ 。
2. 特征编码设计
- 编码必要性:需区分 “起始节点 $v_0$ ”“子图内节点”“图邻居节点”,避免动作选择错误(如重复选择子图内节点导致 DAG 循环),同时适配节点分类任务中 “同一子图对不同待解释节点重要性不同” 的需求。
- 特征增强公式:对 $\forall v_i \in G_s(s_t) \cup \overline{N}(s_t)$ ,将原始特征与两个指示函数拼接,得到增强特征 $x_i'$ :
其中 $\mathbb{1}_{\cdot}$ 为指示函数(条件满足时为 1,否则为 0)。
3. 节点表示学习
- 基础模型选择:采用 APPNP(Klicpera et al., 2018)学习节点表示,该模型将 “特征变换” 与 “信息传播” 解耦,适配图结构的邻域信息融合需求。
- APPNP 更新公式:
- MLP 增强表示:将 $L$ 层传播后的节点表示 $H_t^L$ 输入 MLP,进一步提升表征能力:
其中 $\Theta_2$ 为 MLP 的可学习参数, $\overline{H}_t(v_i)$ 为最终节点表示,用于后续动作采样。
3.4 奖励、起始节点与停止准则
1. 奖励函数设计
- 设计思路:用交叉熵损失替代条件熵 $H(Y|s_f)$ ,避免负奖励(通过指数函数转换),使奖励值与子图对预测的重要性正相关。
- 奖励公式:
其中 $\mathcal{L}$ 为预测损失, $N$ 为实例数量, $C$ 为标签类别数, $P(\hat{y}=c)$ 为 GNN 原始预测(基于全图)的类别 $c$ 概率, $P(Y=c)$ 为 GNN 基于子图 $s_f$ 预测的类别 $c$ 概率。
2. 起始节点选择
- 节点分类任务:起始节点 $s_0$ 直接设为待解释的节点实例(因节点预测依赖其邻域信息,从该节点出发生成子图可精准捕捉关键邻域)。
- 图分类任务:起始节点需通过定位器(Locator) $\mathbb{L}$ 筛选(图中节点对预测的影响不同,需找到最具影响力的节点):
- 定位器结构:三层 MLP,输入为 “图表示 $z_{g_n}$ + 节点表示 $z_{v_{i,n}}$ ”(均由训练好的 GNN 模型通过 3 层 GCN 提取),输出为节点影响力权重 $\omega_{i,n}$ :
- 定位器训练:基于 KL 散度损失,使 $\omega_{i,n}$ 的分布逼近 “子图预测损失的负值 $-\mathcal{L}(\pi(s_f|v_{i,n}), Y_{g_n})$ ” 的分布(通过 Softmax 将两者转化为分布后计算 KL 损失)。
- 子图规模约束:为确保解释紧凑,限制终止子图的节点数量 $|s_f| \leq K_M$ ( $K_M$ 为超参数,避免生成过大子图降低解释可读性)。
- 自注意力停止机制:引入自注意力聚合节点表示,判断是否停止生成:
- 计算图邻居节点的注意力权重 $\gamma_t(v_i)$ :
- 聚合 “子图内 + 图邻居” 节点的表示,得到停止决策特征 $\overline{H}_t(STOP)$ :
- 将 $\overline{H}_t(STOP)$ 拼接至节点表示中,用于策略网络判断是否停止生成(停止时当前状态即为 $s_f$ )。
3.5 高效父状态探索
1. 割点矩阵更新与父状态筛选(Theorem 1)
1.1 连通向量构建
对任意动作 $a_t = \{v_j\}^+$ (新加入节点 $v_j$ ),状态 $s_t$ (加入 $v_j$ 前的子图)的连通向量 $z(a_t)$ 基于邻接矩阵构建:
$ z_k(a_t) = A_{j,k}, \quad \forall v_k \in G_s(s_t) $
1.2 割点矩阵更新分情况讨论
场景 1: $|N(a_t)| = 1$ (新节点仅与子图内 1 个节点连通)
- 割点矩阵子块 $Z'(s_t)$ 更新:
-
- $I_{t \times t}$ 为单位矩阵, $(1 - I_{t \times t})$ 用于排除对角线元素(割点矩阵对角线 $Z_{i,i}=0$ );
-
- $\Lambda$ 为按元素乘法;
-
- $\mathbb{I}_{\cdot}$ 为指示函数:当 “桥梁节点 $v_k$ ( $z(a_t)$ 中 1 对应的节点)在 $s_t$ 的割点行 $\mathcal{Z}_k(s_t)$ 与 $[1 - z(a_t)]$ (除桥梁节点外的其他节点指示)的乘积为 0” 时,说明 $v_k$ 在 $s_t$ 中非割点,需标记其在 $s_{t+1}$ 中成为割点;
-
- $z(a_t) \cdot [1]_{1 \times t}$ 为生成与子图节点数一致的指示向量,用于标记桥梁节点的割点属性。
- 连通向量子块 $z'(a_t)$ 更新:
-
- 第一项 $\mathcal{Z}'(s_t) \cdot z(a_t)$ 计算桥梁节点与子图内其他节点的割点关联;
-
- 第二项通过 $\max \{\mathcal{Z}_m'(s_t)\} + 1$ 为新节点分配 “子组标识”(反映新节点所属的连通子组),确保后续能追踪割点的 “子组” 分布。
- 最终割点矩阵拼接:
将更新后的 $Z'(s_t)$ 与 $z'(a_t)$ 按如下形式拼接,得到 $s_{t+1}$ 的割点矩阵:
$ \mathcal{Z}(s_{t+1}) = \begin{bmatrix} \mathcal{Z}'(s_t) & z'(a_t) \\ 0 & 0 \end{bmatrix} $
场景 2: $|N(a_t)| > 1$ (新节点与子图内多个节点连通)
- 割点矩阵子块 $Z'(s_t)$ 更新:
-
- $\mathbb{I}_{set}$ :当 “ $set(\mathcal{Z}_m(s_t) \Lambda z^T(a_t)) \neq set(\mathcal{Z}_m(s_t))$ ” 时为 1(表示新节点连接后,节点 $v_m$ 的割点关联子组发生变化);
-
- $\mathbb{I}_{set2}$ :当 “ $\mathcal{Z}_{m,k}(s_t) \in set(\mathcal{Z}_m(s_t) \Lambda z^T(a_t))$ ” 时为 1(表示节点 $v_m$ 与 $v_k$ 的割点关联属于新节点连接后的有效子组);
-
- $\mathcal{Z}_m(s_t) \Lambda z^T(a_t)$ :计算节点 $v_m$ 的割点行与新节点连通向量的元素积,反映新节点对 $v_m$ 割点属性的影响。
- 连通向量子块 $z'(a_t)$ 更新:
- 最终割点矩阵拼接:
1.3 父状态筛选准则
-
结构条件:父状态 $s_t$ 需是 $s_{t+1}$ 删除一个节点后的子图(即 $s_t = s_{t+1} \setminus \{v_i\}$ , $v_i$ 为 $s_{t+1}$ 中的某个节点);
-
连通性条件:被删除的节点 $v_i$ 在 $s_{t+1}$ 中非割点(即割点矩阵中 $Z_i(s_{t+1}) = [0]_{1 \times (t+1)}$ ,无任何非零元素)。
2. 高效父状态探索的优势与复杂度分析
2.1 相比传统方法的核心优势
- 避免重复全图检查:传统割点检测方法(如 Tarjan 算法)需对每个新生成的子图迭代所有节点和边(时间复杂度 $O(|V| + |E|)$ ),而本文通过动态割点矩阵更新,仅需基于新加入节点的连通向量( $O(t)$ 复杂度, $t$ 为当前子图节点数)更新割点信息,无需重复遍历子图所有元素。
- “摊销式” 计算:割点矩阵的更新是 “增量式” 的 —— 每一步仅基于上一状态的矩阵和新节点的局部信息(连通向量),后续父状态探索可直接复用矩阵结果,无需重新计算子图连通性,大幅降低累积计算成本。
2.2 时间复杂度对比
方法
|
单步割点检测时间复杂度
|
累积复杂度(生成 $K$ 节点子图)
|
适用场景
|
Tarjan 算法(传统)
|
$O(t + e_t)$
|
$O(K^2 + \sum_{t=2}^K e_t)$
|
静态图、小规模子图
|
本文割点矩阵更新
|
$O(t)$
|
$O(K^2)$
|
动态生成子图、大规模图
|
注: $t$ 为当前子图节点数, $e_t$ 为当前子图边数;本文方法中 $e_t$ 无需参与计算,因连通向量直接基于原始图邻接矩阵获取,无需遍历子图边。
2.3 空间复杂度优化
割点矩阵 $Z(s_t)$ 的维度为 $t \times t$ ( $t$ 最大为子图节点数上限 $K_M$ ),而 $K_M$ 通常设为 20-50(确保解释子图紧凑),因此矩阵空间复杂度为 $O(K_M^2)$ ,远低于存储子图所有边信息的空间成本( $O(K_M^2)$ 理论上限,但实际中无需额外存储边,可直接复用原始图邻接矩阵)。
3. 父状态探索与 GFlowNets 流匹配的协同作用
3.1 保障流匹配条件的正确性
3.2 提升采样效率与解释性能
- 减少无效采样:若不筛选父状态,会将 “删除割点后生成的非连通子图” 视为合法父状态,导致策略网络学习到无效的状态转移(非连通子图不符合 GNN 消息传递逻辑,无法作为有效解释),增加采样噪声。本文通过父状态筛选,仅保留连通子图对应的转移,提升采样效率。
- 稳定训练过程:无效父状态会导致流匹配损失计算偏差,使训练过程震荡(如损失无法收敛)。本文方法通过精准的父状态探索,确保流匹配损失计算的准确性,加速训练收敛,最终提升解释子图与真实关键 motif 的匹配度(如实验中 Tree-Cycles 数据集 AUC 达 0.964,显著高于未优化父状态探索的基线方法)。
Algorithm
4 Experiments
4.1 数据集介绍
1. 数据集分类与核心特性
任务类型
|
数据集名称
|
图数量
|
总节点数
|
总边数
|
标签数
|
核心 motif 结构
|
任务目标
|
节点分类(合成)
|
BA-shapes
|
1
|
700
|
4110
|
4
|
房屋结构(5 节点组成的 “house”)
|
识别每个节点预测背后对应的房屋 motif,判断解释子图与房屋结构的匹配度
|
节点分类(合成)
|
BA-Community
|
1
|
1400
|
8920
|
8
|
房屋结构 + 社区划分
|
图由两个 BA 图(带房屋 motif)组成,需识别节点所属社区对应的房屋 motif
|
节点分类(合成)
|
Tree-Cycles
|
1
|
871
|
1950
|
2
|
6 节点环结构
|
图以多层二叉树为基础,环 motif 随机附着于树节点,需定位环结构
|
节点分类(合成)
|
Tree-Grid
|
1
|
1231
|
3410
|
2
|
网格子结构(小范围网格)
|
图以树为基础,网格 motif 附着于树节点,需识别网格结构
|
图分类(混合)
|
BA-2motifs
|
1000
|
25000
|
51392
|
2
|
房屋结构 / 5 节点环结构
|
50% 图含房屋 motif,50% 含环 motif,需识别图分类对应的 motif
|
图分类(真实)
|
Mutagenicity
|
4337
|
131488
|
266894
|
2
|
\(NO_2\)基团 / \(NH_2\)基团
|
真实分子图数据集,判断分子是否致突变(致突变分子多含\(NO_2\),非致突变多含\(NH_2\))
|
2. 数据集设计逻辑
- 合成数据集:均由 “基础图(base)+ motif” 构成,基础图为随机生成的通用结构(如 BA 图、二叉树),motif 为人工定义的关键子结构 —— 这种设计能明确 “真实解释”(即 motif),便于定量衡量解释方法的准确性(如 AUC 指标)。
- 真实数据集(Mutagenicity):基于真实化学分子数据,motif 为领域内公认的致突变 / 非致突变关键基团,用于验证方法在真实场景中的泛化性,避免合成数据的 “过拟合解释” 问题。
4.2 对比方法(Baseline)简单介绍
实验选取 5 种主流 GNN 解释方法作为基线,覆盖实例级解释的四大子分支(基于扰动、分解、代理模型、强化学习),确保对比的全面性。各基线方法的核心逻辑与特点如下:
基线方法
|
所属解释分支
|
核心原理
|
关键特点
|
GNNExplainer
|
基于扰动
|
将解释转化为优化问题:最大化 GNN 预测与子图分布的互信息,约束子图边数与节点特征
|
首个专门为 GNN 设计的解释方法,但易陷入局部最优,生成的子图可能不连通
|
PGExplainer
|
基于扰动(参数化)
|
利用 GNN 提取的节点 / 图表示,训练参数化掩码网络,学习边的重要性权重
|
支持端到端训练,能提供全局视角,但需重参数化技巧,无法保证子图连通性
|
DEGREE
|
基于分解
|
向前传播过程中分解 GNN 预测结果,将预测贡献分配给每个节点 / 边,筛选高贡献子图
|
分解规则适配 GCN/GAT,无需额外训练,但泛化性差,复杂图上分解误差大
|
RGExplainer(无预训练)
|
基于强化学习
|
无预训练阶段,直接通过强化学习训练智能体,迭代选择节点生成连通子图,以预测损失为奖励
|
无需预训练,但采样方差高,部分数据集(如 Tree-Cycles)解释性能骤降(AUC=0.5)
|
RGExplainer(有预训练)
|
基于强化学习
|
增加预训练阶段(MLE 最大化生成子图的对数似然),再训练强化学习策略
|
预训练提升稳定性,但预训练耗时极长(如 Mutagenicity 数据集预训练超 2900 秒),且仍存在采样方差问题
|
4.3 实验及其结论
1. 定性分析实验:解释子图的直观匹配度
1.1 实验设计
- 针对节点分类数据集(BA-shapes、BA-Community 等),选择相同待解释节点,对比 GFlowExplainer 与 RGExplainer 生成的子图;
- 针对图分类数据集(BA-2motifs、Mutagenicity),可视化解释子图与真实 motif(如环结构、\(NO_2\)基团)的重叠情况;
- 可视化规则:绿色节点为 “解释子图中属于真实 motif 的节点”(关键节点),橙色节点为 “解释子图中不属于真实 motif 的节点”(无关节点),粉色节点为待解释节点。
1.2 实验结论
- 节点分类任务:GFlowExplainer 能精准识别 motif 核心结构,无关节点极少。例如:
- BA-shapes 数据集:准确生成 “房屋结构” 的 5 个节点,无橙色无关节点;
- BA-Community 数据集:RGExplainer 未找到完整房屋 motif(含 3 个橙色节点),而 GFlowExplainer 生成的子图完全匹配房屋结构;
- Tree-Cycles 数据集:GFlowExplainer 生成完整 6 节点环,RGExplainer 生成的子图含 2 个无关节点,且环结构不完整。
- 图分类任务:
- BA-2motifs 数据集:GFlowExplainer 与 RGExplainer 均能找到 5 节点环 motif,但 GFlowExplainer 子图更紧凑(无额外边);
- Mutagenicity 数据集:GFlowExplainer 能定位分子中的\(NO_2\)(致突变)或\(NH_2\)(非致突变)基团,且生成连通的分子片段;而 PGExplainer 仅输出离散的重要边,无法形成完整基团结构,可读性差。
2. 定量分析实验:AUC 指标的性能对比
2.1 实验设计
- 核心指标:AUC(Area Under ROC Curve)—— 将 “解释子图中的边是否属于真实 motif” 视为二分类任务(正例:motif 内边,负例:非 motif 边),AUC 越高表示解释子图与真实 motif 的匹配度越高;
- 实验设置:每个方法运行 10 个不同随机种子,计算 AUC 均值与标准差,确保结果稳定性。
2.2 实验结果(核心数据集 AUC 对比)
数据集
|
GNNExplainer
|
PGExplainer
|
DEGREE
|
RGExplainer(无预训练)
|
RGExplainer(有预训练)
|
GFlowExplainer(本文)
|
本文相对最优基线提升幅度
|
BA-shapes
|
0.742±0.006
|
0.974±0.005
|
0.993±0.005
|
0.983±0.021
|
0.985±0.013
|
0.999±0.000
|
0.6%(对比 DEGREE)
|
BA-Community
|
0.708±0.004
|
0.884±0.020
|
0.957±0.010
|
0.684±0.012
|
0.858±0.021
|
0.938±0.019
|
-1.9%(略低于 DEGREE,但无预训练)
|
Tree-Cycles
|
0.540±0.017
|
0.574±0.021
|
0.902±0.022
|
0.500±0.000
|
0.787±0.099
|
0.964±0.028
|
6.8%(对比 DEGREE)
|
Tree-Grid
|
0.714±0.002
|
0.673±0.004
|
0.925±0.040
|
0.500±0.000
|
0.927±0.030
|
0.982±0.011
|
5.9%(对比 RGExplainer)
|
BA-2motifs
|
0.499±0.001
|
0.133±0.045
|
0.755±0.135
|
0.503±0.011
|
0.615±0.029
|
0.854±0.016
|
13.1%(对比 DEGREE)
|
Mutagenicity
|
0.498±0.003
|
0.843±0.084
|
0.773±0.029
|
0.623±0.021
|
0.832±0.046
|
0.882±0.024
|
4.6%(对比 PGExplainer)
|
2.3 实验结论
- 整体性能:GFlowExplainer 在 6 个数据集的 5 个中 AUC 排名第一,仅在 BA-Community 数据集略低于 DEGREE(0.938 vs 0.957),但 DEGREE 依赖 GCN 特定分解规则,泛化性差,而 GFlowExplainer 适配所有 GNN 类型;
- 无预训练优势:RGExplainer 无预训练时,Tree-Cycles、Tree-Grid 数据集 AUC 仅 0.5(等同于随机猜测),而 GFlowExplainer 无需预训练,所有数据集 AUC 均≥0.882,稳定性显著优于 RL 基线;
- 复杂结构优势:在含环、网格等复杂 motif 的数据集(Tree-Cycles、Tree-Grid),GFlowExplainer 提升幅度最大(5.9%-6.8%),证明其在复杂子图探索上的优越性。
3. 效率分析实验:训练与推理时间对比
3.1 实验设计
- 硬件环境:NVIDIA Quadro RTX 6000,PyTorch 框架;
- 衡量指标:
- 推理时间:解释单个实例(节点 / 图)的平均时间;
- 训练时间:含预训练的方法统计 “预训练时间 + 每轮更新时间”,无预训练方法统计 “每轮更新时间”。
3.2 实验结果
3.2.1 推理时间(单位:ms / 实例)
数据集
|
GNNExplainer
|
PGExplainer
|
RGExplainer
|
GFlowExplainer(本文)
|
BA-shapes
|
53
|
12
|
8
|
7
|
BA-Community
|
76
|
17
|
2
|
3
|
Tree-Cycles
|
49
|
3
|
7
|
8
|
Tree-Grid
|
57
|
2
|
6
|
11
|
BA-2motifs
|
34
|
1
|
5
|
6
|
Mutagenicity
|
16
|
14
|
9
|
7
|
3.2.2 训练时间(单位:秒)
数据集
|
RGExplainer(预训练时间)
|
RGExplainer(每轮更新时间)
|
GFlowExplainer(每轮更新时间)
|
GFlowExplainer 相对 RG 更新加速幅度
|
BA-shapes
|
102.56
|
24
|
8
|
66.7%
|
BA-Community
|
143.73
|
22
|
10
|
54.5%
|
Tree-Cycles
|
83.36
|
11
|
9
|
18.2%
|
Tree-Grid
|
463.61
|
5
|
10
|
-100%(仅该数据集略慢,因网格结构割点更新稍复杂)
|
BA-2motifs
|
1294.26
|
14
|
7
|
50.0%
|
Mutagenicity
|
2918.22
|
28
|
12
|
57.1%
|
3.3 实验结论
- 推理效率:GFlowExplainer 与 RGExplainer、PGExplainer 处于同一数量级(7-11ms / 实例),远快于 GNNExplainer(16-76ms / 实例),满足实时解释需求;
- 训练效率:
- GFlowExplainer 无预训练步骤,避免了 RGExplainer 预训练的巨大时间成本(如 Mutagenicity 预训练超 2900 秒);
- 单轮更新时间上,GFlowExplainer 平均比 RGExplainer 快 50%-60%(除 Tree-Grid 外),核心原因是 “割点矩阵高效更新” 替代了 RGExplainer 的 “全子图连通性检查”,降低计算复杂度。
4. 归纳设置实验:泛化性与稳定性验证
4.1 实验设计
- 归纳场景定义:改变训练集比例(10%、30%、50%、70%、90%),剩余数据作为测试集,验证方法在 “训练数据不足” 时的解释性能;
- 对比方法:GFlowExplainer、GFlow-Sequence(GFlowNets 基线,状态视为节点序列,仅 1 个父状态)、RGExplainer(无预训练)、RGExplainer(有预训练);
- 核心指标:测试集 AUC 均值,衡量方法的泛化能力与稳定性。
4.2 实验结果(关键数据集趋势)
- BA-shapes 数据集:
- 训练集比例仅 10% 时,GFlowExplainer AUC 已达 0.99,且随训练集比例增加保持稳定;
- RGExplainer(无预训练)AUC 始终 0.5,RGExplainer(有预训练)在训练集 10% 时 AUC=0.85,需 50% 训练集才达 0.95;
- GFlow-Sequence AUC 在训练集 10% 时为 0.92,50% 时达 0.96,始终低于 GFlowExplainer。
- Tree-Cycles 数据集:
- GFlowExplainer 在所有训练集比例下 AUC≥0.94,稳定性最优;
- RGExplainer(有预训练)在训练集 10% 时 AUC=0.65,70% 时才达 0.80,且存在种子波动(部分种子 AUC 骤降为 0.5);
- GFlow-Sequence AUC 随训练集比例增长缓慢(10% 时 0.80,90% 时 0.90)。
- Mutagenicity 数据集:
- GFlowExplainer 与 RGExplainer(有预训练)均保持高 AUC(≥0.85),但 GFlowExplainer 波动更小(标准差 0.02 vs RGExplainer 0.04);
- RGExplainer(无预训练)AUC 随训练集比例增长仅从 0.62 升至 0.75,泛化性差。
4.3 实验结论
- 泛化性:GFlowExplainer 在训练数据不足时(10% 训练集)仍能保持高 AUC,优于依赖序列建模的 GFlow-Sequence 和依赖预训练的 RGExplainer,证明其对训练