ICML2022 《ProGCL:Rethinking Hard Negative Mining in Graph Contrastive Learning》 Reading Note

paper Introduction Contrastive Learning 受益于区分hard negatives (最相似的negative pairs), 但是其他领域的hard negative mining方法不适用于graph。 对于GCL来说大量embedding之后的hard negatives实际上是false negatives。如左图所示,对于CV上的SimCLR,它所学到的高相似度的negatives中,True negatives 和False negatives数量相当,那么从高相似度的negatives中采样到true negatives的概率更大。然而对于GCL方法GCA来说,是每个anchor节点将其他所有(inter/intra)节点作为negatives,使得在训练过程中与它同类的节点也变成anchor的negatives,这些negatives是false negatives。对于GCA,高相似度的negatives中false negatives的数量远多于true negatives,所以直接采样高相似度的negatives作为hard negatives来针对性的判别他们,会导致同类节点的embedding相互远离。这是传统的hard negatives mining方法在graph domain失效的原因。 为了解决这个问题, 本文提出利用Beta mixture model来估计对于一个anchor node,它的一个negatve是true negative的概率,结合相似度,来衡量该negative的hardness。即与anchor node相似度越高,且它是true negative的概率越大,那么该节点的hardness越高。 Methodology GCL 如上图所示,InfoNCE将跨图same node视为positives,其他节点对视为negatives,GCL的目标函数如下: $$ \begin{aligned} \ell\left(\boldsymbol{u}_{i},\boldsymbol{v}_{i}\right)= \log \frac{e^{\theta\left(\boldsymbol{u}_{i}, \boldsymbol{v}_{i}\right) / \tau}}{\underbrace{e^{\theta\left(\boldsymbol{u}_{i}, \boldsymbol{v}_{i}\right) / \tau}}_{\text{positive pair }}+\underbrace{\sum_{k\neq i}e^{\theta\left(\boldsymbol{u}_{i}, \boldsymbol{v}_{k}\right) / \tau}}_{\text{inter-view negative pairs}}+\underbrace{\sum_{k\neq i}e^{\theta\left(\boldsymbol{u}_{i}, \boldsymbol{u}_{k}\right) / \tau}}_{\text{intra-view negative pairs}}}, \end{aligned} $$ Overall objective定义在所有跨图same node pairs上: $$ \mathcal{J}=-\frac{1}{2 N} \sum_{i=1}^N\left[\ell\left(\boldsymbol{u}_{\boldsymbol{i}}, \boldsymbol{v}_{\boldsymbol{i}}\right)+\ell\left(\boldsymbol{v}_{\boldsymbol{i}}, \boldsymbol{u}_{\boldsymbol{i}}\right)\right] $$ 如果将GCA中的2层shared GNN替换为MLP,那么contrastive learning将不存在Message Passing,这样得到的true/false negative分布如(b)所示,可以看出Message Passing是GCL和CL之间产生区别关键因素。直观上,MP将anchor与相邻的negatives拉近,而相邻的negatives大多为False negatives(Homophily),所以GCL得到的高相似度negatives中false negatives要远多于True negatives。 ...

January 8, 2023 · 2 min · JhuoW

WWW2022 《ClusterSCL:Cluster-Aware Supervised Contrastive Learning on Graphs》 Reading Notes

paper Introduction 对于监督对比学习(Supervised Contrastive Learning, SupCon), SupCon loss旨在表示空间中拉近属于同一个class的数据点,分离不同类的数据点。 但是SupCon难以处理高类内方差,类间相似度较大的数据集。为了解决该问题,本文提出了Cluster-aware supervised contrastive learning loss (ClusterSCL)。什么是高类内方差,高跨类相似度问题?如图1(a)所示,节点$u_1$和$u_3$ 是同类节点,$u_2$和$u_4$是同类节点。他们是同类节点但在不同的社区中,所以类内方差较大,即同一个类内的节点跨越了多个community。 另外$u_1$和$u_2$, $u_3$和$u_4$,是不同类的节点对, 但他们处在同一个社区中,导致在MPNN过程中,这些处在同一个community中的不同类节点被拉近,导致跨类相似度较高的问题。 如果对节点$u_2$计算SupCon时,如图1(b)所示,SupCon会使得同类节点被拉近,如$u_2$和$u_4$会被拉近。但是$u_3$和$u_4$处在同一个社区中(structurally similar)那么MPNN会使得$u_3$和$u_4$被拉近,所以SupCon在拉近$u_2$和$u_4$的同时,会间接拉近不同类节点$u_2$和$u_3$。同时,对于构成negative pairs的不同类节点,例如$u_1$和$u_2$,SupCon会推远$u_1$和$u_2$,但是$u_1$和$u_5$ structurally similar, 因此会推远$u_1$和$u_2$会间接导致$u_2$和$u_5$这两个同类节点被推远。因此对于一个cluster内节点不同类,且不同cluster中存在同类节点的情况,会导致复杂的决策边界,即在拉近同类但不同社区的节点时,也会间接拉近不同类不同社区的节点。在推远不同类同社区的节点时,也可能间接推远同类同社区的节点。 为了解决上述问题,最直接的方法是对于每个cluster,如图1(a)的Community 1,不考虑其他cluster,只对当前cluster内节点做SupCon。但是这么做忽略了跨cluster的同类节点交互,如$u_1$和$u_3$,$u_2$和$u_4$,这些跨cluster的positive pairs可能包含有益的信息。为了解决这个问题,本文提出cluster-aware data augmentation (CDA) 聚类感知的数据增强,来为每个节点生成augmented positives and negatives,如图1(b)中ClusterSCL所示。对于每个节点$u$,为它生成positive 和negative samples, 生成的samples 位于或接近$u$所在的cluster。Recall SupCon存在的问题: SupCon会使得$u_2$和$u_4$被拉的太近,从而间接导致$u_2$和$u_3$被拉近,所以对于high intra-class variances,要求不同cluster的同类节点如$u_2$和$u_4$不要被拉太近; SupCon会使得$u_1$和$u_2$被推远,从而间接导致$u_2$和$u_5$被推远,所以对于high inter-class similarity,要求同一个cluster内的不同类节点如$u_1$和$u_2$不要被拉的太远。 Method Two stage training with Supervised Contrastive Loss SupCon encourages samples of the same class to have similar representations, while pushes apart samples of different classes in the embedding space. ...

November 17, 2022 · 4 min · JhuoW

NeurIPS2021 《From Canonical Correlation Analysis to Self-supervised Graph Neural Networks》 Reading Notes

paper Introduction 本文提出了一种新型的Graph Contrastive Learning构造Contrastive pairs的方式,即将跨图的同维度特征作为positive pairs, 不同维度特征作为negative pairs。 和过去的GCL方法相比,本文无需互信息估计器(MI Estimator),映射头(Projector),不对称结构(asymmetric structures)。 并且理论证明了该方法可以看做Information Bottleneck 原则在自监督设置下的实例。 具体来说,受典型相关分析(From Canonical Correlation Analysis)的启发,本文提出了一种简单有效的GCL框架,从而是模型避免复杂难以理解多模块设计。 和过去的方法相同的是,为输入图以随机增强的方式生成两个view, 目的是为两个view学习共享的 node representations 通过共享的GNN Encoder。不同在于,本文利用了典型相关分析(CCA),具体来说,新目标旨在最大化同一输入的两个增强views之间的相关性,同时对单个视图表示的不同(特征)维度进行去相关(避免不同维度捕获相同信息,即同一个view内的不同维度channel互为negative pairs)。 这么做的目的是 1)本质上追求的是丢弃增强后变化的信息,同时保留增强后不变的信息,以及 2)防止维度崩溃(即不同维度捕获相同的信息)。 和其他方法的对比如上图所示, 本文提出的CCA-SSG无需negative pairs, 参数化的互信息估计器, projection head或者不对称结构。对比对的数量仅为$O(D^2)$, 其中$D$为输出维度。 Canonical Correlation Analysis CCA: Identify and Quantify the associations between two sets of variables, 即CCA用来衡量两组随机变量的相关性,每组可能有很多Random Variables. 从相关系数引入: Pearson 相关系数: 给定两组数据集$X$, $Y$。 其中$X \in \mathbb{R}^{N \times 1}$ 表示只有一个随机变量(属性),样本数为$N$。 $Y \in \mathbb{R}^{M \times 1}$: 一个随机变量,样本量为$M$。那么Pearson 相关系数$\rho$定义为: $$ \rho(X,Y)= \frac{\mathrm{Cov}(X,Y)}{\sigma_X \sigma_Y} $$ 其中$\sigma_X$,$\sigma_Y$分别为$X$和$Y$的标准差。$\mathrm{Cov}(X,Y)$为$X$, $Y$的协方差。$\rho \in [-1,1]$。 $\rho$越接近1, $X$和$Y$的线性相关性越高。$\rho$越接近0,$X$和$Y$的线性相关性月底。 ...

April 14, 2022 · 3 min · JhuoW

ICML2020 《Contrastive Multi-View Representation Learning on Graphs》 Reading Notes

paper Introduction 本文旨在通过多视图Contrastive Learning 来学习节点表示和图表示。其中对比视图为结构视图(structural view)。本文发现,两个以上的对比视图不会提升性能(我觉得仅是针对本文的Diffusion-based view吧~)。 本文实验性的表明了基于一阶邻居和图扩散视图做CL可以达到最好的效果。 为了将对比学习应用到图表示学习任务,本文提出通过最大化图的不同结构视角的互信息来作为监督信号。通过对提出框架的系统研究,本文展示了一些GCL和visual CL上的不同: (1)将view数量(即增强)增加到两个以上不会提高性能,最好的性能是通过对比来自一阶邻居view的embedding和graph diffusion的embedding,(2) 与对比图编码或多尺度编码相比,跨视图对比节点和图编码在node classification 和 graph classification上都能获得更好的结果。 (3) 与分层图池化方法(例如DiffPool相比)一个简单的Readout在这node classification 和 graph classification上实现了更好的性能,以及 (4) 应用正则化(early stopping除外) 或归一化层对性能有负面影响。 Method MVGRL通过最大化一个view的node embedding和另一个view的graph embedding之间的 互信息来学习节点和图表示。如上图所示,MVGRL由以下几个部分构成 增强机制:将样本图转化为同一个图的相关view, 这个view只是structural view, 不会改变原图中的node feature,然后对两个增强图中的相同节点(identical node)进行子采样,类似于CV中的域剪裁。 两个专用的GNNs, 每个view一个GNN,再接一个共享的MLP作为projection head,来为两个view学习representation。 图池化层, 在MLP后学习两个图的graph-level representation。 判别器 来对比一个图的embedding和另一个图的节点embedding,并对他们的一致性(agreement)评分。 Augmentations 考虑两种类型的图增强:(1) 对初始节点特征进行操作的特征空间增强,例如,mask或添加高斯噪声,以及 (2) 通过添加或删除连通性、子采样或使用最短路径或diffusion matrix生成全局视图来对做图结构增强。 前一种增强可能是有问题的,因为许多数据集不带有初始节点特征。 此外,观察到在任一空间上屏蔽或添加噪声都会降低性能。 因此,本文选择生成全局视图,然后进行子采样。 实验表明,在大多数情况下,最好的结果是通过将邻接矩阵转化为扩散矩阵,并将这两个矩阵视为同一图的结构的两个一致view。因为邻接矩阵和扩散矩阵分别提供了图结构的局部和全局视图,从这两种view中学习到的表示之间最大一致性,从而鼓励模型同时编码的局部和全局信息。 Diffusion matrix从全局角度提供了任意节点对之间的相关性,其中$\mathbf{T} \in \mathbb{R}^{n \times n}$是通用转移矩阵,$\Theta$是权重系数,决定了全局和局部信息的比例,即对于每个节点,不同层次信息的比重, $\Theta_{k}$越大,表示全局信息权重越大。 令$\sum_{k=0}^{\infty} \theta_{k}=1, \theta_{k} \in[0,1]$,$\lambda_{i} \in[0,1]$,其中$\lambda$是$\mathbf{T}$的特征向量, 这样来保证$\mathbf{S}$可以收敛到一个固定矩阵。扩散用快速近似值和稀疏化方法计算: $$ \mathbf{S}=\sum_{k=0}^{\infty} \Theta_{k} \mathbf{T}^{k} \in \mathbb{R}^{n \times n} $$ 给定一个邻接矩阵$\mathbf{A} \in \mathbb{R}^{n \times n}$和一个对角度矩阵$\mathbf{D} \in \mathbb{R}^{n \times n}$, Personalized PageRank (PPR)和Heat Kernel分别为两种不同的Diffusion matrix实例。对于PPR和HK,转移概率矩阵定义为$\mathbf{T}=\mathbf{A} \mathbf{D}^{-1}$。PPR将第$k$层的权重系数设置为$\theta_{k}=\alpha(1-\alpha)^{k}$, 而HK将第$k$层的权重系数设置为$\theta_{k}=e^{-t} t^{k} / k !$。 ...

April 12, 2022 · 2 min · JhuoW

WWW2022 《SimGRACE:A Simple Framework for Graph Contrastive Learning without Data Augmentation》 Reading Notes

paper Introduction 图对比学习(GCL)已经成为图表示学习的主要技术,它最大化了共享相同语义的成对图增强之间的互信息。鉴于图数据的多样性,在增强过程中很难很好地保留语义。目前,GCL 中选择图增强方式的途径通常有以下三种。 1. 适用于不同数据集的图增强方式可能是不同的,需要在每个数据集上做验证,手动选择最适用于每个数据集的增强。2. 通过繁琐的搜索来选择增强方式。3. 通过邻域只是来选择增强方式。所有这些都限制了现有 GCL 方法的效率和通用性。为了解决该问题,本文提出了一种不需要对图做编辑, 而是对GNN编码器做扰动的增强方式: SimGRACE。并且对SimGRACE设计了对抗训练的方案:AT-SimGRACE。 上图的实验中,两类图用不同的颜色标出,三种GCL模型分别在三个数据集上训练,训练完成后的分类效果如第一行所示。 对于GraphCL, 对边做扰动后再输入GraphCL 训练好的encoder,可以看出GraphCL的encoder对于扰动后的图数据集无法很好的保留分类语义。而对于SIMGRACE,不对图做扰动,而对训练好的encoder做扰动,扰动后的encoder对数据集的分类效果可以很好地保留语义信息。由此实验性表明了对encoder扰动可以保留比直接对图扰动更多的语义信息。 GraphCL 表明 GNN 可以使用他们提出的框架获得鲁棒性。 但是,(1)他们没有解释为什么 GraphCL 可以增强鲁棒性; (2) GraphCL 似乎对随机攻击具有很好的免疫力,而对对抗性攻击的表现却不尽如人意。为了弥补这些缺陷,本文基于SimGRACE提出了一种新的算法 AT-SimGRACE通过对抗的方式来扰动编码器,从而是实现对抗训练的效果,它引入了更少的计算开销,同时显示出更好的鲁棒性。 Method SimGRACE 编码器扰动(Encoder perturbation) 给定一个GNN编码器$f(\cdot;\theta)$,它的参数扰动版本表示为$f(\cdot;\theta^\prime)$。如图中所示,参数扰动版本的编码器不需要梯度反传训练参数,每次训练过程更新$f(\cdot;\theta)$,而$f(\cdot;\theta^\prime)$的参数$\theta^\prime$只通过对$\theta$扰动得到。第$l$层GNN的参数表示为$\theta_l$,那么它的扰动后参数$\theta^\prime_l$有下式得到: $$ \theta_{l}^{\prime}=\theta_{l}+\eta \cdot \Delta \theta_{l} ; \quad \Delta \theta_{l} \sim \mathcal{N}\left(0, \sigma_{l}^{2}\right) $$ 其中$\eta$用来控制扰动的缩放,$\Delta \theta_{l}$是扰动项,扰动值采样自0均值$\sigma_{l}^{2}$的Gaussian Distribution。$f(\cdot;\theta)$和$f(\cdot;\theta^\prime)$的输出分别为$\mathbf{h}$和$\mathbf{h}^{\prime}$: $$ \mathbf{h}=f(\mathcal{G} ; \boldsymbol{\theta}), \mathbf{h}^{\prime}=f\left(\mathcal{G} ; \boldsymbol{\theta}^{\prime}\right) $$ 从下图可以看出,如果不对编码器施加扰动,即超参数$\eta=0$,效果会很差,扰动太多效果也会很差。 映射头 (Projection Head) 和其他大多数GCL方法一样,该方法也要一个projection head来对GNN的output representation做一次变换,通常就是个MLP,得到输出$z$和$z^\prime$: $$ z=g(\mathbf{h}), z^{\prime}=g\left(\mathbf{h}^{\prime}\right) $$ ...

April 9, 2022 · 2 min · JhuoW

ICML2020 《When Does Self-Supervision Help Graph Convolutional Networks?》 Reading Notes

Paper Introduction 本文是自监督方法在GCNs上首次系统的探索,设计了3种自监督任务来将分析自监督在GCN中起到的作用。自监督旨在充分利用unlabeled数据中的知识来设计前置任务(pretext task),来帮助模型学习更具迁移性和泛化能力的表示。前置任务可以认为是对目标任务有帮助的辅助正则化网络,设计用于帮助原任务学习到更多下游任务相关的语义信息。 GCN任务通常是直推半监督的(transductive semi-supervised),含有大量unlabeled数据,而self-supervision(SSL)可以充分利用unlabeled data, 那么就产生了一个值得探索的问题:将自监督学习应用到GCN上是否也可以达到提升泛化能力和鲁棒能力的效果? 先给结论 Q1: 自监督学习可否在分类任务中提升GCN? 如果可以,如何将其合并到 GCN 中以最大化增益? A1: 本文证明了通过多任务学习将自监督学习融入 GCN 是有效的,即多任务损失作为 GCN 训练中的正则化项。 这种作为自监督作为正则化项的方法,强于用自监督来预训练或者self-training。 Q2: 前置任务的设计重要吗? GCN 有哪些有用的自监督前置任务? A2: 本文研究了三个基于图属性的自监督任务。 分别是节点聚类node clustering, 图划分graph partitioning 和图补全graph completion。 并且进一步说明不同的模型和数据集倾向于不同的自监督任务。 Q3: 自监督也会影响 GCN 的对抗鲁棒性吗? 如果是,如何设计前置任务? A3: 本文进一步将上述发现推广到对抗性训练环境中。提供了广泛的结果,以表明自监督还可以提高 GCN 在各种攻击下的鲁棒性,而不需要更大的模型或额外的数据。 Method GCNs $\boldsymbol{Z}=\hat{\boldsymbol{A}} \operatorname{ReLU}\left(\hat{\boldsymbol{A}} \boldsymbol{X} \boldsymbol{W}_{0}\right) \boldsymbol{W}_{1}$可以分为两块来看 (1) 特征提取模块$f_{\theta}(\boldsymbol{X}, \hat{\boldsymbol{A}}) = \hat{\boldsymbol{A}} \operatorname{ReLU}\left(\hat{\boldsymbol{A}} \boldsymbol{X} \boldsymbol{W}_{0}\right)$ 参数为$\theta = \{\boldsymbol{W}_{0}\}$和(2)线性变换模块$\boldsymbol{Z}=f_{\theta}(\boldsymbol{X}, \hat{\boldsymbol{A}}) \boldsymbol{\Theta}$ 其中 参数$ \boldsymbol{\Theta} = \boldsymbol{W}_{1}$。 半监督GCN优化任务的目标函数为: $$ \begin{aligned} \boldsymbol{Z} &=f_{\theta}(\boldsymbol{X}, \hat{\boldsymbol{A}}) \boldsymbol{\Theta} \\ \theta^{*}, \boldsymbol{\Theta}^{} &=\arg \min_{\theta, \boldsymbol{\Theta}} \mathcal{L}_{\mathrm{sup}}(\theta, \boldsymbol{\Theta}) \\ &=\arg \min_{\theta, \boldsymbol{\Theta}} \frac{1}{\left|\mathcal{V}_{\text {label }}\right|} \sum_{v_{n} \in \mathcal{V}_{\text {label }}} L\left(\boldsymbol{z}_{n}, \boldsymbol{y}_{n}\right) \end{aligned} \tag{1} $$ 其中$L(\cdot, \cdot)$是每个labeled node的损失函数。 ...

April 8, 2022 · 3 min · JhuoW