数学基础
- 线性代数
- 概率论与随机过程
- 数值计算
- 蒙特卡洛方法与 MCMC 采样
- 机器学习方法概论
统计学习
深度学习
- 深度学习简介
- 深度前馈网络
- 反向传播算法
- 正则化
- 深度学习中的最优化问题
- 卷积神经网络
- CNN:图像分类
- 循环神经网络 RNN
- Transformer
- 一、Transformer [2017]
- 二、Universal Transformer [2018]
- 三、Transformer-XL [2019]
- 四、GPT1 [2018]
- 五、GPT2 [2019]
- 六、GPT3 [2020]
- 七、OPT [2022]
- 八、BERT [2018]
- 九、XLNet [2019]
- 十、RoBERTa [2019]
- 十一、ERNIE 1.0 [2019]
- 十二、ERNIE 2.0 [2019]
- 十三、ERNIE 3.0 [2021]
- 十四、ERNIE-Huawei [2019]
- 十五、MT-DNN [2019]
- 十六、BART [2019]
- 十七、mBART [2020]
- 十八、SpanBERT [2019]
- 十九、ALBERT [2019]
- 二十、UniLM [2019]
- 二十一、MASS [2019]
- 二十二、MacBERT [2019]
- 二十三、Fine-Tuning Language Models from Human Preferences [2019]
- 二十四 Learning to summarize from human feedback [2020]
- 二十五、InstructGPT [2022]
- 二十六、T5 [2020]
- 二十七、mT5 [2020]
- 二十八、ExT5 [2021]
- 二十九、Muppet [2021]
- 三十、Self-Attention with Relative Position Representations [2018]
- 三十一、USE [2018]
- 三十二、Sentence-BERT [2019]
- 三十三、SimCSE [2021]
- 三十四、BERT-Flow [2020]
- 三十五、BERT-Whitening [2021]
- 三十六、Comparing the Geometry of BERT, ELMo, and GPT-2 Embeddings [2019]
- 三十七、CERT [2020]
- 三十八、DeCLUTR [2020]
- 三十九、CLEAR [2020]
- 四十、ConSERT [2021]
- 四十一、Sentence-T5 [2021]
- 四十二、ULMFiT [2018]
- 四十三、Scaling Laws for Neural Language Models [2020]
- 四十四、Chinchilla [2022]
- 四十七、GLM-130B [2022]
- 四十八、GPT-NeoX-20B [2022]
- 四十九、Bloom [2022]
- 五十、PaLM [2022] (粗读)
- 五十一、PaLM2 [2023](粗读)
- 五十二、Self-Instruct [2022]
- 句子向量
- 词向量
- 传统CTR 预估模型
- CTR 预估模型
- 一、DSSM [2013]
- 二、FNN [2016]
- 三、PNN [2016]
- 四、DeepCrossing [2016]
- 五、Wide 和 Deep [2016]
- 六、DCN [2017]
- 七、DeepFM [2017]
- 八、NFM [2017]
- 九、AFM [2017]
- 十、xDeepFM [2018]
- 十一、ESMM [2018]
- 十二、DIN [2017]
- 十三、DIEN [2019]
- 十四、DSIN [2019]
- 十五、DICM [2017]
- 十六、DeepMCP [2019]
- 十七、MIMN [2019]
- 十八、DMR [2020]
- 十九、MiNet [2020]
- 二十、DSTN [2019]
- 二十一、BST [2019]
- 二十二、SIM [2020]
- 二十三、ESM2 [2019]
- 二十四、MV-DNN [2015]
- 二十五、CAN [2020]
- 二十六、AutoInt [2018]
- 二十七、Fi-GNN [2019]
- 二十八、FwFM [2018]
- 二十九、FM2 [2021]
- 三十、FiBiNET [2019]
- 三十一、AutoFIS [2020]
- 三十三、AFN [2020]
- 三十四、FGCNN [2019]
- 三十五、AutoCross [2019]
- 三十六、InterHAt [2020]
- 三十七、xDeepInt [2023]
- 三十九、AutoDis [2021]
- 四十、MDE [2020]
- 四十一、NIS [2020]
- 四十二、AutoEmb [2020]
- 四十三、AutoDim [2021]
- 四十四、PEP [2021]
- 四十五、DeepLight [2021]
- 图的表达
- 一、DeepWalk [2014]
- 二、LINE [2015]
- 三、GraRep [2015]
- 四、TADW [2015]
- 五、DNGR [2016]
- 六、Node2Vec [2016]
- 七、WALKLETS [2016]
- 八、SDNE [2016]
- 九、CANE [2017]
- 十、EOE [2017]
- 十一、metapath2vec [2017]
- 十二、GraphGAN [2018]
- 十三、struc2vec [2017]
- 十四、GraphWave [2018]
- 十五、NetMF [2017]
- 十六、NetSMF [2019]
- 十七、PTE [2015]
- 十八、HNE [2015]
- 十九、AANE [2017]
- 二十、LANE [2017]
- 二十一、MVE [2017]
- 二十二、PMNE [2017]
- 二十三、ANRL [2018]
- 二十四、DANE [2018]
- 二十五、HERec [2018]
- 二十六、GATNE [2019]
- 二十七、MNE [2018]
- 二十八、MVN2VEC [2018]
- 二十九、SNE [2018]
- 三十、ProNE [2019]
- Graph Embedding 综述
- 图神经网络
- 一、GNN [2009]
- 二、Spectral Networks 和 Deep Locally Connected Networks [2013]
- 三、Fast Localized Spectral Filtering On Graph [2016]
- 四、GCN [2016]
- 五、神经图指纹 [2015]
- 六、GGS-NN [2016]
- 七、PATCHY-SAN [2016]
- 八、GraphSAGE [2017]
- 九、GAT [2017]
- 十、R-GCN [2017]
- 十一、 AGCN [2018]
- 十二、FastGCN [2018]
- 十三、PinSage [2018]
- 十四、GCMC [2017]
- 十五、JK-Net [2018]
- 十六、PPNP [2018]
- 十七、VRGCN [2017]
- 十八、ClusterGCN [2019]
- 十九、LDS-GNN [2019]
- 二十、DIAL-GNN [2019]
- 二十一、HAN [2019]
- 二十二、HetGNN [2019]
- 二十三、HGT [2020]
- 二十四、GPT-GNN [2020]
- 二十五、Geom-GCN [2020]
- 二十六、Graph Network [2018]
- 二十七、GIN [2019]
- 二十八、MPNN [2017]
- 二十九、UniMP [2020]
- 三十、Correct and Smooth [2020]
- 三十一、LGCN [2018]
- 三十二、DGCNN [2018]
- 三十三、AS-GCN
- 三十四、DGI [2018]
- 三十五、DIFFPOLL [2018]
- 三十六、DCNN [2016]
- 三十七、IN [2016]
- 图神经网络 2
- 图神经网络 3
- 推荐算法(传统方法)
- 一、Tapestry [1992]
- 二、GroupLens [1994]
- 三、ItemBased CF [2001]
- 四、Amazon I-2-I CF [2003]
- 五、Slope One Rating-Based CF [2005]
- 六、Bipartite Network Projection [2007]
- 七、Implicit Feedback CF [2008]
- 八、PMF [2008]
- 九、SVD++ [2008]
- 十、MMMF 扩展 [2008]
- 十一、OCCF [2008]
- 十二、BPR [2009]
- 十三、MF for RS [2009]
- 十四、 Netflix BellKor Solution [2009]
- 推荐算法(神经网络方法 1)
- 一、MIND [2019](用于召回)
- 二、DNN For YouTube [2016]
- 三、Recommending What Video to Watch Next [2019]
- 四、ESAM [2020]
- 五、Facebook Embedding Based Retrieval [2020](用于检索)
- 六、Airbnb Search Ranking [2018]
- 七、MOBIUS [2019](用于召回)
- 八、TDM [2018](用于检索)
- 九、DR [2020](用于检索)
- 十、JTM [2019](用于检索)
- 十一、Pinterest Recommender System [2017]
- 十二、DLRM [2019]
- 十三、Applying Deep Learning To Airbnb Search [2018]
- 十四、Improving Deep Learning For Airbnb Search [2020]
- 十五、HOP-Rec [2018]
- 十六、NCF [2017]
- 十七、NGCF [2019]
- 十八、LightGCN [2020]
- 十九、Sampling-Bias-Corrected Neural Modeling [2019](检索)
- 二十、EGES [2018](Matching 阶段)
- 二十一、SDM [2019](Matching 阶段)
- 二十二、COLD [2020 ] (Pre-Ranking 模型)
- 二十三、ComiRec [2020](https://www.wenjiangs.com/doc/0b4e1736-ac78)
- 二十四、EdgeRec [2020]
- 二十五、DPSR [2020](检索)
- 二十六、PDN [2021](mathcing)
- 二十七、时空周期兴趣学习网络ST-PIL [2021]
- 推荐算法之序列推荐
- 一、FPMC [2010]
- 二、GRU4Rec [2015]
- 三、HRM [2015]
- 四、DREAM [2016]
- 五、Improved GRU4Rec [2016]
- 六、NARM [2017]
- 七、HRNN [2017]
- 八、RRN [2017]
- 九、Caser [2018]
- 十、p-RNN [2016]
- 十一、GRU4Rec Top-k Gains [2018]
- 十二、SASRec [2018]
- 十三、RUM [2018]
- 十四、SHAN [2018]
- 十五、Phased LSTM [2016]
- 十六、Time-LSTM [2017]
- 十七、STAMP [2018]
- 十八、Latent Cross [2018]
- 十九、CSRM [2019]
- 二十、SR-GNN [2019]
- 二十一、GC-SAN [2019]
- 二十二、BERT4Rec [2019]
- 二十三、MCPRN [2019]
- 二十四、RepeatNet [2019]
- 二十五、LINet(2019)
- 二十六、NextItNet [2019]
- 二十七、GCE-GNN [2020]
- 二十八、LESSR [2020]
- 二十九、HyperRec [2020]
- 三十、DHCN [2021]
- 三十一、TiSASRec [2020]
- 推荐算法(综述)
- 多任务学习
- 系统架构
- 实践方法论
- 深度强化学习 1
- 自动代码生成
工具
- CRF
- lightgbm
- xgboost
- scikit-learn
- spark
- numpy
- matplotlib
- pandas
- huggingface_transformer
- 一、Tokenizer
- 二、Datasets
- 三、Model
- 四、Trainer
- 五、Evaluator
- 六、Pipeline
- 七、Accelerate
- 八、Autoclass
- 九、应用
- 十、Gradio
Scala
- 环境搭建
- 基础知识
- 函数
- 类
- 样例类和模式匹配
- 测试和注解
- 集合 collection(一)
- 集合collection(二)
- 集成 Java
- 并发
三、GCN 自监督学习 [2020]
图卷积神经网络
GCN
将卷积神经网络CNN
推广到了图结构数据,从而利用图的属性。在很多graph-based
任务(诸如节点分类、链接分类、链接预测、图分类任务)中,GCN
的性能优于传统方法,其中很多是半监督学习任务。这里我们主要讨论transductive
半监督节点分类任务,其中图包含大量未标记节点、少量的标记节点,任务目标是预测剩余未标记节点的label
。与此同时,自监督
self-supervision
在计算机视觉领域引起了人们的广泛关注。自监督利用了丰富的未标记数据,旨在通过预训练pretraining
(随后紧跟着微调finetuning
)、多任务学习multi-task learning
等前置任务pretext task
帮助模型从未标记的数据中学习更可迁移的transferable
、更泛化generalized
的representation
。前置任务必须经过精心设计使得网络可以学习下游任务相关的语义特征。目前已经为
CNN
提出了很多前置任务,包括:旋转rotation
、exemplar
、jigsaw
、relative 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
在各种攻击下的鲁棒性,无需使用更大的模型或更多的数据。
相关工作:
graph-based
半监督学习:基于图的半监督学习的关键假设是,较大权重的边连接的节点更可能具有相同的标签。基于图的半监督学习方法有大量的工作,例如
mincuts
、Boltzmann 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 refining
和adversarial contrasting learning
来提升模型的鲁棒性。《Graphdefense: Towards robust graph convolutional networks》
提出使用未标记数据的伪标签,增强了对大图的可扩展性。
3.1 自监督方式
给定图
$ \mathcal G=\{\mathcal V, \mathcal E\} $ ,其中 $ \mathcal V=\{v_1,v_2,\cdots,v_n\} $ 为节点集合, $ \mathcal E=\{e_{i,j}\} $ 为边集合, $ e_{i,j} = (v_i,v_j) $ 代表节点 $ v_i,v_j $ 之间的边。每个节点
$ v_i $ 关联一个特征向量 $ \mathbf{\vec x}_i\in \mathbb R^d $ ,其中 $ d $ 为特征向量维度。所有节点的特征向量构成节点特征矩阵 $ \mathbf X\in \mathbb R^{n\times d} $ 。定义图邻接矩阵
$ \mathbf A\in \mathbb R^{n\times n} $ ,其中:且
$ a_{i,j} = a_{j,i} $ 。
典型的采用两层的半监督分类
GCN
模型定义为:其中:
$ \hat{\mathbf A} = \tilde{\mathbf D}^{-1/2}(\mathbf A + \mathbf I)\tilde{\mathbf D}^{-1/2} $ , $ \tilde{\mathbf D} $ 为 $ \mathbf A + \mathbf I $ 的度矩阵。 $ \mathbf W_0,\mathbf W_1 $ 为待学习的参数矩阵。
这里我们没有对输出应用
softmax
函数,而是将其视为以下所述损失的一部分。我们将
$ \hat{\mathbf A}\text{relu}\left(\hat{\mathbf A}\mathbf X \mathbf W_0\right) $ 视为通用的GCN
特征抽取器 $ f_\theta\left(\mathbf X,\hat{\mathbf A}\right) $ ,参数集合 $ \theta=\{\mathbf W_0\} $ 也可以包含GCN
变体中对应网络架构的其它参数。因此,GCN
分解为特征抽取feature extraction
和线性映射linear transformation
两个部分:其中参数集
$ \theta=\{\mathbf W_0\} $ 以及 $ \mathbf\Theta=\mathbf W_1 $ 从数据中学得。考虑
transductive
半监督任务。给定标记样本集合 $ \mathcal V_{\text{ label}}\sub \mathcal V $ 且 $ |\mathcal V_{\text{ label}}|\ll |\mathcal V| $ ,以及label
矩阵 $ \mathbf Y\in \mathbb R^{n\times K} $ 。其中 $ K $ 为label
维度,对于节点分类任务 $ K=1 $ 。我们通过最小化输出和节点真实标记之间的损失来学习
GCN
模型的参数。即:其中:
$ \mathbf{\vec z}_i $ 为节点 $ v_i $ 的输出向量, $ \mathbf{\vec y}_i $ 为节点 $ v_i $ 的label
向量。 $ L(\cdot,\cdot) $ 为单个样本的损失函数, $ \mathcal L_{\text{sup}} $ 为所有监督样本的损失函数。
受到
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
中。其中:自监督任务的节点集合为 $ \mathcal V_{ss} $ 、节点特征矩阵 $ \mathbf X_{ss} $ 、邻接矩阵 $ \hat{\mathbf A}_{ss} $ 、标签矩阵 $ \mathbf Y_{ss} $ :预训练和微调Pretraining&Finetuning
、自训练Self-Training
、多任务学习Multi-Task Leraning
。
a. 预训练和微调
在预训练过程中,模型通过自监督任务来训练特征抽取器:
其中:
$ \mathbf\Theta_{ss} $ 为线性映射的参数,它和target
任务的线性映射参数 $ \mathbf\Theta $ 不同。 $ \theta $ 为特征抽取器的参数,它和target
任务共享。 $ L_{\text{ss}}(\cdot,\cdot) $ 为自监督任务单个样本的损失函数, $ \mathcal L_{\text{ss}} $ 为自监督任务所有样本的损失函数。
然后在微调任务中,特征抽取器
$ f_\theta(\cdot,\cdot) $ 根据公式: $ \theta^*,\mathbf\Theta^* = \arg\min_{\theta,\mathbf\Theta}\mathcal L_{\text{sup}}(\theta,\mathbf\Theta) $ 来训练,并使用 $ \theta_{\text{ss}}^* $ 来初始化参数 $ \theta $ 。预训练和微调可以说是有利于
GCN
的自监督方法的最直接的选择。但是我们发现:在大型数据集Pubmed
上,该方法几乎没有提高性能(见下表)。我们猜测是因为:预训练期间的目标函数
$ \mathcal L_{\text{ss}}(\cdot,\cdot) $ 和微调期间的目标函数 $ \mathcal L_{\text{sup}}(\cdot,\cdot) $ 不同,二者之间存在gap
。在微调过程中,由于从一个目标函数(即
$ \mathcal L_{\text{ss}}(\cdot,\cdot) $ )切换到另一个不同的目标函数(即 $ \mathcal L_{\text{sup}}(\cdot,\cdot) $ )时,由于transductive
半监督学习使用浅层的GCN
,而这个浅层GCN
的很容易被overwrite
。至于为什么不用深层
GCN
,是因为更深的GCN
会导致过度平滑。
下表为
PubMed
数据集上的预训练&微调P&F
、多任务学习MTL
的性能比较,其中自监督任务为图划分。数字表示分类准确率。
b. 自训练
《self-supervised learning for graph convolutional networks》
是GCN
中唯一进行自监督的工作,它是通过自训练来实现的。对于同时包含标记样本、未标记样本的数据集,典型的自训练
pipeline
:- 首先对标记样本训练一个模型。
- 然后对置信度很高的未标记样本分配伪标记
pseudo-label
。 - 接着将这些伪标记样本、标记样本视作新的标记样本进行下一轮训练。
该过程可以重复几轮,并且每轮中都会对未标记样本分配伪标记。
这篇论文的作者提出了
multi-stage self-supervised: M3S
训练算法,其中采用了自监督来对齐和完善未标记节点的伪标签。尽管在few-shot
实验中该方法的性能有所提高,但是随着标记率(标记样本的占比)提升,M3S
的性能增益趋于饱和。
c. 多任务学习
多任务学习同时考虑
GCN
的目标任务target task
和自监督任务,训练过程的目标函数为:其中:
$ \alpha_1,\alpha_2\gt 0 $ 平衡损失函数 $ \mathcal L_{\text{sup}} $ 和 $ \mathcal L_{\text{ss}} $ 之间的重要性。因此目标任务和自监督任务共享相同的特征抽取器
$ f_\theta(\cdot) $ ,但是它们具有各自的线性映射参数 $ \mathbf\Theta $ 和 $ \mathbf\Theta_{ss} $ ,如下图所示。在多任务学习中,我们将自监督任务视为整个模型训练中的一个正则化项。
正则化项在传统上广泛应用于图信号处理,著名的是图拉普拉斯正则化器
graph Laplacian regularizer: GLR
,它惩罚了相邻节点之间的不相干(即不平滑)的信号。尽管GLR
的有效性已经在图信号处理中得到了证明,但正则化器是根据平滑先验smoothness prior
人工设置的,没有数据的参与。而自监督任务扮演了一个正则化器的角色,它从未标记数据中学到,弱化了人工的先验指导。因此,一个合适的自监督任务将引入数据驱动的先验知识,从而提高模型的泛化能力。
总而言之,多任务学习是三者中最通用的框架,并在训练过程中充当数据驱动的正则化器。它不对自监督任务类型做任何假设。经实验验证,它是所有三个方法中最有效的。
3.2 自监督任务
前面讲到我们可以通过自监督任务来训练
GCN
,这里我们给出:针对GCN
都有哪些自监督任务。我们表明:通过利用图中丰富的节点信息、边信息,可以定义各种
GCN-specific
自监督任务(如下表所示),这些自监督任务可以帮助下游任务。节点聚类
node clustering
:参考M3S
的做法,一种构造自监督任务的直接方法是节点聚类。给定节点集合
$ \mathcal V $ 、节点特征矩阵 $ \mathbf X $ 、以及预定义的聚类大小 $ 1\le K\le |\mathcal V| $ ( $ K $ 为超参数),聚类算法将输出簇的集合 $ \{\mathcal V_{\text{clu},1},\mathcal V_{\text{clu},2},\cdots,\mathcal V_{\text{clu},K}\} $ ,其中:我们将每个节点分配它所属的类簇编号:
$ y_{ss,i} = k \text{ if } v_i\in \mathcal V_{\text{clu},k} $ 。然后自监督任务即为监督分类任务。通过聚类算法来获得自监督任务的
node label
。采用何种聚类算法?论文这里没有讲述。图划分
graph partitioning
:节点聚类相关的算法基于节点特征,其原理是对具有相似属性的节点进行分组。对节点进行分组的另一个思路是:基于图的拓扑结构。具体而言,如果两个节点之间存在强链接(即链接权重很大),则这两个节点很可能属于同一标签类别。因此我们提出使用图分区的基于拓扑结构topology-based
的自监督任务。图分区是将图的节点划分为大致相等的子集,并使得跨子集的链接最小化。给定节点集合
$ \mathcal V $ 、边集合 $ \mathcal E $ 、图的邻接矩阵 $ \mathbf A $ 、预定义的划分数量 $ 1\le K\le |\mathcal V| $ ( $ K $ 为超参数),图划分算法将输出一组节点集合 $ \{\mathcal V_{\text{par},1},\mathcal V_{\text{par},2},\cdots,\mathcal V_{\text{par},K}\} $ ,其中:这类似于节点聚类。
另外,对图划分施加平衡约束
balance constraint
:其中
$ \epsilon\in (0,1) $ 。图分区的目标是最小化
edgecut
:我们将分区
index
作为自监督任务的label
: $ y_{ss,i} = k \text{ if } v_i\in\mathcal V_{\text{par},k} $ 。与基于节点特征的节点聚类不同,图划分提供了基于图拓扑结构的先验正则化,这类似于图拉普拉斯正则化器
GLR
(它也采用了connection-prompting similarity
的思想 )。但是,GLR
已经注入inject
到GCN
架构中,它会对所有节点局部平滑它们的邻居节点。相反,图划分利用所有连接,对具有较高连接密度的节点群进行分组来考虑全局平滑性global smoothness
。图补全
graph completion
:受计算机视觉领域中的图像修复和补全的启发(它旨在补全图像的缺失像素),我们提出了一种的新的回归任务作为自监督任务:图补全。如下图所述,和图像补全
image completion
任务类似,我们的图补全任务:- 首先,删除目标节点的特征来遮盖
mask
目标节点。 - 然后,向
GCN
输入未遮盖的节点特征来恢复被遮盖的节点特征。
我们设计这种自监督任务的原因如下:
- 可以自由地获取
completion label
,即节点特征本身。 - 我们认为图补全任务可以帮助网络更好地表示特征,从而教会网络从上下文
context
中抽取特征。
还有一种自监督任务:链接预测。链接预测也同时利用了节点特征和图结构。
- 首先,删除目标节点的特征来遮盖
3.3 图对抗防御
通过为
GCN
引入三个自监督任务,可以使得GCN
在图半监督学习上获得更好的泛化能力。我们继续研究自监督任务在针对各种图对抗攻击的鲁棒性方面的表现。这里我们仅关注于单个节点的直接规避攻击
direct evasion attack
:基于目标节点 $ v_i $ 的属性或链接的node-specific
攻击(攻击满足某些约束条件),而训练好的模型(模型参数为 $ (\theta^*,\mathbf\Theta^*) $ )在攻击前后预测不变。攻击者
$ g(\cdot) $ 产生了扰动的特征矩阵 $ \mathbf X^\prime $ 和扰动的邻接矩阵 $ \mathbf A^\prime $ :其中
$ g(\cdot) $ 将目标节点的属性、链接、label
、以及模型参数作为输入。攻击可以发生在链接
link
上、节点特征上、或者二者同时攻击。对抗防御
adversarial defense
:一种有效的对抗防御方法(尤其是在图像领域)是采用对抗训练adversarial training
。在对抗训练中通过对抗样本adversarial examples
来增强训练集。 但是,由于在transductive
半监督setting
中的标记率较低,因此很难在图领域中生成对抗样本。《Graphdefense: Towards robust graph convolutional networks》
提出利用未标记节点来生成对抗样本。具体而言,他们训练了原始GCN
,将伪标签 $ \mathbf Y_{\text{pseudo}} $ 分配给未标记的节点。然后他们随机从未标记节点集合中选择两个不相交的子集 $ \mathcal V_{\text{clean}},\mathcal V_{\text{attack}} $ ,并且攻击每个目标节点 $ v_i\in \mathcal V_{\text {attack}} $ 来生成随机扰动的特征矩阵 $ \mathbf X^\prime $ 和邻接矩阵 $ \mathbf A^\prime $ 。对图数据的对抗训练可以形式化为同时对标记节点的监督学习、以及对未标记节点(
$ \mathcal V_{\text{clean}},\mathcal V_{\text{attack}} $ )的伪标签pseudo label
的recovering
:其中
$ \alpha_3 $ 是对抗损失 $ \mathcal L_{\text{adv}} $ 的权重。带自监督的对抗防御:引入自监督学习以及对抗训练的
GCN
为:其中自监督损失函数也参与训练过程,它将扰动图作为输入(自监督的标签矩阵
$ \mathbf Y_{ss} $ 也是从扰动图中生成)。从
CNN
中观察到:自监督可以提高鲁棒性和不确定性估计uncertainty estimation
,无需更大的模型或额外的数据。因此我们通过实验探索了这一点是否也适用于GCN
。这里需要提前训练一个仅包含监督任务的
GCN
模型从而获得伪标签。
3.4 实验
数据集如下所示,
N
表示特征维度:三种自监督方式、三种自监督任务的对比。其中
M3S
的超参数设置为原始论文的默认值。表中:每个结果都采用不同的随机数种子随机执行
50
次,并报告平均的准确率和标准差。Clu: Node Clustering
、Par: Graph Partition
、Comp: Graph Completion
表示三种自监督任务;P&T:pretraining&finetuning
、M3S
、MTL:multi-task learning
表示三种自监督方式。P&T-Clu
表示自监督方式和自监督任务的组合。红色数字表示在该数据中,超过
GCN
至少0.8
的、表现最佳的两项。在
GCN
一栏,灰色数字表示公开发表的结果。
结论:
三种自监督方式中,预训练&微调为小型数据集
Cora
提供了一些改善,但对于大型数据集Citeseer
和PubMed
却几乎没有改善。即使是采用不同的自监督任务,结论也是如此。这证明了我们之前的猜测:尽管在预训练阶段通过自监督任务
$ \mathcal L_{\text{ss}} $ 学到关于图结构和特征的信息,但是这些信息可能在微调期间大量丢失,因为微调期间仅针对目标监督损失 $ \mathcal L_{\text{sup}} $ 。在
GCN
中特别观察到这种信息丢失的可能原因是:在微调过程中,从一个目标函数切换到另一个目标函数时,在transductive
半监督学习setting
中使用的浅层GCN
很容易被overwritten
。剩下的两种自监督方式相比于原始
GCN
,在节点分类上得到更大的提升。和预训练&微调相比,自学习、多任务学习的自监督方式都通过一个优化问题(即,一个联合损失函数)从而将自监督融合到
GCN
中,二者本质上都会给GCN
中的原始公式带来额外的自监督损失。它们的区别在于:使用了哪些伪标签以及如何为未标记的节点生成伪标签。在自训练的情况下,伪标签和目标任务标签类型相同,并且这些伪标签根据未标记节点
embedding
和标记节点embedding
之间的邻近性来分配。在多任务学习的情况下,伪标签不再局限于目标任务标签类型,而是可以通过探索未标记数据的图结构和节点特征来构造伪标签。并且多任务学习中的目标监督学习和自监督学习仍然通过
grap embedding
来耦合。因此和自训练相比,多任务学习可以更通用(在伪标签方面),并且可以更多地利用图数据(通过正则化)。
我们通过一组实验来回答三个问题:
多任务自监督学习对于
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
。这也和图补全任务的目标重叠从而降低了图补全任务的效果。
多任务自监督学习除了给
GCN
带来graph embedding
泛化能力的提升之外,还有哪些额外的好处?我们还对
GCN
进行了针对Nettack
的多任务自监督的对抗实验,从而检验它在鲁棒性方面的潜在优势。我们首先以相同的扰动强度
$ 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
),带或者不带自监督学习。此外,我们产生具有不同扰动强度的攻击(
$ n_{\text{perturb}}\in \{1,2,3,4\} $ ),以检验我们结论的普遍性。实验结果表明:通过在对抗训练中引入自监督,GCN
仍然可以提高其鲁棒性,从而应对各种强度的各种攻击。结论:我们简单总结如下:
首先,在将自监督纳入
GCN
的三种方案中:- 多任务学习可以作为正则化器,并通过适当的自监督任务使得
GCN
的效果得到一致地提升。 - 预训练&微调将目标函数从自监督损失转换为目标监督损失,这很容易
overwrite
浅层GCN
,并获得有限的性能提升。 - 自训练受限于分配了哪些伪标签,以及使用哪些数据来生成伪标签。它的性能提升在
few-shot learning
中更明显,并随着标记率的提升而逐渐减少。
- 多任务学习可以作为正则化器,并通过适当的自监督任务使得
其次,通过多任务学习,自监督任务提供了有益的先验来提升
GCN
的性能。- 节点聚类提供节点特征的先验。
- 图分区提供图结构的先验。
- 图补全同时提供节点特征、图结构的先验,从而帮助
GCN
进行得到context-based representation
。
另外,自监督任务是否有助于
SOTA GCN
取决于数据集是否生成针对目标任务的高质量的伪标签,以及自监督的先验是否补充了现有体系结构的先验。链接预测作为自监督任务,也同时提供节点特征、图结构的先验。
最后,对抗训练中多任务自监督提高了
GCN
抵御各种图攻击的鲁棒性。- 节点聚类提供节点特征的先验,因此可以更好地抵御节点特征攻击。
- 图分区提供图结构的先验,因此可以更好地抵御链接攻击。
- 图补全同时提供节点特征、图结构的先验,因此能同时抵御节点特征攻击、链接攻击,一致地提高了鲁棒性。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论