Multi-Level Graph Contrastive Learning

https://arxiv.org/pdf/2107.02639

Multi-Level Graph Contrastive Learning ,2021,arxiv preprint

总结:论文比较简单,作者提出一种新的图对比学习方法MLGCL。本文主要有两个创新点:一是提出了一种新的增强策略,即从节点特征空间生成KNN图作为新视角和原始图进行对比;二是提出了multi-level对比损失,即同时进行node-node和graph-graph对比。通过实验可以发现MLGCL中KNN增强、node-node对比和graph-graph对比都起到了很重要的作用,缺一不可。

1. 简介

1.1 摘要

Graph representation learning has attracted a surge of interest recently, whose target at learning discriminant embedding for each node in the graph. Most of these representation methods focus on supervised learning and heavily depend on label information. However, annotating graphs are expensive to obtain in the real world, especially in specialized domains (i.e. biology), as it needs the annotator to have the domain knowledge to label the graph. To approach this problem, self-supervised learning provides a feasible solution for graph representation learning. In this paper, we propose a Multi-Level Graph Contrastive Learning (MLGCL) framework for learning robust representation of graph data by contrasting space views of graphs. Specifically, we introduce a novel contrastive view - topological and feature space views. The original graph is first-order approximation structure and contains uncertainty or error, while the kNN graph generated by encoding features preserves high-order proximity. Thus kNN graph generated by encoding features not only provide a complementary view, but is more suitable to GNN encoder to extract discriminant representation. Furthermore, we develop a multi-level contrastive mode to preserve the local similarity and semantic similarity of graph-structured data simultaneously. Extensive experiments indicate MLGCL achieves promising results compared with the existing state-of-the-art graph representation learning methods on seven datasets.

最近图表示学习得到了很多人的关注,它旨在为图中每个节点学习一个可判别的嵌入。现有的大多数图表示学习方法基本都是关注有监督学习,过度依赖标签信息。然而在现实世界中,图数据标记代价非常昂贵,比如在生物领域,数据标记需要大量领域相关知识。为了解决这个问题,自监督学习为图表示学习提供了一种可行的方案。本文我们提出了一种多层级图对比学习框架MLGCL,通过对比图数据的不同视角来学习robust表示。具体来说,我们提出了一种新的对比视角——拓扑和特征空间视角。原始图是一阶近似结构,并且包含不确定性和误差,但是通过编码节点特征得到的KNN图蕴含高阶邻近性。因此通过编码特征生成的KNN图不仅可以作为一种对比视图,而且更适合GNN编码器提取有判别能力的表示。此外,我们设计了一种多层级对比模式,可以同时保留图结构数据的局部相似性和语义相似性。大量实验表明,和SOTA图表示学习方法相比,MLGCL可以取得令人满意的结果。

1.2 本文工作

背景: 图表示学习在图学习领域应用广泛,传统的图表示学习方法包括DeepWalk、Line等等。近些年,随着GNNs的不断发展,GNNs被广泛用于各种图数据分析任务。大多数用于图表示学习的GNNs都是有监督模式,过度依赖于标签信息,但是数据标记任务往往代价昂贵。因此自监督和无监督图学习方法得到了越来越多的关注。其中基于重构的无监督方法比如DNGR、SDNE等,基于对比学习的自监督方法比如DGI、MVGRL、GraphCL等等。

动机: 大多数模型都假设有边相连的两个节点很可能属于同一个类别,即同质性。但是现实世界的图数据存在不确定性和误差,导致不同类型的节点间也可能存在边。这一现象导致GNN在有些情况下表现的不好。因此通过特征相似性构建KNN图或删除不同类型节点间的边是可行的方法,基于此研究人员提出了GEN、PTDNet等方法。受这些方法启发,作者设计了一种多层级图对比学习框架。

本文工作: 作者提出了一种多层级图对比学习框架MLGCL,通过对比原始图和KNN图学习稳固的节点表示。

2. 方法

如上图2所示,作者提出MLGCL包含下列组件:

  • GDA: 图数据增强,由输入图生成两个相关图用于对比。本文作者使用KNN图作为增强视角和原始图对比。
  • GNN Encoder: 图编码器,学习节点嵌入用于下游任务。
  • MLP: 将节点表示从嵌入空间映射到对比空间。
  • Pool: 池化所有节点表示,计算图表示。
  • Loss 函数: 作者提出的对层级损失函数同时保留低层级“local”和高层级“global”一致性。

2.1 数据增强

给定输入图G(A,X)G(A,X),首先使用GNN编码器从结构信息中提取节点特征ZZ,然后使用k近邻算法基于ZZ构建KNN图Gf(Af,X)G_f(A_f,X)。构建KNN图步骤如下:

  1. 基于节点特征ZZ,计算相似度矩阵SS。相似度计算方法可以采用欧氏距离、余弦距离等等。
  2. 对于每个节点,选取top-k相似节点,在它们之间添加边,最终得到KNN图的邻接矩阵AfA_f

常用相似度计算方法有:

  • 马氏距离: 其中M是个版正定矩阵,起到逆协方差矩阵的作用

    Sij=(xixj)TM(xixj)S_{i j}=\sqrt{\left(x_{i}-x_{j}\right)^{T} M\left(x_{i}-x_{j}\right)}

  • 余弦距离

    Sij=xixjxixjS_{i j}=\frac{x_{i} \cdot x_{j}}{\left|x_{i}\right|\left|x_{j}\right|}

  • 高斯核

    Sij=exixj22σ2S_{i j}=e^{-\frac{\left\|x_{i}-x_{j}\right\|^{2}}{2 \sigma^{2}}}

2.2 编码器

采用2层GNN作为图编码器,可表示为:

Zl+1=f(A,X)=σ(A~ZlWl)Z^{l+1}=f(A, X)=\sigma\left(\widetilde{A} Z^{l} W^{l}\right)

分别得到两个视图中节点表示ZaZ_aZbZ_b后,利用图池化层P():RN×dRdP(·): \mathbb{R}^{N \times d} \longmapsto \mathbb{R}^{d}计算图表示:

c=P(H)=σ(1Ni=1Nhi)c=P(H)=\sigma\left(\frac{1}{N} \sum_{i=1}^{N} h_{i}\right)

另外为了分别进行node-level和graph-level对比,在计算两种对比损失之前都执行了一次MLP操作 gϕ()g_\phi(·)gφ():RN×dRN×dg_\varphi(·):\mathbb{R}^{N \times d} \longmapsto \mathbb{R}^{N \times d}

2.3 多层级损失

如前文图2所示,MLGCL同时进行了node-level和graph-level对比,因此损失函数也包含两部分:

  • node-level对比

    给定正例对(zi,zj)(z_i,z_j),其损失函数定义如下:

    Lnode (zia,zib)=logexp((zia)Tzib/τ)j=1,jiKexp((zia)Tzib/τ)+exp((zia)Tzja/τ)+exp((zia)Tzjb/τ)\mathcal{L}_{\text {node }}\left(z_{i}^{a}, z_{i}^{b}\right)=\log \frac{\exp \left(\left(z_{i}^{a}\right)^{T} z_{i}^{b} / \tau\right)}{\sum_{j=1, j \neq i}^{K} \exp \left(\left(z_{i}^{a}\right)^{T} z_{i}^{b} / \tau\right)+\exp \left(\left(z_{i}^{a}\right)^{T} z_{j}^{a} / \tau\right)+\exp \left(\left(z_{i}^{a}\right)^{T} z_{j}^{b} / \tau\right)}

    同样地,我们还可以定义Lnode (zib,zia)\mathcal{L}_{\text {node }}\left(z_{i}^{b}, z_{i}^{a}\right)。这样整个节点级对比损失定义为:

    Lnode =Lnode (zia,zib)+Lnode (zib,zia)\mathcal{L}_{\text {node }}=\mathcal{L}_{\text {node }}\left(z_{i}^{a}, z_{i}^{b}\right)+\mathcal{L}_{\text {node }}\left(z_{i}^{b}, z_{i}^{a}\right)

  • graph-level对比

    给定正例对(sa,sb)(s^a,s^b)和负例对(sa,s~a),(sa,s~b)(s^a,\widetilde s^a),(s^a,\widetilde s^b),对比损失定义为:

    Lgraph (sa,sb)=logexp((sa)Tsb/τ)exp((sa)Tsb/τ)+exp((sa)Ts~a/τ)+exp((sa)Ts~b/τ)\mathcal{L}_{\text {graph }}\left(s^{a}, s^{b}\right)=\log \frac{\exp \left(\left(s^{a}\right)^{T} s^{b} / \tau\right)}{\exp \left(\left(s^{a}\right)^{T} s^{b} / \tau\right)+\exp \left(\left(s^{a}\right)^{T} \tilde{s}^{a} / \tau\right)+\exp \left(\left(s^{a}\right)^{T} \tilde{s}^{b} / \tau\right)}

    对于负样本的生成是通过随机shuffle特征得到邻接矩阵A~\widetilde AA~f\widetilde A_f得到的。对于另外一个视角同样可以定义Lgraph (sb,sa)\mathcal{L}_{\text {graph }}\left(s^{b}, s^{a}\right)。这样整个图层级对比损失定义为:

    Lgraph =Lgraph (sa,sb)+Lgraph (sb,sa)\mathcal{L}_{\text {graph }}=\mathcal{L}_{\text {graph }}\left(s^{a}, s^{b}\right)+\mathcal{L}_{\text {graph }}\left(s^{b}, s^{a}\right)

MLGCL的整体损失就定义为两者之和:

L=Lnode +λLgraph \mathcal{L}=\mathcal{L}_{\text {node }}+\lambda \mathcal{L}_{\text {graph }}

3. 实验

3.1 基础实验

如上表3、4所示,即使和有监督方法相比,作者提出MLGCL在7个数据集上基本都取得了最优表现。

3.2 消融实验

作者使用Edge Perturbation,Attribute Masking和Graph Diffusion作为增强策略,分别表示为MLGCL-edge,MLGCL-mask和MLGCL-L&G。实验结果如下表5所示:

对比各个实验结果可以发现,MLGCL中无论是KNN图增强策略,node-node对比还是graph-graph对比都是必不可少的。

打赏
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2021-2022 Yin Peng
  • 引擎: Hexo   |  主题:修改自 Ayer
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信