当前位置: 首页 > news >正文

DAG Matters! GFlowNets Enhanced Explainer For Graph Neural Networks | |

论文信息

论文标题:DAG Matters! GFlowNets Enhanced Explainer For Graph Neural Networks
论文作者:李文倩、李银川、李志刚、郝建业、庞燕
论文来源:ICLR 2023
论文地址:link
论文代码:link

Abstract

一、研究背景与核心问题

1. 研究领域定位
  • 聚焦图神经网络(GNN)预测逻辑解释这一关键研究方向,该方向近年来关注度持续提升,核心需求是揭示 GNN 模型做出预测背后的合理依据(rationales)。
  • 明确现有研究的主流思路:通过组合优化(combinatorial optimization) 从原始图中筛选出一个子图(subgraph),用该子图作为对 GNN 预测的忠实解释(faithful explanations),即认为子图是影响预测结果的关键结构。
2. 现有方法的核心局限
  • 候选子图规模爆炸:由于图结构中可能的子图数量呈指数级增长(exponential size),导致当前主流方法(state-of-the-art methods)在处理大规模 GNN 时适用性受限(limits the applicability),难以高效筛选出关键子图。
二、本文核心解决方案:GFlowExplainer

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)。

五、本文的四大核心贡献

  1. 方法创新:首次将 GFlowNets 框架应用于 GNN 解释,提出一种手工设计的方法,从 “能量与预定义评分函数成正比的目标分布” 中采样子图(sample from a target distribution with the energy proportional to the predefined score function)。

  1. 消除序列依赖:利用 GFlowNets 中的 DAG 结构,关联 “生成同一图但节点序列不同的轨迹”,无需预训练即可显著提升 GNN 解释的有效性(significantly improve the effectiveness of GNN explanations)。

  1. 效率优化:针对图连通性约束导致的 GFlowNets 父状态探索繁琐问题,引入割点概念并提出适用于动态图的高效割点判定准则(efficient cut vertex criteria),加速整个解释过程。

  1. 实验验证:通过大量实验(合成与真实数据集、定性与定量分析)证明,GFlowExplainer 性能优于当前主流方法(outperform current state-of-the-art approaches)。

2 RELATED WORK

一、图神经网络(GNNs)相关研究

1. GNN 的发展定位与核心机制
  • 发展现状:近年来 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)”,例如梯度大的特征可能因模型过拟合而与预测逻辑无关,导致解释可信度低。
  2)基于扰动的方法(Perturbation-based)
    • 核心原理:通过扰动输入图的特征(如删除边、遮蔽节点特征),观察 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 的 “消息传递依赖连通结构” 的核心逻辑相悖,导致解释缺乏合理性。
  3)基于分解的方法(Decompose-based)
    • 核心原理:将 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),泛化性差;且分解过程中可能引入近似误差,导致贡献项与真实影响偏差较大。
  4)基于代理模型的方法(Surrogate-based)
    • 核心原理:围绕待解释实例的邻域(如 k-hop 范围内的节点)采样数据,训练一个简单可解释的代理模型(如线性回归、决策树),拟合 GNN 在该邻域的预测行为,再通过代理模型的参数(如线性系数、决策树分支)解释关键特征。
    • 代表性研究:PGMExplainer(Vu & Thai, 2020)、GraphLime(Huang et al., 2022)。
    • 核心缺陷邻域范围的定义(definition of neighboring areas)需要精细调整,不同任务(节点分类 / 图分类)、不同图结构的邻域设置差异极大,导致方法的泛化性极难保证(generalization to other problem settings highly non-trivial),且代理模型的拟合误差会进一步影响解释准确性。
2. 基于强化学习(RL)的实例级解释方法
  • 核心思路:将 “生成关键子图” 视为强化学习的 “序列决策任务”—— 智能体每次选择一个节点 / 边加入子图,以 “子图对预测的贡献” 为奖励,训练最优生成策略。
  • 代表性研究与缺陷
    • 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)$ 。
2. GNN 解释任务目标
  • 核心目标:为给定实例(节点 $v_i$ 或图 $G_i$ )识别关键子图 $G_s=(V_s, E_s)$ 及对应节点特征 $X_s=\{x_j | v_j \in G_s\}$ ,这些子图与特征是 GNN 预测结果的核心依据。
  • 传统优化目标:现有方法将解释任务转化为最大化互信息的优化问题:
     $ \max_{G_s} MI(Y, G_s) = H(Y) - H(Y|G_s) \Leftrightarrow \min_{G_s} H(Y|G_s) $

  其中 $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$ 流出,总流出量等于总流入量”)。
2. 策略与概率的关系
  • 前向转移概率:策略 $\pi(a_t | s_t)$ 由流函数归一化得到,即:
     $ \pi(a_t | s_t) = \mathcal{P}_F(s_{t+1} | s_t) = \frac{F(s_t \to s_{t+1})}{F(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)$ ,确保重要子图(高奖励)被优先生成。
3. 状态条件流网络
  • 定义背景:原始流网络无法对下游终止流进行边缘化,因此引入基于 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'$ :
     $ x_i' = [x_i, \mathbb{1}_{v_i=v_0}, \mathbb{1}_{\{v_i \in G_s(s_t)\}}], \quad X_t' = [x_i']_{\forall v_i \in G_s(s_t) \cup \overline{N}(s_t)} $

    其中 $\mathbb{1}_{\cdot}$ 为指示函数(条件满足时为 1,否则为 0)。

3. 节点表示学习

  • 基础模型选择:采用 APPNP(Klicpera et al., 2018)学习节点表示,该模型将 “特征变换” 与 “信息传播” 解耦,适配图结构的邻域信息融合需求。
  • APPNP 更新公式
     $ H_t^{(0)} = \Theta_1 X_t', \quad H_t^{(l+1)} = (1-\alpha)\hat{A}H_t^{(l)} + \alpha H_t^{(0)} $
 
  其中 $\Theta_1$ 为可训练权重矩阵, $\alpha$ 为控制 “初始特征权重” 的超参数, $l$ 为传播层数(共 $L$ 层)。
  • MLP 增强表示:将 $L$ 层传播后的节点表示 $H_t^L$ 输入 MLP,进一步提升表征能力:
     $ \overline{H}_t(v_i) = MLP(H_t^L(v_i); \Theta_2), \quad v_i \in G_s(s_t) \cup \overline{N}(s_t) $
 

    其中 $\Theta_2$ 为 MLP 的可学习参数, $\overline{H}_t(v_i)$ 为最终节点表示,用于后续动作采样。

3.4 奖励、起始节点与停止准则

1. 奖励函数设计

  • 设计思路:用交叉熵损失替代条件熵 $H(Y|s_f)$ ,避免负奖励(通过指数函数转换),使奖励值与子图对预测的重要性正相关。
  • 奖励公式
     $ r(s_f, Y) = \exp\left(-\mathcal{L}(s_f, Y)\right) = \exp\left(-\frac{1}{N}\sum_{n=1}^N \sum_{c=1}^C P(Y=c)\log P(\hat{y}=c)\right) $

  其中 $\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}$ :
     $ \omega_{i,n} = MLP([z_{g_n}, z_{v_{i,n}}]) $
    • 定位器训练:基于 KL 散度损失,使 $\omega_{i,n}$ 的分布逼近 “子图预测损失的负值 $-\mathcal{L}(\pi(s_f|v_{i,n}), Y_{g_n})$ ” 的分布(通过 Softmax 将两者转化为分布后计算 KL 损失)。
3. 停止准则设计
  • 子图规模约束:为确保解释紧凑,限制终止子图的节点数量 $|s_f| \leq K_M$ ( $K_M$ 为超参数,避免生成过大子图降低解释可读性)。
  • 自注意力停止机制:引入自注意力聚合节点表示,判断是否停止生成:
    1. 计算图邻居节点的注意力权重 $\gamma_t(v_i)$ :
       $ \gamma_t(v_i) = \frac{\exp\left(\theta_1^T \overline{H}_t(v_i)\right)}{\sum_{v_j \in \overline{N}(s_t)} \exp\left(\theta_1^T \overline{H}_t(v_j)\right)}, \quad v_i \in \overline{N}(s_t) $
    1. 聚合 “子图内 + 图邻居” 节点的表示,得到停止决策特征 $\overline{H}_t(STOP)$ :
       $ \overline{H}_t(STOP) = \sum_{v_i \in G_s(s_t) \cup \overline{N}(s_t)} \gamma_t(v_i) \overline{H}_t(v_i) $
    1. 将 $\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) $

  其中 $A_{j,k}$ 为原始图邻接矩阵中节点 $v_j$ 与 $v_k$ 的边指示(1 表示有边,0 表示无边),该向量直接反映新节点与当前子图内所有节点的连通关系。

1.2 割点矩阵更新分情况讨论

  割点矩阵 $Z(s_{t+1})$ 的更新需根据新节点 $v_j$ 的图邻居数 $|N(a_t)|$ (即连通向量 $z(a_t)$ 中 1 的个数)分为两种场景,核心是基于引理 1 判断割点的增减:

场景 1: $|N(a_t)| = 1$ (新节点仅与子图内 1 个节点连通)

  此时新节点仅通过 1 个 “桥梁节点” 接入子图,易引发割点变化,更新逻辑如下:
  1. 割点矩阵子块 $Z'(s_t)$ 更新
     $ \mathcal{Z}'(s_t) = (1 - I_{t \times t}) \Lambda \left\{ \mathcal{Z}(s_t) + \mathbb{I}_{\mathcal{Z}_k(s_t)[1 - z(a_t)] = 0} \cdot z(a_t) \cdot [1]_{1 \times t} \right\} $
 
  其中:
    • $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}$ 为生成与子图节点数一致的指示向量,用于标记桥梁节点的割点属性。
  1. 连通向量子块 $z'(a_t)$ 更新
     $ z'(a_t) = \mathcal{Z}'(s_t) \cdot z(a_t) + z(a_t) \Lambda \left[ \max \{\mathcal{Z}_m'(s_t)\} + 1 \right]_{t \times 1} $
 
  其中:
    • 第一项 $\mathcal{Z}'(s_t) \cdot z(a_t)$ 计算桥梁节点与子图内其他节点的割点关联;
    • 第二项通过 $\max \{\mathcal{Z}_m'(s_t)\} + 1$ 为新节点分配 “子组标识”(反映新节点所属的连通子组),确保后续能追踪割点的 “子组” 分布。
  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} $

  新增行(最后一行)与列(倒数第二列)均为 0,对应新节点 $v_j$ 的初始割点状态(新节点刚加入时不会立即成为割点)。

场景 2: $|N(a_t)| > 1$ (新节点与子图内多个节点连通)

  此时新节点可连接子图内多个节点,可能消除原有割点,更新逻辑如下:
  1. 割点矩阵子块 $Z'(s_t)$ 更新
     $ \mathcal{Z}_{m,k}'(s_t) = \mathbb{I}_{set} \left[ \mathbb{I}_{set2} \cdot \max \{\mathcal{Z}_m(s_t) \Lambda z^T(a_t)\} + (1 - \mathbb{I}_{set2}) \cdot \mathcal{Z}_{m,k}(s_t) \right] $
 
  其中:
    • $\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$ 割点属性的影响。
  1. 连通向量子块 $z'(a_t)$ 更新
     $ z_m'(a_t) = \mathbb{I}_{sum} \left[ \max \{\mathcal{Z}_m'(s_t) \Lambda z^T(a_t)\} \right] $
 
    其中 $\mathbb{I}_{sum}$ 为指示函数:当 “ $\sum \mathcal{Z}_m'(s_t) z(a_t) \neq 0$ ” 时为 1,表示节点 $v_m$ 与新节点存在有效割点关联。
  1. 最终割点矩阵拼接
    与场景 1 一致,按 $\begin{bmatrix} \mathcal{Z}'(s_t) & z'(a_t) \\ 0 & 0 \end{bmatrix}$ 拼接得到 $Z(s_{t+1})$ 。

1.3 父状态筛选准则

  基于更新后的割点矩阵 $Z(s_{t+1})$ ,筛选当前状态 $s_{t+1}$ 的有效父状态需满足两个条件:
  1. 结构条件:父状态 $s_t$ 需是 $s_{t+1}$ 删除一个节点后的子图(即 $s_t = s_{t+1} \setminus \{v_i\}$ , $v_i$ 为 $s_{t+1}$ 中的某个节点);

  2. 连通性条件:被删除的节点 $v_i$ 在 $s_{t+1}$ 中非割点(即割点矩阵中 $Z_i(s_{t+1}) = [0]_{1 \times (t+1)}$ ,无任何非零元素)。

  仅满足上述两个条件的状态才是有效父状态,确保父状态对应的子图连通,符合 GFlowNets 流匹配条件对 “合法状态转移” 的要求。

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 保障流匹配条件的正确性

  GFlowNets 的核心流匹配条件要求 “每个非终止状态的流入量等于流出量”( $\sum_{s_t \to s_{t+1}} F(s_t \to s_{t+1}) = \sum_{s_{t+1} \to s_{t+2}} F(s_{t+1} \to s_{t+2})$ ),而有效父状态的准确筛选是计算 “流入量” 的前提 —— 若将非连通子图对应的父状态纳入计算,会导致流入量统计错误,破坏流匹配平衡,进而使生成的子图概率与奖励不成正比。本文通过割点矩阵确保仅连通子图被视为有效父状态,保障流匹配条件的正确性。

3.2 提升采样效率与解释性能

  • 减少无效采样:若不筛选父状态,会将 “删除割点后生成的非连通子图” 视为合法父状态,导致策略网络学习到无效的状态转移(非连通子图不符合 GNN 消息传递逻辑,无法作为有效解释),增加采样噪声。本文通过父状态筛选,仅保留连通子图对应的转移,提升采样效率。
  • 稳定训练过程:无效父状态会导致流匹配损失计算偏差,使训练过程震荡(如损失无法收敛)。本文方法通过精准的父状态探索,确保流匹配损失计算的准确性,加速训练收敛,最终提升解释子图与真实关键 motif 的匹配度(如实验中 Tree-Cycles 数据集 AUC 达 0.964,显著高于未优化父状态探索的基线方法)。

Algorithm

  image

4 Experiments

4.1 数据集介绍

  实验所用数据集涵盖节点分类图分类两大任务,均以 “关键子图(motif)作为真实解释” 为核心设计逻辑 ——motif 是决定 GNN 预测结果的核心结构,基线方法与本文 GFlowExplainer 的目标均是从图中识别出这些 motif。数据集具体信息如下:

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 实验及其结论

  实验围绕 “定性准确性”“定量性能”“效率”“泛化性” 四大维度展开,核心验证 GFlowExplainer 在解释效果、效率、稳定性上的优越性。

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,证明其对训练
http://www.agseo.cn/news/67/

相关文章:

  • abap字符串操作
  • [完结16章]COZE AI 智能体开发体系课(从入门到高级)零基础零代码
  • 推出其新一代高性能Sub-GHz射频收发芯片UM2011A
  • 在 Athena UDF 中使用 Java 将数据写入 DynamoDB
  • Pychram 激活
  • 掌控AI编程全链路:Cline让你随意选模型、透明成本、零信任安全 - 公众号
  • 数据库事务隔离级别引发的应用安全竞态条件漏洞分析
  • Node-Red学习笔记
  • 隧道工程LoRa无线监测设备集成方案 直击隧道深部监测痛点
  • 【k8s】为什么ctr导入后通过crictl查看不到导入的镜像
  • Swift 结合 Tesseract 进行验证码识别
  • 当虚拟机目录空间不足时的扩容
  • 使用IText创建PDF
  • MyEMS 深度解析:碳管理赋能与系统集成的实践路径
  • uv包管理 - 小学弟
  • 对口型视频创作指南:AI如何让“假唱”变成真艺术?
  • 用Python + Tesseract OCR:验证码识别全流程解析
  • Dockerfile中的yum install、yum clean和rm -rf /var/cache/yum
  • Linux 完整的用户登录工作流程详解(GUI TTY)
  • 0 元夺宝小程序介绍
  • 线上频繁FullGC?慌得一比!竟是Log4j2的这个“特性”坑了我
  • clickhouse进程stop之后为什么还自动启动
  • 294、瑶池
  • Unix/Linux 高效的平台通过 IP 地址获取接口名的 C++ 构建
  • 每周读书与学习-初识JMeter 元件(一)
  • CloudBeaver轻量级的云数据库管理工具
  • kylin V10使用安装盘制作本地镜像
  • ArchVizTools Generators Collection 插件合集:3ds Max 建筑可视化神器(2018–2026 适用)
  • 初识python:一些基础的知识(六)
  • 进程注入