Blog8 图神经网络的模型级解释——项目学习

2021SC@SDUSC

到现在为止,我已经完成了第一篇论文分工后的关键代码分析工作。有了前面工作的基础,接下来的工作进一步深入神经网络领域,开启另一篇论文的探索:

XGNN: Towards Model-Level Explanations of Graph Neural Networks

综述:图神经网络通过聚合和结合邻居信息来学习节点特征,在许多图的任务中取得了良好的性能。然而,GNN 大多被视为黑盒,缺乏人类可理解的解释。因此,如果不能解释 GNN 模型,就不能完全信任它们并在某些应用程序域中使用它们。

在这项研究中,来自德克萨斯 A&M 大学(TAMU)和密歇根州立大学的研究者提出了一种新的方法,称为 XGNN,在模型级别上解释 GNN。特别地,他们提出通过训练图生成器来解释 GNN,使生成的图模式能最大化GNN模型的某种预测。研究者将图形生成器表示为一个强化学习任务,其中对于每一步,图形生成器预测如何向当前图形的节点中添加一条边。此外,他们还添加了一些图规则,使生成的图有效。

一.已有方法

目前的可解释性方面的研究,主要包括:实例级和模型级。

(1)实例级:确定输入实例的重要特征---->解释对给定实例的预测。几种方法如下:

  • 基于梯度的方法
  • 中间特征图可视化
  • 基于遮挡的方法

通过解释大量的输入实例才能相信模型,需要大量人力物力。

如最近的GNN解释工具GNN Explainer ,将一个已经训练好的GNN和其预测结果作为输入,然后通过输出一个子图以及该子图上更少的特征,表示其输出最大程度的影响了该GNN的预测结果。

1、不去探究模型内部,专注于信息本身,研究哪些信息对预测结果是重要的。
2、从图结构+特征信息解释。
3、从实例级解释。

(2)模型级:确定哪些输入模式可以导致某种预测结果---->解释模型的一般行为。

更加普遍与高级。

  • 主要方法:输入优化。类似于训练深度神经网络来训练参数,输入优化训练的是输入(子图、图模式)。首先随机初始化输入,然后依次迭代更新输入,直到达到某一目标比如预测某一类概率最大)。这样的输入优化可以被认为是对模型预测的解释。
  • 局限性:不能用于图数据。
  • ①图结构由离散的邻接矩阵表示,不能通过反向传播直接优化邻接矩阵。②抽象后的图是高层次的特征表示,这种情况下,抽象是没有意义的。③得到的图可能对生物、化学规则是无效的,需要添加一些图规则。(原子节点的度不能超过其最大化合价)

 二.本文的方法XGNN

训练一个图生成器,用生成的图来解释GNN模型。这个过程可以看作一种强化学习,每一步,给定一个图,图生成器预测连接哪两个节点,生成一个图。此外,加入一些图规则,使生成的图是有效的。

注意:图生成器只是一个框架,可以根据具体数据集和要解释的GNN推广到任何合适的图生成方法。

1.论文目标

针对GNN图分类问题,找出模型级解释中的子图/图模式,即:G*=argmax P(f(G)=ci)

  • G*:我们需要的子图/图模式
  • argmax:最大值自变量点集,即:使函数取到最大值的自变量的集合。
  • f(. ):训练好的GNN模型
  • c:标签
  • P:概率

解释公式就是:使得图G在训练好的GNN模型f(.)下的预测等于给定标签ci的概率最大时使用的输入模式就等于我们需要的图G的子图/图模式G*。

------------------------------------------------------GNN是做什么的?-----------------------------------------------

补充:GNN是做什么的?三步走:聚合、更新、循环来提取特征

 总结:给出每个节点特征、所有节点的关联图结构,通过聚合邻居节点的特征来更新完善自己的特征,经过多层聚合,得到二阶邻居、多阶邻居的特征来得到每个节点的包含所有图信息的最终特征表示。可以用这个结果进行节点分类、关联预测等。

----------------------------------------------------------------------------------------------------------------------------

2.图生成器描述

2.1目标

对每一步,图形生成器都会基于当前图形生成一个新图形,即:X_{t+1},A_{t+1}=g_{\theta }(X_{t},A_{t})

  • 输入:第t步的图Gt,包含:nt个节点
  •            X_{t}\in R^{nt\times d}    :第t步的节点特征矩阵,
  •            A_{t}\in \left \{ 0,1 \right \}^{nt\times nt}  :邻接矩阵
  • gθ( ):以θ为参数的图生成器
  • 输出:第t+1步的图Gt+1,包含Xt+1:第t+1步的节点特征矩阵,At+1:邻接矩阵

看作强化学习过程:就是一个序列做决策的问题。每一步都会对最终结果产生影响,每一步都会产生一个回馈,怎么做才能使得每一步都达到最优

  • 状态state: 第t步强化学习环境的状态是:部分生成的图Gt
  • 行为action: 第t步的行为action记为at,表示:在当前图Gt的基础上生成新的图Gt+1。        选定一个初始结点{\color{Red} {\color{Red} }a_{t,start}}(Gt中)结束结点{\color{Red} a_{t,end}}(Gt或C中)添加一条边。
  • 策略policy: 图生成器gθ(.),就是学习如何在Gt中添加边来生成Gt+1。可通过reward机制和policy gradient来训练。
  • 奖励reward: 第t步的奖励,记为Rt,用来评价第t步的动作,我们想要的结果是:每一步最优。包括2个部分:
  1. 来自预训练GNN f(.)的guidence。这个guidence会增加gθ(⋅)生成的图被分类为ci的概率。并用这个概率作为反馈更新gθ(⋅)
  2. 促进gθ(⋅)生成的图在graph rules之下是有效的,graph rules包括:社交网络中2个结点不可能有多条边,分子图中原子的度也不会超过它的化学价。

对于 t 时刻,action at 记为 \left (a_{t,start} , a_{t,end} \right )

gθ(⋅)的目标就是基于Gt和C来预测不同action的概率p_{t}=\left (p_{t,start} , p_{t,end} \right )

gθ(.)包括了多个GCN。

 2.2应用示例

下图中有4个图均被预测为第3类,人类观测到有一个3角形图是4个图中的共有结构。图生成器最终目标也是生成相似的图,并且引入Graph rules(类似于人工验证)来增强有效性。

2.3图生成器gθ( )的工作过程

(1)用GCNs学习聚合节点的特征X\hat{},即:X\hat{}=GCNs(G_{t},C)

  • Gt:当前图
  • C:一个候选节点的集合
  • X\hat{}:GCNs学习到的节点特征

假设数据集中存在k种类型的节点,定义candidate set C = { s 1 , s 2 , ⋅ ⋅ ⋅ , s k } .

比如化学分子图中结点类型就是原子类型,有 C = { 碳 原 子 , 氢 原 子 , ⋅ ⋅ ⋅ , 氧 原 子 } 。

社交网络结点没有分类,则candidate set只有1个类型。

(2)用多层感知器MLP预测出开始节点的概率,再用softmax选一个概率最大的节点,作为初始节点。

  • {\color{Red} p_{t,start}}:每个节点作为初始节点的概率
  • Softmax()函数:归一化指数函数,将多分类输出转换为概率,可以分为两步:
  1. 分子:通过指数函数y=exp(x),将实数输出映射到零到正无穷。
  2. 分母:将所有结果相加,进行归一化。
  • {\color{Red} m_{t,start}}:一个mask向量用来过滤掉C中的结点。

公式(6)表示,初始节点a_{t,start}只能从图Gt中选p_{t,start}最大的,因为C中的候选节点不能作为开始节点。

最初时刻的图可以随机从C中随机选出一个结点组成。也可以人工选择,比如有机物结构图生成往往选择碳原子作为初始时刻的图。

(3)选择一个结束节点 。

x^starta_{t,start}的特征向量

{\color{Red} m_{t,end}}:一个mask向量用来过滤掉初始结点a_{t,start}

公式(8)表示,除去开始节点的剩余节点中,选择一个作为结束节点。

现在,我们选了两个节点,再将它们连接起来,生成新图。可能包括在Gt中的2个结点中添加一条边或者从C中添加一个结点连接。

上图的过程:

  1. 输入:一个4个节点的图G,3个候选节点C
  2. 将Gt的特征矩阵Xt和C中节点的特征向量拼接,得到特征矩阵X。并把Gt的邻接矩阵At(4x4)扩展成A(7x7).
  3. 特征矩阵X与邻接矩阵A结合,再用多个GCN学习所有节点的特征表示,形成各个节点的特征向量 X^(青蓝色的矩阵)
  4. 用第一个MLP 预测要新添加边的开始节点a_{t,start}。图中打X的结点即被mask的结点。可以看到 C 中的结点均被mask。
  5. 用第二个MLP预测新边的结束节点a_{t,end},可以看到起始结点被mask了。
  6. 连接,得到生成图Gt+1,比Gt多了一个节点和一条边。

2.4图生成器gθ( )的训练过程

训练过程算法:

训练gθ(·)用到了策略梯度(policy gradient)。公式为:

  • {\color{Red} L_{CE}{\color{Red} }}:交叉熵损失
  • Rt:t步的奖励函数(reward function),包括两部分 Rt,f 和 Rt,r。

  • Rt,f:来自训练模型的反馈,包含中间奖励Rt,f(Gt+1)以及图 Gt+1 的最终图奖励。倾向于为类别 ci 产生高预测时为正。
  •  ℓ :图的标签数量
  • λ1、λ2:超参数
  • Rt,f(Gt+1):中间奖励,可以通过将 Gt+1 提供给训练后的f (·) 并检查类别 ci 的预测概率来获得
  • 最终图奖励(②中的第二项):可以通过在中间图 Gt+1 上执行 m 次Rollout ()获得。 每次都基于 Gt+1 生成最终图,直到终止,然后使用等式① 通过 f (·) 进行评估。 然后对 m 个最终图的评估求平均值作为最终的图奖励。
  • Rt,r:来自人工制订的graph rules,鼓励生成的图是有效的和人类可理解的。不符合这些规则的 Rt,r奖励会为负。规则可以包括:
  1. 两个节点之间只允许添加一条边
  2. 生成的图不能包含比预定义的最大值更多的节点。
  3. 特定于数据集的规则。 例如,在化学数据集中, 每个节点代表一个原子,所以它的度数不能超过相应原子的化合价。

至此,我们学习了XNN的具体实现理论思想,下面的博客将会对实现方法的代码及数据集进行分析。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值