返回介绍

数学基础

统计学习

深度学习

工具

Scala

三、GCN 自监督学习 [2020]

发布于 2023-07-17 23:38:24 字数 84684 浏览 0 评论 0 收藏 0

  1. 图卷积神经网络GCN 将卷积神经网络CNN 推广到了图结构数据,从而利用图的属性。在很多graph-based 任务(诸如节点分类、链接分类、链接预测、图分类任务)中,GCN 的性能优于传统方法,其中很多是半监督学习任务。这里我们主要讨论transductive 半监督节点分类任务,其中图包含大量未标记节点、少量的标记节点,任务目标是预测剩余未标记节点的label

    与此同时,自监督self-supervision 在计算机视觉领域引起了人们的广泛关注。自监督利用了丰富的未标记数据,旨在通过预训练pretraining(随后紧跟着微调finetuning)、多任务学习multi-task learning 等前置任务 pretext task帮助模型从未标记的数据中学习更可迁移的transferable 、更泛化generalizedrepresentation

    前置任务必须经过精心设计使得网络可以学习下游任务相关的语义特征。目前已经为 CNN 提出了很多前置任务,包括:旋转rotationexemplarjigsawrelative patch location 等等的prediction

    最近,《Using self-supervised learning can improve model robustness and uncertainty》 表示自监督学习可以作为辅助正则化auxiliary regularization 来提高鲁棒性robustness 和不确定性估计uncertainty estimation《Adversarial robustness: From selfsupervised pre-training to fine-tuning》 将对抗训练引入自监督,从而提供了第一个通用的鲁棒性预训练。

    简而言之,GCN 任务通常遇到具有大量未标记节点的transductive 半监督setting ,同时自监督在利用 CNN 中未标记数据方面扮演越来越重要的角色。因此我们自然地探讨以下有趣的问题:自监督学习能否在 GCN 中发挥类似的作用,从而提高其泛化性 generalizability和鲁棒性robustness

    论文《When Does Self-Supervision Help Graph Convolutional Networks?》 是第一个系统性地研究如何将自监督纳入 GCN 的文章。该论文研究了三个具体问题:

    • GCN 能否在分类任务中受益于自监督学习?如果答案是 yes ,那么如何将自监督融合到GCN 中从而最大化收益?
    • 前置任务的设计重要吗?GCN 有哪些有效的自监督前置任务?
    • 自监督还会影响 GCN 的对抗鲁棒性adversarial robustness 吗?如果是,如何设计前置任务?

    针对这三个问题,论文给出了三个回答:

    • 论文通过多任务学习multi-task learning 的方式将自监督纳入GCN 从而展示了自监督的有效性,即作为 GCN 训练中的正则化项。相对于预训练pretraining、自训练self-training 等自监督方式,多任务学习效果更好。

    • 论文基于图属性调研了三种自监督任务。除了之前工作提及的节点聚类node clustering 任务之外,论文还提出了两种新类型的任务:图划分graph partitioning 、图补全 graph completion

      作者进一步说明,不同的模型和数据集似乎倾向于不同的自监督任务。

    • 论文将上述发现进一步推广到对抗训练setting 中。论文提供的结果表明:自监督还可以提高GCN 在各种攻击下的鲁棒性,无需使用更大的模型或更多的数据。

  2. 相关工作:

    • graph-based 半监督学习:基于图的半监督学习的关键假设是,较大权重的边连接的节点更可能具有相同的标签。

      基于图的半监督学习方法有大量的工作,例如 mincutsBoltzmann machine 、和 graph random walk 。最近,图卷积网络 GCN 及其变体通过将假设从人工设计的方式扩展到数据驱动的方式,从而得到大家的青睐。

    • 自监督学习:自监督self-supervision 是神经网络在计算机视觉领域学习更可迁移的、更通用的、和更鲁棒的特征的一个有前途的方向。到目前为止,CNN 中自监督的使用主要分为两类:预训练和微调pretraining & finetuning ,以及多任务学习 multi-task learning

      • 在预训练和微调中,CNN 首先用自我监督的前置任务进行预训练,然后用带标签的监督的目标任务进行微调。
      • 在多任务学习中,网络是以目标监督任务和自监督任务的联合目标同时训练的。

      据我们所知,最近只有一项在GCN 中追求自监督的工作(《Multi-stage self-supervised learning for graph convolutional networks》),其中采用了通过 self-training 的节点聚类任务。然而,self-training 存在局限性,包括性能 "饱和saturation " 和退化。此外,它还限制了自监督任务的类型。

    • 图上的对抗性攻击和防御:与 CNN类似,GCN的广泛适用性和脆弱性提出了提高其鲁棒性的迫切要求。人们提出了几种算法来对图进行攻击和防御。

      • 《Adversarial attack on graph structured data》 通过 dropping edge,基于梯度下降、遗传算法和强化学习开发了攻击方法。
      • 《Adversarial attacks on neural networks for graph data》提出了一种基于FSGM 的方法来攻击edge 和特征。

      最近,出现了更多样化的防御方法。

      • 《Adversarial attack on graph structured data》 通过直接在扰动的图上进行训练来防御对抗性攻击。
      • 《Adversarial examples on graph data: Deep insights into attack and defense》 通过从连续函数中学习 graph 来获得鲁棒性。
      • 《Adversarial defense framework for graph neural network》 使用 graph refiningadversarial contrasting learning 来提升模型的鲁棒性。
      • 《Graphdefense: Towards robust graph convolutional networks》提出使用未标记数据的伪标签,增强了对大图的可扩展性。

3.1 自监督方式

  1. 给定图G={V,E}$ \mathcal G=\{\mathcal V, \mathcal E\} $ ,其中V={v1,v2,,vn}$ \mathcal V=\{v_1,v_2,\cdots,v_n\} $ 为节点集合,E={ei,j}$ \mathcal E=\{e_{i,j}\} $ 为边集合,ei,j=(vi,vj)$ e_{i,j} = (v_i,v_j) $ 代表节点vi,vj$ v_i,v_j $ 之间的边。

    • 每个节点vi$ v_i $ 关联一个特征向量xiRd$ \mathbf{\vec x}_i\in \mathbb R^d $ ,其中d$ d $ 为特征向量维度。所有节点的特征向量构成节点特征矩阵XRn×d$ \mathbf X\in \mathbb R^{n\times d} $ 。

    • 定义图邻接矩阵ARn×n$ \mathbf A\in \mathbb R^{n\times n} $ ,其中:

      ai,j=A[i,j]={1,(vi,vj)E0,else

      ai,j=aj,i$ a_{i,j} = a_{j,i} $ 。

  2. 典型的采用两层的半监督分类GCN 模型定义为:

    Z=A^relu(A^XW0)W1

    其中:

    • A^=D~1/2(A+I)D~1/2$ \hat{\mathbf A} = \tilde{\mathbf D}^{-1/2}(\mathbf A + \mathbf I)\tilde{\mathbf D}^{-1/2} $ ,D~$ \tilde{\mathbf D} $ 为A+I$ \mathbf A + \mathbf I $ 的度矩阵。
    • W0,W1$ \mathbf W_0,\mathbf W_1 $ 为待学习的参数矩阵。

    这里我们没有对输出应用 softmax 函数,而是将其视为以下所述损失的一部分。

    我们将A^relu(A^XW0)$ \hat{\mathbf A}\text{relu}\left(\hat{\mathbf A}\mathbf X \mathbf W_0\right) $ 视为通用的GCN 特征抽取器fθ(X,A^)$ f_\theta\left(\mathbf X,\hat{\mathbf A}\right) $ ,参数集合θ={W0}$ \theta=\{\mathbf W_0\} $ 也可以包含 GCN 变体中对应网络架构的其它参数。因此,GCN 分解为特征抽取feature extraction 和线性映射linear transformation 两个部分:

    fθ(X,A^)=A^relu(A^XW0)Z=fθ(X,A^)Θ

    其中参数集θ={W0}$ \theta=\{\mathbf W_0\} $ 以及Θ=W1$ \mathbf\Theta=\mathbf W_1 $ 从数据中学得。

  3. 考虑transductive 半监督任务。给定标记样本集合VlabelV$ \mathcal V_{\text{ label}}\sub \mathcal V $ 且|Vlabel||V|$ |\mathcal V_{\text{ label}}|\ll |\mathcal V| $ ,以及label 矩阵YRn×K$ \mathbf Y\in \mathbb R^{n\times K} $ 。其中K$ K $ 为label 维度,对于节点分类任务K=1$ K=1 $ 。

    我们通过最小化输出和节点真实标记之间的损失来学习 GCN 模型的参数。即:

    Z=fθ(X,A^)Θθ,Θ=argminθ,ΘLsup(θ,Θ)=argminθ,Θ1|Vlabel|viVlabelL(zi,yi)

    其中:

    • zi$ \mathbf{\vec z}_i $ 为节点vi$ v_i $ 的输出向量,yi$ \mathbf{\vec y}_i $ 为节点vi$ v_i $ 的 label 向量。
    • L(,)$ L(\cdot,\cdot) $ 为单个样本的损失函数,Lsup$ \mathcal L_{\text{sup}} $ 为所有监督样本的损失函数。
  4. 受到 CNN 中相关讨论的启发(《Scaling and benchmarking self-supervised visual representation learning》《Revisiting self-supervised visual representation learning》《Using self-supervised learning can improve model robustness and uncertainty》),我们调研了三种可能自监督任务(ss)来融合到 GCN 中。其中:自监督任务的节点集合为Vss$ \mathcal V_{ss} $ 、节点特征矩阵Xss$ \mathbf X_{ss} $ 、邻接矩阵A^ss$ \hat{\mathbf A}_{ss} $ 、标签矩阵Yss$ \mathbf Y_{ss} $ :预训练和微调 Pretraining&Finetuning 、自训练Self-Training、多任务学习 Multi-Task Leraning

a. 预训练和微调

  1. 在预训练过程中,模型通过自监督任务来训练特征抽取器:

    Zss=fθ(Xss,A^ss)Θssθss,Θss=argminθ,ΘssLss(θ,Θss)=argminθ,Θss1|Vss|viVssLss(zss,i,yss,i)

    其中:

    • Θss$ \mathbf\Theta_{ss} $ 为线性映射的参数,它和target 任务的线性映射参数Θ$ \mathbf\Theta $ 不同。
    • θ$ \theta $ 为特征抽取器的参数,它和 target 任务共享。
    • Lss(,)$ L_{\text{ss}}(\cdot,\cdot) $ 为自监督任务单个样本的损失函数,Lss$ \mathcal L_{\text{ss}} $ 为自监督任务所有样本的损失函数。

    然后在微调任务中,特征抽取器fθ(,)$ f_\theta(\cdot,\cdot) $ 根据公式:θ,Θ=argminθ,ΘLsup(θ,Θ)$ \theta^*,\mathbf\Theta^* = \arg\min_{\theta,\mathbf\Theta}\mathcal L_{\text{sup}}(\theta,\mathbf\Theta) $ 来训练,并使用θss$ \theta_{\text{ss}}^* $ 来初始化参数θ$ \theta $ 。

  2. 预训练和微调可以说是有利于 GCN 的自监督方法的最直接的选择。但是我们发现:在大型数据集Pubmed 上,该方法几乎没有提高性能(见下表)。我们猜测是因为:

    • 预训练期间的目标函数Lss(,)$ \mathcal L_{\text{ss}}(\cdot,\cdot) $ 和微调期间的目标函数Lsup(,)$ \mathcal L_{\text{sup}}(\cdot,\cdot) $ 不同,二者之间存在gap

    • 在微调过程中,由于从一个目标函数(即Lss(,)$ \mathcal L_{\text{ss}}(\cdot,\cdot) $ )切换到另一个不同的目标函数(即Lsup(,)$ \mathcal L_{\text{sup}}(\cdot,\cdot) $ )时,由于 transductive 半监督学习使用浅层的 GCN,而这个浅层 GCN 的很容易被 overwrite

      至于为什么不用深层 GCN,是因为更深的 GCN 会导致过度平滑。

    下表为 PubMed 数据集上的预训练&微调 P&F 、多任务学习 MTL 的性能比较,其中自监督任务为图划分。数字表示分类准确率。

b. 自训练

  1. 《self-supervised learning for graph convolutional networks》GCN 中唯一进行自监督的工作,它是通过自训练来实现的。

    对于同时包含标记样本、未标记样本的数据集,典型的自训练pipeline

    • 首先对标记样本训练一个模型。
    • 然后对置信度很高的未标记样本分配伪标记pseudo-label
    • 接着将这些伪标记样本、标记样本视作新的标记样本进行下一轮训练。

    该过程可以重复几轮,并且每轮中都会对未标记样本分配伪标记。

    这篇论文的作者提出了 multi-stage self-supervised: M3S 训练算法,其中采用了自监督来对齐和完善未标记节点的伪标签。尽管在few-shot 实验中该方法的性能有所提高,但是随着标记率(标记样本的占比)提升,M3S 的性能增益趋于饱和。

c. 多任务学习

  1. 多任务学习同时考虑GCN 的目标任务target task和自监督任务,训练过程的目标函数为:

    Z=fθ(X,A^)Θ,Zss=fθ(Xss,A^ss)Θssθ,Θ,Θss=argminθ,Θ,Θss(α1Lsup(θ,Θ)+α2Lss(θ,Θss))

    其中:α1,α2>0$ \alpha_1,\alpha_2\gt 0 $ 平衡损失函数Lsup$ \mathcal L_{\text{sup}} $ 和Lss$ \mathcal L_{\text{ss}} $ 之间的重要性。

    因此目标任务和自监督任务共享相同的特征抽取器fθ()$ f_\theta(\cdot) $ ,但是它们具有各自的线性映射参数Θ$ \mathbf\Theta $ 和Θss$ \mathbf\Theta_{ss} $ ,如下图所示。

  2. 在多任务学习中,我们将自监督任务视为整个模型训练中的一个正则化项。

    正则化项在传统上广泛应用于图信号处理,著名的是图拉普拉斯正则化器 graph Laplacian regularizer: GLR,它惩罚了相邻节点之间的不相干(即不平滑)的信号。尽管 GLR 的有效性已经在图信号处理中得到了证明,但正则化器是根据平滑先验smoothness prior 人工设置的,没有数据的参与。

    而自监督任务扮演了一个正则化器的角色,它从未标记数据中学到,弱化了人工的先验指导。因此,一个合适的自监督任务将引入数据驱动的先验知识,从而提高模型的泛化能力。

    总而言之,多任务学习是三者中最通用的框架,并在训练过程中充当数据驱动的正则化器。它不对自监督任务类型做任何假设。经实验验证,它是所有三个方法中最有效的。

3.2 自监督任务

  1. 前面讲到我们可以通过自监督任务来训练 GCN,这里我们给出:针对GCN 都有哪些自监督任务。

    我们表明:通过利用图中丰富的节点信息、边信息,可以定义各种 GCN-specific 自监督任务(如下表所示),这些自监督任务可以帮助下游任务。

  2. 节点聚类node clustering:参考 M3S 的做法,一种构造自监督任务的直接方法是节点聚类。

    给定节点集合V$ \mathcal V $ 、节点特征矩阵X$ \mathbf X $ 、以及预定义的聚类大小1K|V|$ 1\le K\le |\mathcal V| $ (K$ K $ 为超参数),聚类算法将输出簇的集合{Vclu,1,Vclu,2,,Vclu,K}$ \{\mathcal V_{\text{clu},1},\mathcal V_{\text{clu},2},\cdots,\mathcal V_{\text{clu},K}\} $ ,其中:

    Vclu,kV,Vclu,kϕ,k=1,2,,Kk=1KVclu,k=V,Vclu,iVclu,j=ϕ;(ij)

    我们将每个节点分配它所属的类簇编号:yss,i=kifviVclu,k$ y_{ss,i} = k \text{ if } v_i\in \mathcal V_{\text{clu},k} $ 。然后自监督任务即为监督分类任务。

    通过聚类算法来获得自监督任务的 node label 。采用何种聚类算法?论文这里没有讲述。

  3. 图划分graph partitioning :节点聚类相关的算法基于节点特征,其原理是对具有相似属性的节点进行分组。对节点进行分组的另一个思路是:基于图的拓扑结构。具体而言,如果两个节点之间存在强链接(即链接权重很大),则这两个节点很可能属于同一标签类别。因此我们提出使用图分区的基于拓扑结构 topology-based 的自监督任务。

    图分区是将图的节点划分为大致相等的子集,并使得跨子集的链接最小化。给定节点集合V$ \mathcal V $ 、边集合E$ \mathcal E $ 、图的邻接矩阵A$ \mathbf A $ 、预定义的划分数量1K|V|$ 1\le K\le |\mathcal V| $ (K$ K $ 为超参数),图划分算法将输出一组节点集合{Vpar,1,Vpar,2,,Vpar,K}$ \{\mathcal V_{\text{par},1},\mathcal V_{\text{par},2},\cdots,\mathcal V_{\text{par},K}\} $ ,其中:

    Vpar,kV,Vpar,kϕ,k=1,2,,Kk=1KVpar,k=V,Vpar,iVpar,j=ϕ;(ij)

    这类似于节点聚类。

    另外,对图划分施加平衡约束 balance constraint

    K×maxk|Vpar,k||V|1+ϵ

    其中ϵ(0,1)$ \epsilon\in (0,1) $ 。

    图分区的目标是最小化 edgecut

    edgecut=12k=1KviVpar,k(vi,vj)E,vjVpar,kai,j

    我们将分区index 作为自监督任务的 labelyss,i=kifviVpar,k$ y_{ss,i} = k \text{ if } v_i\in\mathcal V_{\text{par},k} $ 。

    与基于节点特征的节点聚类不同,图划分提供了基于图拓扑结构的先验正则化,这类似于图拉普拉斯正则化器GLR (它也采用了 connection-prompting similarity 的思想 )。但是,GLR 已经注入injectGCN 架构中,它会对所有节点局部平滑它们的邻居节点。相反,图划分利用所有连接,对具有较高连接密度的节点群进行分组来考虑全局平滑性 global smoothness

  4. 图补全graph completion :受计算机视觉领域中的图像修复和补全的启发(它旨在补全图像的缺失像素),我们提出了一种的新的回归任务作为自监督任务:图补全。

    如下图所述,和图像补全image completion 任务类似,我们的图补全任务:

    • 首先,删除目标节点的特征来遮盖mask目标节点。
    • 然后,向 GCN 输入未遮盖的节点特征来恢复被遮盖的节点特征。

    我们设计这种自监督任务的原因如下:

    • 可以自由地获取completion label,即节点特征本身。
    • 我们认为图补全任务可以帮助网络更好地表示特征,从而教会网络从上下文 context 中抽取特征。

    还有一种自监督任务:链接预测。链接预测也同时利用了节点特征和图结构。

3.3 图对抗防御

  1. 通过为 GCN 引入三个自监督任务,可以使得GCN 在图半监督学习上获得更好的泛化能力。我们继续研究自监督任务在针对各种图对抗攻击的鲁棒性方面的表现。

    这里我们仅关注于单个节点的直接规避攻击direct evasion attack:基于目标节点vi$ v_i $ 的属性或链接的 node-specific 攻击(攻击满足某些约束条件),而训练好的模型(模型参数为(θ,Θ)$ (\theta^*,\mathbf\Theta^*) $ )在攻击前后预测不变。

    攻击者g()$ g(\cdot) $ 产生了扰动的特征矩阵X$ \mathbf X^\prime $ 和扰动的邻接矩阵A$ \mathbf A^\prime $ :

    X,A=g(X,A,Y,vi,θ,Θ)

    其中g()$ g(\cdot) $ 将目标节点的属性、链接、label 、以及模型参数作为输入。

    攻击可以发生在链接link 上、节点特征上、或者二者同时攻击。

  2. 对抗防御 adversarial defense :一种有效的对抗防御方法(尤其是在图像领域)是采用对抗训练adversarial training 。在对抗训练中通过对抗样本adversarial examples 来增强训练集。 但是,由于在 transductive 半监督 setting 中的标记率较低,因此很难在图领域中生成对抗样本。

    《Graphdefense: Towards robust graph convolutional networks》 提出利用未标记节点来生成对抗样本。具体而言,他们训练了原始 GCN ,将伪标签Ypseudo$ \mathbf Y_{\text{pseudo}} $ 分配给未标记的节点。然后他们随机从未标记节点集合中选择两个不相交的子集Vclean,Vattack$ \mathcal V_{\text{clean}},\mathcal V_{\text{attack}} $ ,并且攻击每个目标节点viVattack$ v_i\in \mathcal V_{\text {attack}} $ 来生成随机扰动的特征矩阵X$ \mathbf X^\prime $ 和邻接矩阵A$ \mathbf A^\prime $ 。

    对图数据的对抗训练可以形式化为同时对标记节点的监督学习、以及对未标记节点(Vclean,Vattack$ \mathcal V_{\text{clean}},\mathcal V_{\text{attack}} $ )的伪标签 pseudo labelrecovering

    Z=fθ(X,A^)Θ,Z=fθ(X,A^)Θθ,Θ=argminθ,Θ(Lsup(θ,Θ)+α3×Ladv(θ,Θ))

    其中α3$ \alpha_3 $ 是对抗损失Ladv$ \mathcal L_{\text{adv}} $ 的权重。

  3. 带自监督的对抗防御:引入自监督学习以及对抗训练的 GCN 为:

    Z=fθ(X,A^)Θ,Z=fθ(X,A^)Θ,Zss=fθ(Xss,A^ss)Θssθ,Θ,Θss=argminθ,Θ,Θss(α1×Lsup(θ,Θ)+α2×Lss(θ,Θss)+α3×Ladv(θ,Θ))

    其中自监督损失函数也参与训练过程,它将扰动图作为输入(自监督的标签矩阵Yss$ \mathbf Y_{ss} $ 也是从扰动图中生成)。

    CNN 中观察到:自监督可以提高鲁棒性和不确定性估计 uncertainty estimation,无需更大的模型或额外的数据。因此我们通过实验探索了这一点是否也适用于 GCN

    这里需要提前训练一个仅包含监督任务的 GCN 模型从而获得伪标签。

3.4 实验

  1. 数据集如下所示,N 表示特征维度:

  2. 三种自监督方式、三种自监督任务的对比。其中 M3S 的超参数设置为原始论文的默认值。表中:

    • 每个结果都采用不同的随机数种子随机执行50次,并报告平均的准确率和标准差。

    • Clu: Node ClusteringPar: Graph PartitionComp: Graph Completion 表示三种自监督任务;P&T:pretraining&finetuningM3SMTL:multi-task learning 表示三种自监督方式。

      P&T-Clu 表示自监督方式和自监督任务的组合。

    • 红色数字表示在该数据中,超过 GCN 至少 0.8 的、表现最佳的两项。

    • GCN 一栏,灰色数字表示公开发表的结果。

    结论:

    • 三种自监督方式中,预训练&微调为小型数据集 Cora 提供了一些改善,但对于大型数据集 CiteseerPubMed 却几乎没有改善。即使是采用不同的自监督任务,结论也是如此。

      这证明了我们之前的猜测:尽管在预训练阶段通过自监督任务Lss$ \mathcal L_{\text{ss}} $ 学到关于图结构和特征的信息,但是这些信息可能在微调期间大量丢失,因为微调期间仅针对目标监督损失Lsup$ \mathcal L_{\text{sup}} $ 。

      GCN 中特别观察到这种信息丢失的可能原因是:在微调过程中,从一个目标函数切换到另一个目标函数时,在 transductive 半监督学习 setting 中使用的浅层 GCN很容易被 overwritten

    • 剩下的两种自监督方式相比于原始 GCN,在节点分类上得到更大的提升。

      和预训练&微调相比,自学习、多任务学习的自监督方式都通过一个优化问题(即,一个联合损失函数)从而将自监督融合到 GCN 中,二者本质上都会给 GCN 中的原始公式带来额外的自监督损失。它们的区别在于:使用了哪些伪标签以及如何为未标记的节点生成伪标签。

      • 在自训练的情况下,伪标签和目标任务标签类型相同,并且这些伪标签根据未标记节点 embedding 和标记节点 embedding 之间的邻近性来分配。

      • 在多任务学习的情况下,伪标签不再局限于目标任务标签类型,而是可以通过探索未标记数据的图结构和节点特征来构造伪标签。并且多任务学习中的目标监督学习和自监督学习仍然通过 grap embedding 来耦合。

        因此和自训练相比,多任务学习可以更通用(在伪标签方面),并且可以更多地利用图数据(通过正则化)。

  3. 我们通过一组实验来回答三个问题:

    • 多任务自监督学习对于 SOTA GCN 是否有帮助?

      下表显示:不同的自监督任务可以在不同程度上对不同数据集上的不同网络体系结构有帮助。表中红色数字表示每个 SOTA 方法最佳的两个性能(包括没有自监督学习的版本)。

    • 多任务自监督何时、并且为什么能帮助 SOTA GCN

      我们注意到:图分区任务通常对所有三个数据集上的所有三个 SOTA 都有利,而节点聚类任务对 PubMed上的 SOTA没有好处。

      如前所述,多任务学习将自监督任务引入到GCN 中,从而作为数据驱动的正则化。不同的自监督任务代表不同的先验条件:

      • 基于特征的节点聚类假设特征相似性,从而意味着 target-label 相似性,并且可以将具有相似特征的遥远节点分组在一起。

        当数据集很大,且特征维度相对较低时(如 PubMed),基于特征的聚类可能难以提供有效的伪标签。

      • 基于拓扑的图分区假设拓扑结构的连接性,从而意味着 target-label 相似性。这对于所有三个引文网络数据集都是安全的。

        另外,图分区作为一个分类任务并不会过于强调该假设。因此,由于图分区代表的先验是通用且有效的,因此可以使得 GCN 任务受益(至少对于实验中的数据集以及对应的目标任务而言)。

      • 同时考虑拓扑结构和节点特征的图补全任务假设特征相似性、以及图的小范围邻域内的平滑性。它可以极大地提高目标任务性能,尤其是当邻域规模较小时(如在所有三个数据集中平均 degree 最小的 Citeseer )。

        但是,面对具有更大邻域的稠密图、更困难的补全任务时(如PubMed 数据集,它有更大、更稠密的图,且待补全的特征是连续的),回归任务面临很大挑战。

        话虽如此,图补全的潜在先验信息可以极大地有利于其它任务。

    • GNN 架构会影响多任务自监督吗?

      对于每个 GNN架构,所有三个自监督的任务都能提高某些数据集的性能(PubMed 上的 GMNN 除外)。

      • 对于 GCN,GAT,GIN 而言,改善更为明显。我们推测:通过各种先验的数据正则化可以使这三种架构(尤其是 GCN)受益。

      • 相反,带图补全自监督学习的 GMNN 没有什么改善。GMNN 将统计关系学习 statistical relational learning:SRL 引入到体系架构中,从而对节点及其邻居之间的依赖关系进行建模。

        考虑到图补全有助于 content-based representation,并且起着和 SRL 相似的作用,因此自监督先验和体系结构的先验可能相似,因此它们的组合可能没有效果。

      • 同样,GraphMix 在架构中引入了一种数据增强方法 Mixup,从而优化特征 embedding。这也和图补全任务的目标重叠从而降低了图补全任务的效果。

  4. 多任务自监督学习除了给 GCN 带来 graph embedding 泛化能力的提升之外,还有哪些额外的好处?

    我们还对 GCN 进行了针对 Nettack 的多任务自监督的对抗实验,从而检验它在鲁棒性方面的潜在优势。

    我们首先以相同的扰动强度nperturb=2$ n_{\text{perturb}} = 2 $ 来生成对抗训练中的攻击,从而检验鲁棒的泛化能力robust generalization 。对于每个自监督任务,将超参数设置和前面实验一样。每个实验重复5次并报告平均的实验结果,因为对测试节点的攻击过程非常耗时。实验结果如下表所示。结论:

    • 节点聚类更有效地抵抗特征攻击。在对抗训练中,节点聚类为 GCN 提供了扰动特征先验 perturbed feature prior从而增强了 GCN 抵抗特征攻击的能力。

    • 图分区更有效地抵抗链接攻击。在对抗训练中,图分区为 GCN 提供了扰动链接先验 perturbed link prior ,从而增强了 GCN 抵抗链接攻击的能力。

    • 令人惊讶的是,在 Cora 数据集上,图补全可以针对链接攻击将对抗准确率提升 4.5%(相对于 AdvT)、针对链接且特征的攻击将对抗准确率提升8.0% (相对于 AdvT)。

      图补全也是针对 Citeseer 的链接攻击、链接且特征攻击的最佳自监督任务之一,尽管提升幅度较小(1%) 。

      这和我们在前文的推测一致:同时考虑基于拓扑和基于特征的图补全构建了链接和特征上的扰动先验 perturbation prior,这有利于 GCN 抵抗链接攻击或链接且特征攻击。

    注:下表为在 Cora 数据集上的对抗训练(AdvT ),带或者不带自监督学习。攻击发生在链接Links、节点特征 Feats、链接且节点特征Links&Feats 。红色表示在每种攻击场景中最佳的两个表现。

    注:下表为在 Citeseer 数据集上的对抗训练(AdvT ),带或者不带自监督学习。

  5. 此外,我们产生具有不同扰动强度的攻击(nperturb{1,2,3,4}$ n_{\text{perturb}}\in \{1,2,3,4\} $ ),以检验我们结论的普遍性。实验结果表明:通过在对抗训练中引入自监督,GCN仍然可以提高其鲁棒性,从而应对各种强度的各种攻击。

  6. 结论:我们简单总结如下:

    • 首先,在将自监督纳入 GCN 的三种方案中:

      • 多任务学习可以作为正则化器,并通过适当的自监督任务使得 GCN 的效果得到一致地提升。
      • 预训练&微调将目标函数从自监督损失转换为目标监督损失,这很容易 overwrite 浅层 GCN,并获得有限的性能提升。
      • 自训练受限于分配了哪些伪标签,以及使用哪些数据来生成伪标签。它的性能提升在 few-shot learning 中更明显,并随着标记率的提升而逐渐减少。
    • 其次,通过多任务学习,自监督任务提供了有益的先验来提升 GCN 的性能。

      • 节点聚类提供节点特征的先验。
      • 图分区提供图结构的先验。
      • 图补全同时提供节点特征、图结构的先验,从而帮助 GCN 进行得到 context-based representation

      另外,自监督任务是否有助于SOTA GCN 取决于数据集是否生成针对目标任务的高质量的伪标签,以及自监督的先验是否补充了现有体系结构的先验。

      链接预测作为自监督任务,也同时提供节点特征、图结构的先验。

    • 最后,对抗训练中多任务自监督提高了GCN 抵御各种图攻击的鲁棒性。

      • 节点聚类提供节点特征的先验,因此可以更好地抵御节点特征攻击。
      • 图分区提供图结构的先验,因此可以更好地抵御链接攻击。
      • 图补全同时提供节点特征、图结构的先验,因此能同时抵御节点特征攻击、链接攻击,一致地提高了鲁棒性。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文