1 导引
图对比学习(Graph Contrastive Learning, GCL)[1][2][3] 旨在以自监督的方式学习图的节点表征,其流程如下图所示:
具体而言,先以特定方式对原图\(\mathbf{A}\)进行增广,得到两个增广后的视图(view)\(\mathbf{V}_1\)和\(\mathbf{V_2}\)做为对比对(也可以是原图和增广后的视图做为对比对),并经由GCN进行编码得到两个增广视图中的节点embeddings。接着,对于某个目标节点\(i\),我们需要使其在某个增广视图中的embedding去接近在另一个增广视图中的正样本embedding,而远离负样本embedding。以这种方式建立的模型能够辨别相似与不相似的节点。一些图对比学习方法会使用经典的InfoNCE损失来作为优化目标:
\[\mathcal{L}\left(\boldsymbol{h}_i^{\mathbf{V}_1}, \boldsymbol{h}_i^{\mathbf{V}_2}\right)=\log \frac{\exp \left(\mathcal{D}\left(\boldsymbol{h}_i^{\mathbf{V}_1}, \boldsymbol{h}_i^{\mathbf{V}_2}\right) / \tau\right)}{\exp \left(\mathcal{D}\left(\boldsymbol{h}_i^{\mathbf{V}_1}, \boldsymbol{h}_i^{\mathbf{V}_2}\right) / \tau\right)+\sum_{k \neq i} \exp \left(\theta\left(\boldsymbol{h}_{i}^{\mathbf{V}_1}, \boldsymbol{h}_{\mathbf{k}}^{\mathbf{V}_2}\right) / \tau\right)} \]这里\(\boldsymbol{h}^{\mathbf{V}_1}\)和\(\boldsymbol{h}^{\mathbf{V}_2}\)分别是在增广视图\(\mathbf{V}_1\)和\(\mathbf{V}_2\)中节点\(i\)的embeddings;\(\mathcal{D}(\cdot, \cdot)\)是一个相似性度量,比如余弦相似度;\(\tau\)是温度参数。总loss为:\(\mathcal{L}_{\text {InfoNCE }}=\sum_i \frac{1}{2}\left(\mathcal{L}\left(\boldsymbol{h}_{i}^{\mathbf{V}_1}, \boldsymbol{h}_{i}^{\mathbf{V}_2}\right)+\mathcal{L}\left(\boldsymbol{h}_{i}^{\mathbf{V}_2}, \boldsymbol{h}_{i}^{\mathbf{V}_1}\right)\right)\)。
结构不变量(structural invariance) 我们在博客《寻找领域不变量:从生成模型到因果表征》中提到过,自监督学习/对比学习本质上是在从数据中提取出在多个领域/视图中的不变量(invariance)。同理,理想的GCL应该能够捕捉到图的结构不变量,也即定义为当对输入图的结构属性造成较大变化(如扰动一定数量的边)时编码器输出的不变量,形式化地表示如下:
\[\mathcal{L}_{\mathrm{CCL}}(\mathbf{A}, t(\mathbf{A}), \boldsymbol{\Theta}) \leq \sigma, \text { s.t. } t(\mathbf{A})=\operatorname{argmax}_{\|\mathbf{A}-t(\mathbf{A})\|_{1}\leqslant \epsilon} \mathcal{D}(p(\mathbf{A}), p(t(\mathbf{A}))) \]这里\(t(\cdot)\)为对图所采用的拓扑增广,\(\mathcal{D}(\cdot, \cdot)\)为距离度量,\(p(\cdot)\)为表示图结构属性的向量值函数,比如图的直径、图是否连通、图的聚类系数等。
为了经由GCL来捕捉结构不变量,有效的增广应该关注于敏感的边,对这些边的扰动能够轻易地造成较大的图属性改变。接着在最小化对比损失\(\mathcal{L}_{\text{GCL}}\)的过程中,造成结构不稳定的边会被视为噪声,从而和这些边相关的信息会被编码器忽视(也即InfoMin准则[4])。不过,均匀随机的边扰动很难做为有效的增广来使用,这启发我们去构思比均匀扰动更好的图增广方法。
图谱(graph spectrum) 我们知道图谱可以做为许多图的结构属性的一个综合性总结,包括聚类系数、连通性等等。那么,基于图谱的图增广方法就是顺理成章的了(参见我的博客《谱图论:Laplacian算子及其谱性质》),这种增广方法我们一般称为图的谱增广(spectral augmentation)。在介绍具体的谱增广方法之前,我们先来回顾一下谱图论的一些基本定义。
设\(\mathcal{G}=(\mathcal{V}, \mathcal{E})\)为无向图,这里\(\mathcal{V}\)为节点集合且\(\mathcal{E}\subseteq \mathcal{V}\times \mathcal{V}\)为边集合。所有的边形成了邻接矩阵\(\mathbf{A}\in\{0, 1\}^{N\times N}\),这里\(\mathbf{A}_{ij}\in\{0, 1\}\)表示\(\mathcal{V}\)中的节点\(i\)和\(j\)之间的关系。节点的度矩阵\(\mathbf{D}=\operatorname{diag}\left(d_1, \ldots d_n\right)\),这里\(d_i=\sum_{j \in \mathcal{V}} \mathbf{A}_{i j}\)是节点\(i\in\mathcal{V}\)的度。图\(\mathcal{G}\)常常和节点特征矩阵\(\mathbf{X} = [\boldsymbol{x_1}, \boldsymbol{x_2}, \cdots, \boldsymbol{x_N}]\in\mathbb{R}^{N\times d}\)相关联,这里\(\boldsymbol{x}_i\)是节点\(i\in\mathcal{V}\)的\(d\)维特征向量。设\(\mathbf{L} = \mathbf{D} - \mathbf{A}\)为图\(\mathcal{G}\)的未归一化图Laplacian矩阵。若我们设对称归一化邻接矩阵(即我们在文章《谱图论:Laplacian二次型和Markov转移算子》中所提到的Markov转移矩阵)为
\[\hat{\mathbf{A}} = \mathbf{D}^{-\frac{1}{2}}\mathbf{A}\mathbf{D}^{-\frac{1}{2}}, \]则对称归一化图Laplacian矩阵可以定义为:
\[\hat{\mathbf{L}} = \mathbf{I}_n - \hat{\mathbf{A}} = \mathbf{D}^{-\frac{1}{2}}(\mathbf{D} - \mathbf{A})\mathbf{D}^{-\frac{1}{2}} \]由于\(\hat{\mathbf{L}}\)是对称归一化的,则其特征分解(谱分解)为:
\[\hat{\mathbf{L}} = \mathbf{U} \mathbf{\Lambda} \mathbf{U}^{\top}, \]这里\(\mathbf{\Lambda}=\operatorname{diag}\left(\lambda_1, \ldots, \lambda_N\right)\)与\(\mathbf{U} = [\boldsymbol{u}^T_1,\cdots, \boldsymbol{u}^T_N]\in \mathbb{R}^{N\times N}\)分别为\(\hat{\mathbf{L}}\)的特征值和特征向量。不失一般性,我们假设
\[0 \leq \lambda_1 \leq \cdots \leq \lambda_N<2\quad (\lambda_N\approx 2) \]这里我们近似\(\lambda_N\approx 2\)[5]。令\(\mathcal{F}_{\mathcal{L}}=\left\{\lambda_1, \cdots, \lambda_{\lfloor N / 2\rfloor}\right\}\)表示图低频分量(low-frequency components)的幅值,\(\mathcal{F}_{\mathcal{H}}=\left\{\lambda_{[N / 2]+1}, \ldots, \lambda_N\right\}\)为图高频分量(high-frequency components)的幅值。图谱定义为这些不同频率的分量的幅值集合,我们将其表示为\(\varphi(\lambda)\)。直观上,图谱表示了图频率的增强和减弱情况。此外,我们将\(\hat{\mathbf{L}}\)重写为
\[\hat{\mathbf{L}} = \lambda_1 \cdot \boldsymbol{u}_{\mathbf{1}} \boldsymbol{u}_{\mathbf{1}}^{\top}+\cdots+\lambda_N \cdot \boldsymbol{u}_N \boldsymbol{u}_N^{\top}, \]我们定义\(\boldsymbol{u}_i \boldsymbol{u}_i^{\top} \in \mathbb{R}^{N \times N}\)为和\(\lambda_i\)相关的特征空间,记为\(\mathbf{S}_i\)。
2 论文阅读
2.1 NIPS2022 《Revisiting graph contrastive learning from the perspective of graph spectrum》
本文的思路在于:好的增广能够使图高频信号之间的差异大于低频信号。这基于一个事实:GNN是低通滤波器,也即能较好地去筛选出低频的信号,使得节点特征更加平滑(相似节点特征相似,预测结果相似)[6]。对于节点标签一致的同构图(本文所关注的对象)而言,低频信息差异性更小的话可以更好地把图同构的信息保留住。不过需要注意的是,该准则只在同构图的前提下成立,否则对于异构图的话高频信息就会更加有用。作者将使得低频之间差异小的增广对称为最优对比对(optimal contrastive pair),如下图所示:
可见对于最优对比对\(V_1\)和\(V_2\)而言,低频分量幅值\(\phi\)的差异相比高频分量更小。这里的幅值(纵轴)\(\phi\)为邻接矩阵\(\mathbf{A}\)对应分量的特征值\(\kappa\),其与归一化Laplacian矩阵特征值(横轴)\(\lambda\)的关系为\(\kappa = 1 - \lambda (\lambda \in [0, 2], \kappa \in [-1,1])\)。注意,上述关系是针对某一个视图而言的,但某个视图中的分量在其它视图的幅值相对于原视图横轴肯定就不满足此关系了,所以上图中\(V_2\)的线满足\(\kappa = 1 - \lambda\)但\(V_1\)的线就不满足。
形式化地说,本文提出的图增广准则(Graph augmentation rule, GAME)如下:给定两个随机增广\(\mathbf{V}_1\)和\(\mathbf{V}_2\),设它们的图谱分别为\(\phi_{\mathbf{V}_1}(\lambda)\)和\(\lambda_{\mathbf{V}_2}(\lambda)\)。则对\(\forall \lambda_m \in [1, 2]\)(高频)与\(\lambda_n \in [0, 1]\)(低频), 当下列条件满足时\(\mathbf{V}_1\)和\(\mathbf{V}_2\)是一个有图增广的有效对:
\[\left|\phi_{\mathbf{V}_1}\left(\lambda_m\right)-\phi_{\mathbf{V}_2}\left(\lambda_m\right)\right|>\left|\phi_{\mathbf{V}_1}\left(\lambda_n\right)-\phi_{\mathbf{V}_2}\left(\lambda_n\right)\right| \]作者将这样的一个增广对定义为最优对比对。
有了这样一个准则之后,我们如何确定需要变化哪一些边呢?通过矩阵扰动理论(matrix perturbation theory)[7],我们能够找到邻接矩阵的变化量和特征值变化量之间的关系:
\[\Delta \lambda_i=\lambda_i^{\prime}-\lambda_i=\boldsymbol{u}_i^{\top} \Delta \mathbf{A} \boldsymbol{u}_i-\lambda_i \boldsymbol{u}_i^{\top} \Delta \mathbf{D} \boldsymbol{u}_i+\mathcal{O}(\|\Delta \mathbf{A}\|), \]这里\(\lambda^{\prime}_i\)为变化之后的特征值,\(\Delta \mathbf{A}={\mathbf{A}}^{\prime}-\mathbf{A}\)为增广之后边的变化量,而\(\mathbf{D}\)为度矩阵相应的变化量。注意这里不能使用特征值分解来获得\(\mathbf{A}^{\prime}\)的特征值\(\lambda^{\prime}\),因为所得到的\(\lambda^{\prime}\)相对于之前\(\mathbf{A}\)的\(\lambda\)是无序的。也就是说,对于\(\mathbf{A}\)的某个特征值\(\lambda_i\),我们不能确定\(\mathbf{A}^{\prime}\)的哪个特征值在分解后与其对应,所以在这种情况下我们就不能计算\(\lambda_i\)的改变量\(\Delta \lambda_i\)。
作者按照上述等式计算每次增广后的邻接矩阵特征值\(\{\lambda^{\prime}_i\}\),并将它们的图谱给绘制出来。此外,作者还设置了多种图增广方式做为对比,如下图所示:
上图中的虚线左半部分为增广前的Laplacian矩阵的图谱和邻接矩阵的图谱,虚线右半部分为采用不同增广方法进行增广后的邻接矩阵的图谱。可以看到,如果将邻接矩阵\(\mathbf{A}\)的谱做为幅值,PPP Matrix、Heat Matrix、Distance这三种增广方式最符合我们的效果:他们在低频\(\mathcal{F}_{\mathcal{L}}\)上随\(\mathbf{A}\)的幅值变化小,在高频\(\mathcal{F}_{\mathcal{H}}\)上随\(\mathbf{A}\)的幅值变化大(图中红框中所示的内容)。因此,它们的表现优于上图中的其它增广方式。
作者还在理论层面分析了GAME法则和对比损失\(\mathcal{L}_{\text{infoNCE}}\)的关系。给定邻接矩阵\(\mathbf{A}\)和其所生成的增广\(\mathbf{V}\),\(\mathbf{A}\)和\(\mathbf{V}\)第\(i\)个频率的幅值分别是\(\lambda_i\)和\(\gamma_i\)。对于所要最小化的InfoNCE损失\(\mathcal{L}_{\text{infoNCE}}\)而言,其上界可表示如下:
\[\mathcal{L}_{\text {InfoNCE }} \leq \frac{1+N}{2} \sum_i \theta_i\left[2-\left(\lambda_i-\gamma_i\right)^2\right] \]最小化对比损失等价于最小化其上界。所以,较大的\(\theta_i\)会被赋给较小的\((\lambda_i - \gamma_i)^2\)(以更关注低频信息)。同时,如果\(\lambda_i \approx \gamma_i\),则这两个对比增广可以被视为是共享在\(i\)频率的不变量。因此,通过对比学习,编码器会从谱域去强调两个对比增广之间的不变量。回忆我们之前所说的,GAME法则意味着各个增广在\(\mathcal{F}_{\mathcal{L}}\)的差异应该较小,而图对比学习则尝试捕捉两个增广共同的低频信息。因此,GAME法则指出了一个操纵编码器来捕捉低频信息的一个通用的策略,并取得了更好的表现。
接下来我们来看学习一个通用的且利于图对比的变换\(\Delta_{\mathbf{A}}\)来用于邻接矩阵\(\mathbf{A}\),以产生对应的增广\(\mathbf{A}\_\)(\(\Delta_A = \mathbf{A}\_ - \mathbf{A}\))。这里\(\mathbf{A}\)和\(\mathbf{A}\_\)要求是最优对比对。
首先,作者将\(\Delta \mathbf{A}\)分解为了\(\Delta \mathbf{A} = \Delta_{\mathbf{A}+} - \Delta_{\mathbf{A}-}\),这里\(\Delta_{\mathbf{A}+}\)和\(\Delta_{\mathbf{A}-}\)分别表示加的边和删除的边。接着,我们来看如何学得\(\Delta_{\mathbf{A}+}\),\(\Delta_{\mathbf{A}\_}\)同理。
作者设计了下列的关于\(\Delta_{\mathbf{A}+}\)的优化目标(最大化):
\[\mathcal{J}=\underbrace{\left\langle\mathcal{C}, \Delta_{\mathbf{A}+}\right\rangle^2}_{\text {Matching Term }}+\underbrace{\epsilon H\left(\Delta_{\mathbf{A}+}\right)}_{\text {Entropy Reg. }}+\underbrace{\left\langle\mathbf{f}, \Delta_{\mathbf{A}+} \mathbb{1}_n-\mathbf{a}\right\rangle+\left\langle\mathbf{g}, \Delta_{\mathbf{A}+}^{\top} \mathbb{1}_n-\mathbf{b}\right\rangle}_{\text {Lagrange Constraint Conditions }}, \]该优化目标包含了3个组成部分:
-
\(\left\langle\mathcal{C}, \Delta_{\mathbf{A}}\right\rangle^2\):该项是匹配项,旨在使对图的改变量\(\Delta_{\mathbf{A}+}\)和余弦定义好的矩阵\(\mathcal{C}\)是“匹配”或相似的。这里\(\langle \mathbf{A}, \mathbf{Q}\rangle = \sum_{ij}\mathbf{P}_{ij}\mathbf{Q}_{ij}\),\(\mathbf{C} = \mathbf{U}g(\lambda)\mathbf{U}^T\)(\(g(\lambda)\)为关于\(\mathbf{A}\)的单调递增函数)。这里的动机在于,根据GAME法则,若设\(\phi_{\Delta}(\lambda)=\left|\phi_{\mathbf{A}}(\lambda)-\phi_{\mathbf{A}_{-}}(\lambda)\right|\),则我们需要\(\phi_{\Delta}(\lambda_m) > \phi_{\Delta}(\lambda_n), \forall \lambda_m\in [1, 2] \text{ and } \lambda_n \in [0, 1]\),因此我们需要规定\(\phi_{\Delta}(\lambda)\)应该是一个单调递增函数。由于\(\mathcal{C}\)会指导\(\Delta_{\mathbf{A}+}\)来捕捉图谱的变化量(\(\phi_{\Delta}(\lambda)\)),我们自然会将\(\mathcal{C}\)中的\(g(\lambda)\)设置为一个单调递增函数。事实上,图Laplacian矩阵\(\mathcal{L}\)的图谱就满足我们这里对\(g(\lambda)\)的要求,因此我们可以简单地设\(\mathcal{C} = \mathcal{\Theta}\mathcal{L}\),这里\(\Theta\)是一个在训练中更新的参数。
-
\(\epsilon H\left(\Delta_{\mathbf{A}+}\right)\):该项为熵正则,旨在增加所学得的\(\Delta_{\mathbf{A}+}\)的不确定性,促使更多的边(\(\Delta_{\mathbf{A}+}\)中的条目)能够加入到优化中来。这里\(H(\mathbf{P})=-\sum_{i, j} \mathbf{P}_{i, j}\left(\log \left(\mathbf{P}_{i, j}\right)-1\right)\),\(\epsilon\)是该项的权重。
-
\(\left\langle\boldsymbol{f}, \Delta_{\mathbf{A}+} \mathbf{1}_n-\boldsymbol{a}\right\rangle\)和\(\left\langle\boldsymbol{g}, \Delta_{\mathbf{A}+}^{\top} \mathbf{1}_n-\boldsymbol{b}\right\rangle\):分别对\(\Delta_{\mathbf{A}+}\)的行向量和列向量做拉格朗日约束,使得变化不要太大。这里\(\boldsymbol{f}\in \mathbb{R}^{N}\)和\(\boldsymbol{g}\in\mathbb{R}^N\)是拉格朗日乘子,\(\boldsymbol{a}\in\mathbb{R}^N\)和\(\boldsymbol{b}\in \mathbb{R}^N\)是概率分布(本文定义为节点的度分布)。
不过,要求解这个问题也是不容易的,因为它是个离散优化问题。本文证明了它有下列解:
\[\Delta_{\mathbf{A}+}=\operatorname{diag}(\boldsymbol{u}) \exp \left(2\langle\mathcal{C}, \Delta_{A+}^{\prime}\rangle\mathcal{C} / \epsilon\right) \operatorname{diag}(\boldsymbol{v})=\mathbf{U}_{+} \mathbf{K}_{+} \mathbf{V}_{+} \](\(\Delta_{\mathbf{A}-}\)同理)
这里\(\mathbf{U}_{+}=\operatorname{diag}\left(\boldsymbol{u}_i\right)=\operatorname{diag}\left(\exp \left(\frac{\boldsymbol{f}_i}{\epsilon}\right)\right)\),\(\mathbf{V}_{+}=\operatorname{diag}\left(\boldsymbol{v}_j\right)=\operatorname{diag}\left(\exp \left(\frac{\boldsymbol{g}_j}{\epsilon}\right)\right)\)。为了进一步计算\(\mathbf{U}_{+}\)和\(\mathbf{V}_{+}\),作者根据拉格朗日约束条件来约束\(\Delta \mathbf{A}_{+}\)的行和与列和:
\[\boldsymbol{u}=\left(\mathbf{K}_{+} \boldsymbol{v}\right)=\boldsymbol{a} \text { and } \boldsymbol{v} *\left(\mathbf{K}_{+}^{\top} \boldsymbol{u}\right)=\boldsymbol{b} \]接着,作者采用Sinkhorn迭代来解决这个矩阵缩放(matrix scaling)问题:
\[\boldsymbol{u}^{(l+1)} = \boldsymbol{a} /\left(\mathbf{K}_{+} \boldsymbol{v}^{(0)}\right) \text { and } \boldsymbol{v}^{(l+1)}= \boldsymbol{b} /\left(\mathbf{K}_{+}^{\mathrm{T}} \boldsymbol{u}^{(l+1)}\right) \]最后,算得\(\Delta_{\mathbf{A}}=\Delta_{\mathbf{A}+}-\Delta_{\mathbf{A}-}\),从而得到图增广:
\[\mathbf{A}_{-}=\mathbf{A}+\eta \cdot \mathbf{S} \odot \Delta_{\mathbf{A}} \]本文的完整算法如下图所示:
2.2 ICLR2023 《Spectral augmentation for self-supervised learning on graphs》
本文的思路是好的图增广应尽量使图谱(特征值)的变化量更大。因此本文先通过一个预计算(pre-computing)的步骤来先获得好的增广,然后再在此基础上进行图对比(自监督)学习。预计算的过程即求解下列优化问题:
\[t(\mathbf{A})=\operatorname{argmax}_{\|\mathbf{A}-t(\mathbf{A})\|_1 \leq \epsilon} \mathcal{D}(\operatorname{eig}(\operatorname{Lap}(\mathbf{A})), \operatorname{eig}(\operatorname{Lap}(t(\mathbf{A})))) \]可以看到,这里两个图结构之间的距离是基于图谱来进行度量的。作者认为一个有效的拓扑增广应该更关注那些对图谱产生大的扰动的敏感边,然后通过对比学习来消除其影响。基于这一原则,作者设计了相应的谱增广策略。
定义拓扑增广\(T(\mathbf{A})\),其每一项\(A_{ij}\)都为服从伯努利分布\(\mathcal{B}(\Delta_{ij})\)的随机变量。所有伯努利分布的参数构成了一个概率矩阵\(\Delta\in[0, 1]^{n\times n}\)。我们可以采样边扰动矩阵\(\mathbf{E}\in\{0, 1\}^{n\times n}\),这里\(E_{ij}\sim \mathcal{B}(\Delta_{ij})\)表示是否对节点\(i\)和\(j\)之间的边进行翻转,如果\(E_{ij}=1\)则翻转边,否则不变。增广图则通过下式来采样得到:
\[t(\mathbf{A})=\mathbf{A}+\mathbf{C} \odot \mathbf{E},\quad \mathbf{C}=\overline{\mathbf{A}}-\mathbf{A}, \]这里\(\bar{\mathbf{A}}\)为邻接矩阵\(\mathbf{A}\)的补矩阵,经由\(\overline{\mathbf{A}}=\mathbf{1}_n \mathbf{1}_n^{\top}-\mathbf{I}_n-\mathbf{A}\)计算,这里\(\left(\mathbf{1}_n \mathbf{1}_n^{\top}-\mathbf{I}_n\right.)\)表示无自环的全连接图。因此,\(\mathbf{C}=\overline{\mathbf{A}}-\mathbf{A} \in\{-1, 1\}^{n\times n}\)表示对每个节点对的边添加或删除操作。如果\(C_{ij}=1\),则在节点\(i\)和\(j\)之间添加边,如果\(C_{ij}=-1\)则移除边。采用Hadamard积\(\mathbf{C}\odot \mathbf{E}\)来最终确定对图有效的边扰动。
由于\(\mathbf{E}\)是服从伯努利分布的随机变量所组成的矩阵,则所采样的增广图的期望为\(\mathbb{E}[t(\mathbf{A})]=\mathbf{A}+\mathbf{C} \odot \mathbf{\Delta}\)。因此,\(\Delta\)的设计决定了拓扑增广的模式。以均匀随机地移除边为例,当\(C_{ij}=-1\)时\(\Delta_{ij}\)被设置为固定的dropout rate,否则将其设置为0。
最大化谱变化量 不同于直接为\(\Delta\)设置固定值做为均匀随机扰动,作者提出由图谱来指导\(\Delta\)的优化。具体来说,这里需要在期望上来搜索一个\(\Delta\)以最大化原始图和从概率矩阵中采样的增广图之间的谱差距。将\(\mathbf{A}\)的未归一化Laplacian矩阵表示为\(\text{Lap}(\mathbf{A})\),则其图谱可以被计算为\(\mathbf{\Lambda} = \text{eig}(\text{Lap}(\mathbf{A}))\)。于是,在单个增广branch中搜索所需要的\(\Delta\)可以被形式化为如下问题:
\[\text { Single-way scheme } \operatorname{SPAN}_{\text {single }}: \max _{\Delta \in \mathcal{S}}\|\operatorname{eig}(\operatorname{Lap}(\mathbf{A}+\mathbf{C} \odot \boldsymbol{\Delta}))-\operatorname{eig}(\operatorname{Lap}(\mathbf{A}))\|_F^2 \]这里\(\mathcal{S}=\left\{\mathbf{s} \mid \mathbf{s} \in[0,1]^{n \times n},\|\mathbf{s}\|_1 \leq \epsilon\right\}\)与\(\epsilon\)控制扰动的强度。上式提供的是一个增广branch的视图。扩展到两个branch的增广框架则为如下形式:
\[\text { Double-way SPAN } \text { double }: \max _{\boldsymbol{\Delta}_1, \boldsymbol{\Delta}_2 \in \mathcal{S}}\left\|\operatorname{eig}\left(\operatorname{Lap}\left(\mathbf{A}+\mathbf{C} \odot \boldsymbol{\Delta}_1\right)\right)-\operatorname{eig}\left(\operatorname{Lap}\left(\mathbf{A}+\mathbf{C} \odot \boldsymbol{\Delta}_2\right)\right)\right\|_F^2 \]上式带来了更好的灵活性,但也使得优化问题变得更难解,因此我们需要对问题进行进一步转换。基于三角不等式,我们可以去最大化其下界做为替代:\(\max _{\Delta_1, \Delta_2 \in \mathcal{S}}\left\|\operatorname{eig}\left(\operatorname{Lap}\left(\mathbf{A}+\mathbf{C} \odot \boldsymbol{\Delta}_1\right)\right)\right\|_2^2-\left\|\operatorname{eig}\left(\operatorname{Lap}\left(\mathbf{A}+\mathbf{C} \odot \boldsymbol{\Delta}_2\right)\right)\right\|_2^2\)。这样,\(\Delta_1\)和\(\Delta_2\)就能够独立地朝着相反的方向进行优化:最大化一个branch的图谱范数,与此同时最小化另一个。而这最终会导出下列的目标函数:
\[\text { Opposite-direction scheme SPAN } \text { opposite }: \max _{\boldsymbol{\Delta}_1 \in \mathcal{S}} \mathcal{L}_{\mathrm{GS}}\left(\boldsymbol{\Delta}_1\right) \text {, and } \min _{\boldsymbol{\Delta}_2 \in \mathcal{S}} \mathcal{L}_{\mathrm{GS}}\left(\boldsymbol{\Delta}_2\right) \]这里\(\mathcal{L}_{\mathrm{GS}}(\boldsymbol{\Delta})=\|\operatorname{eig}(\operatorname{Lap}(\mathbf{A}+\mathbf{C} \odot \boldsymbol{\Delta}))\|_F^2\)度量了采用\(\Delta\)的增广范式的图谱范数。对于增广范式\(T_1(\mathbf{A})\),\(\Delta_1\)生成的视图总体上具有比原始图更大的谱范数,而对于\(T_2(\mathbf{A})\),\(\Delta_2\)生成的视图则具有较小的谱。我们可以将它们理解为为输入图设置了谱边界,以训练编码器来捕捉到重要且对该区域内的扰动鲁棒的信息。
优化\(\Delta_1\)和\(\Delta_2\) 上式可以采用投影梯度下降(对\(\Delta_2\))与上升(对\(\Delta_1\))来求解(关于投影(次)梯度下降法可参见我的博客《数值优化:经典一阶确定性算法及其收敛性分析》)。以\(\Delta_2\)为例,其更新过程如下:
\[\boldsymbol{\Delta}_2^{(t)}=\mathcal{P}_{\mathcal{S}}\left[\boldsymbol{\Delta}_2^{(t-1)}-\eta_t \nabla \mathcal{L}_{\mathrm{GS}}\left(\boldsymbol{\Delta}_2^{(t-1)}\right)\right] \]这里\(\eta_t > 0\)为步骤\(t\)的学习率,而\(\mathcal{P}_{\mathcal{S}}(\mathbf{a})=\operatorname{argmin}_{\mathbf{s} \in \mathcal{S}}\|\mathbf{s}-\mathbf{a}\|_2^2\)为在约束集\(\mathcal{S}\)上关于\(\mathbf{a}\)的投影算子。这里的梯度\(\nabla \mathcal{L}_{\text{GS}}(\Delta^{(t-1)}_2)\)可以通过链式法则计算,其中会用到特征值对矩阵求导的闭式解:对于一个实对称矩阵\(\mathbf{L}\),其第\(k\)个特征值的导数为\(\partial \lambda_k / \partial \mathbf{L}=\boldsymbol{u}_k \boldsymbol{u}_k^{\top}\)[8],这里\(\boldsymbol{u}_k\)为对应的特征向量。注意导数计算要求特征值互异,但这对于自同构(automorphism)图并不满足[9]。为了避免这种情况,作者向邻接矩阵中添加了一个小噪声项,例如\(\mathbf{A}+\mathbf{C} \odot \boldsymbol{\Delta}+\varepsilon \times\left(\mathbf{N}+\mathbf{N}^{\top}\right) / 2\),这里\(\mathbf{N}\)中的每一项都从均匀分布\(\mathcal{U}(0, 1)\)中采样,且\(\epsilon\)是一个很小的常数。添加这样的噪声基本上都会打破图的自同构,从而实现特征值的有效梯度计算。
在预计算好概率矩阵\(\Delta_1\)和\(\Delta_2\)之后,我们就可以由\(\Delta_1\)和\(\Delta_2\)来设置增广模式。对于对比学习的每轮迭代,我们采样两个增广图\(t_1(\mathbf{A}) \sim T\left(\mathbf{A} \mid \boldsymbol{\Delta}_1\right)\)和\(t_2(\mathbf{A}) \sim T\left(\mathbf{A} \mid \boldsymbol{\Delta}_2\right)\)。增广图之后会被输入一个图编码器\(f_{\theta}\),从而产生两组节点表征\(\mathbf{H}^{(1)}, \mathbf{H}^{(2)} \in \mathbb{R}^{n \times d^{\prime}}\)。之后我们应用读出函数\(g_{\phi}\)来聚合并变换节点表征以得到图表征\(\boldsymbol{z}^{(1)}, \boldsymbol{z}^{(2)} \in \mathbb{R}^{d^{\prime}}\)。最后,给定训练图\(\mathcal{G}\),采用对比目标函数\(\mathcal{L}_{\text{GCL}}\)在最大化局部节点表征和全局图表征之间的跨视图相似度,旨在保留局部相似性和全局不变量:
\[\text { GCL-TAGS : } \min _{\theta, \phi} \mathcal{L}_{\mathrm{GCL}}\left(t_1(\mathbf{A}), t_2(\mathbf{A}), \theta, \phi\right)=-\frac{1}{|\mathcal{G}|} \sum_{G \in \mathcal{G}}\left(\frac{1}{n} \sum_{i=1}\left(I\left(\mathbf{H}_i^{(1)}, \boldsymbol{z}^{(2)}\right)+I\left(\mathbf{H}_i^{(2)}, \boldsymbol{z}^{(1)}\right)\right)\right) \\ \begin{aligned} \text{s.t.} \quad & t_i(\mathbf{A}) \sim T\left(\mathbf{A} \mid \boldsymbol{\Delta}_i\right), \quad i \in\{1,2\}, \\ & \boldsymbol{\Delta}_1=\operatorname{argmax}_{\boldsymbol{\Delta} \in \mathcal{S}} \mathcal{L}_{\mathrm{GS}}(\boldsymbol{\Delta}),\quad \boldsymbol{\Delta}_2=\operatorname{argmin}_{\Delta \in \mathcal{S}} \mathcal{L}_{\mathrm{GS}}(\boldsymbol{\Delta}) \end{aligned} \]这里\(I(X_1, X_2)\)计算的是变量\(X_1\)和\(X_2\)之间的互信息,可以采用InfoNCE做为它的下界(参见我的博客《迁移学习:互信息的变分上下界》)。具体地,设余弦相似度为\(\cos(\cdot, \cdot)\),则互信息可以估计如下:
\[I\left(\mathbf{H}_i^{(a)}, \boldsymbol{z}^{(b)}\right)=\log \frac{\exp \left(\cos \left(\mathbf{H}_i^{(a)}, \boldsymbol{z}^{(b)}\right)\right)}{\sum_{j=1}^n \exp \left(\cos \left(\widetilde{\mathbf{H}}_j, \boldsymbol{z}^{(b)}\right)\right)} \]这里\(a\)和\(b\)为增广视图的索引,\(\widetilde{\mathbf{H}}\)为该batch中其它负例的节点表征。
2.3 AISTATS2023 《Spectral Augmentations for Graph Contrastive Learning》
本文提出了两种图数据增广的策略:谱图裁剪(spectral graph cropping)和图频率分量的重排(graph frequency component reordering)。此外,作者也提出了两种后处理(post-processing)的增广质量增强机制。第一种作者称为增广滤波(augmentation filtering),基于表征相似度来选择候选的增广;第二种作者称为本局部-全局表征对齐(local-global embedding alignment),对齐在增广之间共享的节点表征。本文方法的整体框架流程如下图所示:
如上图所示,最开始的两个必备步骤是构建自我中心网络(ego-net,即包含节点\(i\)、\(i\)的邻居节点及\(i\)与邻居节点之间所有边的子图)和随机游走以得到节点的embeddings。而随后的步骤都是按照概率(\(p_{\text{filter}},p_{\text{crop}},p_{\text{align}},p_{\text{mask}},p_{\text{reorder}}\))来选择性出现的,包括增广过滤,谱裁剪,embeddings对齐,随机embeddings掩码,频率分量重排。注意,这里的两个步骤(即掩码或重排)只能二选一。图中的\(t_{\text{max}}\)表示在过滤步骤中所允许尝试的最大次数。
使用特征向量的图裁剪 我们知道对于图像而言,沿着\((x, y)\)轴裁剪像素的图像裁剪增广是非常高效的。而做为图像裁剪的推广,作者引入了去除图节点的图裁剪增广,该增广使用图Laplacian矩阵\(\mathbf{L}_i\)两个最小的非零特征值\(\lambda_2\),\(\lambda_3\)所对应的特征向量。设\(\boldsymbol{x}(v)\)表示在第二个特征向量中赋给节点\(v\)的值(即\(\boldsymbol{u}_2\in \mathbb{R}^N\)的第\(v\)行),相似地\(\boldsymbol{y}(v)\)表示第三个特征向量中赋给节点\(v\)的值(即\(\boldsymbol{u}_3\in \mathbb{R}^N\)的第\(v\)行),则可定义谱裁剪增广如下:\(G_i\left[x_{\min }, x_{\max }, y_{\min }, y_{\max }\right]\)(裁剪后的视图)为节点\(v\in G_i\)的集合,满足\(x_{min}\leqslant \boldsymbol{x} (v) \leqslant x_{\text{max}}\)与\(y_{\text{min}}\leqslant \boldsymbol{y}(v) \leqslant y_{\text{max}}\)。
基于频率的位置embedding重排 我们知道图像是由RGB编码得到的多通道数据,不同通道对应着可见光谱的不同频率。关于图像已经有了成功的重排增广,这启发我们引入一个新的图增广,该图增广将会重排图各频率分量的结构位置embeddings。我们知道结构位置embeddings\(\mathbf{H}_i\)可以由图Laplacian矩阵的分解得到(其列为对应各频率分量的特征向量,其第\(v\)行为节点\(v\)的embedding)[10][11],于是这里可以考虑去重排\(\mathbf{H}_i\)的各列。
然而,任意的重排并不能产生一个好的增广。为了导出一个位置embedding,归一化Laplacian矩阵\(\mathbf{L}_i\)并不是用于分解的有效选择。由特征分解可以导出一个著名的随机游走embedding方法:
\[\log \left(\sum_{j=1}^r\left(\mathbf{I}-\mathbf{L}_i\right)^r\right) \mathbf{D}_i^{-1}=\log \left(\mathbf{U}_i\left(\sum_{j=1}^r\left(\mathbf{I}-\mathbf{\Lambda}_i\right)^r\right) \mathbf{U}_i^{\mathbf{T}}\right) \mathbf{D}_i^{-1} \]可见\(\sum_{j=1}^r\left(\mathbf{I}-\mathbf{L}_i\right)^r\)在谱分解中代替了\(\left(\mathbf{I}-\mathbf{L}_i\right)\)。正如邻接矩阵\(\mathbf{A}_i\)编码了图的一阶邻域信息(边),\(\mathbf{A}^2_i\)编码了二阶信息,\(\mathbf{A}^3_i\)编码了三阶信息等。使用更大的\(r\)可以整合embeddings中更高阶的信息。最佳的\(\mathbf{H}\)为\(\sum_{j=1}^r(1-\lambda)^j\)中前\(k\)个值所对应的\(\mathbf{U}\)的列(特征向量)。没有必要重复特征值分解来获得新的embeddings,因为高阶embeddings可以通过重排特征向量(按照\(\sum_{j=1}^r\left(1-\lambda_w\right)^j\)的降序)来得到。
embeddings对齐 作者还提出了一种基于embeddings对齐的增广质量增强机制,该机制可以产生更好的增广。该机制是后处理的,也即需要在进行增广并学得embeddings后再进行调整。给定图\(G_t\)中的两个节点\(v\)和\(v^{\prime}\),并通过图嵌入方法来产生\(G_t\)的embedding矩阵\(\mathbf{H}_{t}\)。这里\(\mathbf{H}_t\)中对应节点\(v\)的那一行提供了对应的节点embedding\(\boldsymbol{h}_v\)。考虑两个视图\(G^{\prime}_i\),\(G^{\prime\prime}_i\)和节点\(v_i\)满足\(v_i \in G^{\prime}_i, v_i \in G^{\prime\prime}_i\)。给定\(G^{\prime}_i, G^{\prime\prime}_i\)的embeddings \(\mathbf{H}^{\prime}_i\), \(\mathbf{H}^{\prime\prime}_i\),则对齐指的是去寻找一个正交矩阵\(\mathbf{Q}\)满足\(\mathbf{H}^{\prime\prime}_i \mathbf{Q}\approx \mathbf{H}^{\prime}_i\)。这里之所以要对齐的原因是每个节点\(v_i\)的结构embeddings(在\(\mathbf{H}^{\prime}_i\),\(\mathbf{H}^{\prime\prime}_i\)中对应节点\(v_i\)的每一行)是有差异的,我们需要去纠正它。注意,直接对齐是难以优化的(和我们在2.2节中面临的情况类似),故这里还需要使用原始的子图embeddings矩阵\(\mathbf{H}_{t, G_i}\)做为桥梁(\(\mathbf{H}_{t, G_i}\)为将所有\(v_j\in G_i\)对应的行\(j\)收集得到的子矩阵)。最后,问题就可以形式化为:找到正交矩阵\(\mathbf{Q}\),\(\mathbf{Q}^{**}\),使得
\[\mathbf{Q}^*=\min_\mathbf{Q} \|\mathbf{H}_i^{\prime} \mathbf{Q}-\mathbf{H}_{t, G_i}\lVert^2_{F},\quad \mathbf{Q}^{**}=\min_\mathbf{Q} \|\mathbf{H}_i^{\prime\prime} \mathbf{Q}-\mathbf{H}_{t, G_i}\lVert^2_{F} \]该问题有闭式解\(\mathbf{Q}^* = \mathbf{U}\mathbf{V}^{\text{T}}\),这里\(\mathbf{U}\mathbf{\Sigma}\mathbf{V}^{\text{T}}\)为\((\mathbf{H}^{\prime}_i)^{\text{T} }\mathbf{H}_{t, G_i}\)的奇异值分解(\(\mathbf{Q}^{**}\)同理,这里和我们在博客《知识图谱实体对齐:无监督和自监督的方法》中所求解的问题类似)。这里所得到的解满足\(\mathbf{H}_i^{\prime} \mathbf{Q}^* \approx \mathbf{H}_{t, G_i}\)与\(\mathbf{H}_i^{\prime \prime} \mathbf{Q}^{* *} \approx \mathbf{H}_{t, G_i}\)。于是,我们可以通过使用\(\mathbf{H}_i^{\prime} \mathbf{Q}^*, \mathbf{H}_i^{\prime\prime} \mathbf{Q}^{**}\)来代替\(\mathbf{H}_i^{\prime}, \mathbf{H}^{\prime\prime}_i\),以减少错位所导致的负面差距,最终获得更好的图增广。作者将此称为对齐。
增广过滤 文章还提出了一个选择候选增广的策略,称为增广滤波。同embeddings对齐一样,这个也是个后处理步骤。考虑\(G^{\prime}_i,G^{\prime\prime}_i\)这两个视图,这两个视图由节点\(a_i\)(节点\(a_i\)在\(G_t\)中的自我中心网络为\(G_i\))进行随机游走得到。设\(\boldsymbol{z}_{G^{\prime}_i}=\sum_{v_j\in G^{\prime}_i} \boldsymbol{h}_{j}\)(\(\boldsymbol{z}_{G^{\prime\prime}_i}\)同理),则我们能够通过\(\langle \boldsymbol{z}_{G_i^{\prime}}, \boldsymbol{z}_{G_i^{\prime \prime}} \rangle\)的相似度来度量视图的相似度。作者规定只有当增广视图相似时才接受该对视图,以避免潜在的噪声增广:
\[\frac{\left\langle \boldsymbol{z}_{G^{\prime}}, \boldsymbol{z}_{G^{\prime \prime}}\right\rangle}{\left\|\boldsymbol{z}_{G^{\prime}}\right\|\left\|\boldsymbol{z}_{G^{\prime \prime}}\right\|}>1-c, \quad \text{for some constant } 0\leqslant c \leqslant 1 \]正如上面的框架图所示,作者将这一过滤步骤和随机游走结合,以接受候选节点。这里值得注意的是应用相似性过滤在经验上表现得比其它的选择要好,比如多样性过滤。
参考
- [1] Veličković P, Fedus W, Hamilton W L, et al. Deep graph infomax[J]. arXiv preprint arXiv:1809.10341, 2018.
- [2] Hassani K, Khasahmadi A H. Contrastive multi-view representation learning on graphs[C]//International conference on machine learning. PMLR, 2020: 4116-4126.
- [3] Zhang H, Wu Q, Yan J, et al. From canonical correlation analysis to self-supervised graph neural networks[J]. Advances in Neural Information Processing Systems, 2021, 34: 76-89.
- [4] Tian Y, Sun C, Poole B, et al. What makes for good views for contrastive learning?[J]. Advances in neural information processing systems, 2020, 33: 6827-6839.
- [5] Kipf T N, Welling M. Semi-supervised classification with graph convolutional networks[J]. arXiv preprint arXiv:1609.02907, 2016.
- [6] 南京大学人工智能学院-数字信号处理:07 调制、解调和滤波
- [7] Stewart G W, Sun J. Matrix perturbation theory[J]. (No Title), 1990.
- [8] Rogers L C. Derivatives of eigenvalues and eigenvectors[J]. AIAA journal, 1970, 8(5): 943-944.
- [9] Godsil C D. On the full automorphism group of a graph[J]. Combinatorica, 1981, 1: 243-256.
- [10] Chung F R K. Spectral graph theory[M]. American Mathematical Soc., 1997.
- [11] Hamilton W L. Graph representation learning[M]. Morgan & Claypool Publishers, 2020.