[图神经网络前沿课题]位置感知、身份感知、鲁棒性

本文深入剖析了图神经网络(GNN)在处理节点位置和身份信息时的挑战,提出了Position-aware GNNs和Identity-aware GNNs两种解决方案。Position-aware GNNs通过引入锚节点考虑相对位置信息,而Identity-aware GNNs利用节点着色技术识别不同图结构。此外,文章还讨论了GNN的鲁棒性问题,介绍了图神经网络对抗攻击的概念和优化目标。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文主要是总结了:如何在图神经网络中考虑位置信息、如何在图神经网络中考虑身份信息以及图神经网络的鲁棒性等热门前沿课题。

更多图神经网络和深度学习内容请移步:
在这里插入图片描述

GNN的局限性

论文How Powerful are Graph Neural Networks?认为最具表达能力的GNN应该使得具有相同领域结构的节点拥有相同的节点嵌入,具有不同领域结构的节点一定拥有不同的节点嵌入。需要注意的是,这里都基于一个前提假设:节点没有可区分的特征,也就是说节点可能没有特征、节点有相同的特征或者节点有高度相似的特征。
在这里插入图片描述
现有大部分的GNN大都不能保证上述两点要求,故可以说明现有GNN表达能力上限是WL图同构检测

而现有的一些研究表明,在某些极端的情况下,具有相同领域结构的节点拥有相同的节点嵌入,具有不同领域结构的节点一定拥有不同的节点嵌入这两点要求是会存在一些问题的。

具有相同领域结构的节点拥有相同的节点嵌入的问题是:有些时候具有相同领域结构的节点应该拥有不同的节点嵌入,例如在下面的例子中具有相同领域结构但位于图中不同位置的两个节点(记为 v 1 v_1 v1 v 2 v_2 v2)应该具有不同嵌入,这种任务场景被称为“位置感知任务”(Position-aware tasks)。解决这个问题的方法是在生成节点嵌入时考虑节点所在的位置,例如Position-aware GNNs
在这里插入图片描述
具有不同领域结构的节点一定拥有不同的节点嵌入的问题是:这个要求在大多数GNN中都是不能满足的,例如在下面的例子中,现有的大多数GNN都为节点 v 1 v_1 v1和节点 v 2 v_2 v2生成相同的嵌入,因为它们不能识别节点所在回路(Cycle)的长度,导致两个节点拥有相同的计算图,而计算图唯一确定了节点嵌入。解决这个问题的方法是构建一种能识别节点所在回路长度的GNN,例如Identity-aware GNNs
在这里插入图片描述
为了解决上述两个问题,我们很容易想到一个直观但是“不是很聪明”的方案:以One-hot编码形式给节点分配不同的ID,并将节点ID作为节点的特征,然后使用这独一无二的节点特征参与GNN的训练。

在给节点分配不同的节点ID之后,我们可以发现即使现在这两个节点计算图的结构仍然相同,但是由于每个节点都拥有可区分的节点特征,故现有的GNN可以为两个节点生成不同的节点嵌入。
在这里插入图片描述
这个方案的缺点也是很明显的,主要有两点:

  1. Not scalable:每个节点都需要 𝑂 ( 𝑁 ) 𝑂(𝑁) O(N)维的特征,其中 N N N为节点的数量。若 N N N为一个较大数,GNN的训练是非常困难且低效的;
  2. Not inductive:训练好的GNN模型不可扩展到新的图,因为随着节点ID的变化节点嵌入也会随之发生改变。

后面我们开始介绍分别发表ICML 2019和AAAI 2021中两种更高效的方法Position-aware GNNsIdentity-aware GNNs

Postion-aware Graph Neural Networks

一般对于节点拥有不同计算图的情况,现有的GNN可以很好的工作。例如在下面的例子中,GNN可以很高的区分节点 v 1 v_1 v1 v 2 v_2 v2,因为两个节点拥有不同的计算图(computational graph),而计算图可确定节点嵌入。
在这里插入图片描述
如果两个节点处于图的对称位置,它们将会有相同的计算图,现有的GNN不能很好的区分两个节点。
在这里插入图片描述
为了解决GNN不是区分处于对称位置的节点这个问题,我们可以引入锚节点(anchor node),在生成节点嵌入的过程中通过考虑每个节点与锚节点的相对距离从而达到区分处于对称位置节点的目的。锚节点的作用是充当一个参考点。

在下面这个简单的例子中,因为节点 v 1 v_1 v1 v 2 v_2 v2与随机选择的锚节点 s 1 s_1 s1的相对距离不同,从而使得GNN有能力区分这两个节点。
在这里插入图片描述
并且通常情况下,我们选择的锚节点个数越多,GNN将更容易区分不同的处于对称位置的节点,但同时也意味着需要更多的计算。
在这里插入图片描述
在某些极端情况下,即使我们引入了多个锚节点,仍然可能出现节点不可区分的现象。例如在下面的例子中,节点 v 1 v_1 v1 v 2 v_2 v2与随机选择的锚节点 s 1 s_1 s1 s 2 s_2 s2的相对距离都相等,那么我们应该怎么办呢?答案是选择多个节点充当锚节点集。

而当我们引入锚节点集 s 2 s_2 s2之后,即使节点与随机选择的锚节点相对距离相等,我们也可以通过比较节点与随机选择的锚节点集的相对距离达到区分节点的目的。需要注意是,越大的锚节点集在大部分情况下效果都比多个独立锚节点和较小的锚节点集效果都要好。
在这里插入图片描述
那么我们要怎么在GNN中利用这种相对位置信息呢?最简单的做法是:使用每个节点与锚节点集相对位置信息作为节点的增强节点特征(augmented node feature),然后使用这些节点特征训练图神经网络。也就是说我们使用节点与锚节点集的相对距离作为节点额外的特征,这类有用的额外信息通常都可提升模型的性能。
在这里插入图片描述
这种方法在实践中效果很好,但是存在一个问题就是不满足置换不变性(permutation invariance)。置换不变性指输入数据的顺序改变不会影响输出的值。所以一个更严谨的做法是:训练一个能够保持位置编码置换不变性的特殊神经网络,更多细节可以参考Position-aware GNN

ldentity- Aware Graph Neural Networks

论文ldentity- Aware Graph Neural Networks给出了现有GNN不能处理的三类图结构,分别为Node级、Edge级、Graph级任务的例子。

在Node级任务中,我们假定现在GNN模型需要预测节点 v 1 v_1 v1 v 2 v_2 v2的类别。在下面的例子中,由于节点 v 1 v_1 v1 v 2 v_2 v2的计算图相同,即使它们所处的图结构不一致,GNN也会生成相同(或者相似)的嵌入。
在这里插入图片描述
在Edge级任务中,我们假定现在GNN模型需要预测节点 v 0 v_0 v0与节点 v 1 v_1 v1 v 2 v_2 v2的之间是否存在边。在下面的例子中,由于节点 v 1 v_1 v1 v 2 v_2 v2的计算图相同,即使它们所处的图结构不一致,GNN也会生成相同的嵌入,从而影响后继的链接预测。
在这里插入图片描述
在Graph级任务中,我们假定现在GNN模型需要预测两个图的label。在下面的例子中,由于两个图中对应的每个节点计算图都相同,即使这两个图是两个完全不同的正则图,GNN也会生成相同的嵌入,从而将两个图预测为同一种label。
在这里插入图片描述
那么可以通过什么方法使得GNN可以正确处理上述三类情况呢?做法是给我们正在需要获取嵌入的节点(根节点)打上一个特殊的标记,可称为着色技术(coloring ),也就是说在计算嵌入的时候考虑节点的身份是根节点还是普通的非根节点。在具体实现中ID-GNN使用自我中心网络完成着色。

下面给出了考虑节点身份之后的计算图,我们可以发现此时的计算图虽然图结构相似但已经可以区分了,从而GNN可以为不同的节点生成不同的节点嵌入。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

需要特别注意的是这种着色技术是inductive的并且具有置换不变性。在下面的例子中,我们交换了节点 v 2 v_2 v2和节点 v 3 v_3 v3的位置,但是 v 1 v_1 v1的计算图仍然是相同的。
在这里插入图片描述
那么我们要怎么利用这种节点着色技术来帮助GNN进行节点嵌入呢?答案是异构信息传递(Heterogenous message passing),也就是对根节点(有颜色的)和普通节点(无颜色的)使用不同的消息传递,这种方法被称为ID-GNN。ID-GNN是一种可以应用在任意GNN上的通用框架,是第一种被证明有超越WL图同构检测算法的表达能力的GNN。
在这里插入图片描述
而普通的GNN对所有的节点都一视同仁,只使用一种消息传递和聚合。
在这里插入图片描述
以前面提到的节点分类任务为例,无论现有GNN的层数有多深,由于两个节点的计算图相同,现有的GNN无法为节点 v 1 v_1 v1和节点 v 2 v_2 v2生成不同的嵌入;而ID-GNN虽然在一层和两层时也无法区分这两个节点,而在堆叠三层及以上时,ID-GNN将有能力区分节点 v 1 v_1 v1和节点 v 2 v_2 v2
在这里插入图片描述
ID-GNN这种可以区分节点 v 1 v_1 v1和节点 v 2 v_2 v2的能力,我们可归因于ID-GNN可以识别节点所在回路(Cycle)的长度。ID-GNN的异构图神经网络版本由于计算开销比较大,基于上面这个发现作者提出ID-GNN-Fast,也就是ID-GNN快速版本。在ID-GNN-Fast中,直接使用节点身份信息(identity information,也就是回路计数)作为节点增强特征,从而避免了进行异构信息传递。

在这里插入图片描述
更多细节可以查阅论文原文或者参考链接

Robustness of Graph Neural Networks

众所周知,深度神经网络都比较容易遭受恶意攻击者的对抗攻击(adversarial attack)。例如CNN在识别图片label时,可能因为图片被加入了人为精心设计的噪声而将图片识别为其他的类别,即使加入噪声后的图片我们通过人眼几乎不能发现有任何的变化。当然对抗攻击不仅存在于CV领域,像自然语言处理、音频处理等领域都是存在的。
在这里插入图片描述
那么如何将对抗攻击引入到图神经网络呢?KDD 2018的一篇名为 Adversarial Attacks on Neural Networks for Graph Data的论文首次研究了GNN中的对抗攻击。

为了方便表述和学习,我们将下文的任务场景设置为半监督节点分类任务、模型使用图卷积网络GCN。半监督节点分类任务的目标是利用已知标签节点信息和标签与未知标签的节点信息共同预测未知标签节点的标签。
在这里插入图片描述
在图神经网络对抗攻击中,我们将图的节点分为两大类:一类是我们想要修改预测结果的节点,该类节点称为目标节点(Target node),记为 𝑡 ∈ 𝑉 𝑡 ∈ 𝑉 tV;另一类是攻击者能控制的节点,被称为攻击节点(Attacker nodes),记为 𝑆 ⊂ 𝑉 𝑆 ⊂ 𝑉 SV。需要特别注意的是,有些时候攻击者也能直接控制目标节点,换句话说就是目标节点有时候会包含在攻击节点中。

图神经网络对抗攻击分为两种类型:直接攻击间接攻击

直接攻击(Direct Attack):攻击者能直接控制目标节点,可通过直接修改目标节点的特征(例如我们将网站视为一个节点、网站和网站之间的链接关系视为边,可修改网站网页的内容达到修改目标节点特征的目的)、添加和删除目标节点与其他节点的边(例如在社交网络中,关注和取消关注其他用户)使得GNN将目标节点预测为其他错误的类型。

间接攻击(Indirect Attack):攻击者能直接控制除了目标节点以外的其他全部或部分节点。攻击者通过修改这部分节点的特征、添加或者删除这部分节点和其他节点的边然后利用GNN消息传递机制的特性来使得GNN将目标节点预测为其他错误的类型。一般情况下,间接攻击效果比直接攻击效果差很多。

接下来我们来形式化图神经网络对抗攻击,攻击者的目标是让GNN模型将目标节点预测为其他错误类型的同时保证对图的修改要尽可能的小,因为对图的修改过大的话,模型持有者或者数据持有者可以很容易的发现图被修改。
在这里插入图片描述
我们记初始图的邻接矩阵为 A A A,节点特征矩阵为 X X X;攻击者修改之后图的邻接矩阵为 A ′ A' A,节点特征矩阵为 X ′ X' X。对图的修改可分为两种,一种是对图结构的修改(即对邻接矩阵 A A A的修改,包括增加和删除边),另一种是对节点特征的修改(即对特征矩阵 X X X的修改)。对图的修改要尽可能的小就可以表示为:
( 𝑨 ′ , 𝑿 ′ ) ≈ ( 𝑨 , 𝑿 ) (𝑨', 𝑿')≈ (𝑨, 𝑿) (A,X)(A,X)
这要求修改之后的图必须要保留初始图的某些统计数据(比如度分布,真实图的度分布服从幂律分布),如果不满足这些要求,攻击者修改的图将很容易被发现。

GCN通过邻接矩阵 A A A和节点特征矩阵 X X X学习得使损失函数 L t r a i n L_{train} Ltrain最小化的参数 θ ∗ θ^∗ θ
在这里插入图片描述
此时 θ ∗ θ^∗ θ所对应的GCN模型 f θ ∗ f_{θ^∗} fθ预测目标节点 v v v的label表示为:
在这里插入图片描述
攻击者使用修改之后的图学习得使损失函数 L t r a i n L_{train} Ltrain最小化的参数 θ ∗ ′ θ^{∗'} θ
在这里插入图片描述
此时 θ ∗ ′ θ^{∗'} θ所对应的GCN模型 f θ ∗ ′ f_θ^{∗'} fθ预测目标节点 v v v的label表示为:
在这里插入图片描述
图神经网络对抗攻击的目标就是让使用初始图和修改后的图训练出来的图神经网络模型对目标节点的预测尽可能不同,也就是:
在这里插入图片描述
我们使用 △ △ 来表示这种预测结果的差异,攻击者当然是希望这种差异越大越好,差异可形式化为:
在这里插入图片描述
因此我们可以得到图神经网络对抗攻击最终的优化目标:
a r g m a x 𝑨 ′ , 𝑿 ′ ( 𝑣 ; 𝑨 ′ , 𝑿 ) argmax_{𝑨',𝑿'}(𝑣; 𝑨', 𝑿) argmaxA,X(v;A,X)
subject to 𝑨 ′ , 𝑿 ′ ≈ ( 𝑨 , 𝑿 ) 𝑨', 𝑿'≈ (𝑨, 𝑿) A,X(A,X)
但是聪明的我们可以发现上面给出的这个优化目标会存在两个问题:

  1. 由于邻接矩阵 𝑨 ′ 𝑨' A是离散的,所以上面的优化目标不能直接使用现有的基于梯度下降的优化算法;
  2. 每更新一次图,我们就可以获得一组新的 𝑨 ′ , 𝑿 ′ 𝑨',𝑿' A,X,然后就又需要重新训练一次模型。

论文Adversarial Attacks on Neural Networks for Graph Data给出了解决上述两个问题近似优化目标,具体细节请参阅论文。

本文翻译整理自Jure Leskovec的课件

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值