图机器学习:图谱视角下,如何理解图增广的效应?

摘要:图对比学习(Graph Contrastive Learning, GCL)旨在以自监督的方式学习图的节点表征。具体而言,先以特定方式对原图A进行增广,得到两个增广后的视图(view)V1和V2做为对比对(也可以是原图和增广后的视图做为对比
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])。
阅读全文