图神经网络自监督学习工具箱 - PGCL(二)

文章名称

【Arxiv-2021】【Sun Yat-sen University/Sea AI Lab/Tencent Jarvis Lab,】Prototypical Graph Contrastive Learning

核心要点

文章旨在解决现有图神经网络依赖标注数据,而图对学习方法采用均匀采样负样本的方式导致负样本可能存在与正样本具有相同语义信息的问题,提出PGCL方法,利用聚类的方法寻找样本的聚类中心(文章中每个图是一个样本),拉近不同图增广视图下,同聚类中的样本的向量表示。在构造负样本时只从与目标样本属于不同类别的聚类中采样。并且,利用聚类中心的距离对样本进行加权。

上节介绍了作者的研究背景和思路,以及如何利用聚类consistency进行对比,本节继续介绍reweithed的做法。

研究背景

为了解决对标注样本的依赖,许多图算法被提出,通过对比不同增广视图下的样本向量表示,学习可迁移的、鲁棒的向量表示。然而,作者认为现有图对比学习方法,存在两个问题,

  • 现有方法主要侧重于建模样本级别的结构相似性,并没有显示的建模图数据中整体结构的差异(其实就是区分局部结构在整体网络中的差别,也就是不同的聚类)。
  • 通过均匀随机负采样得到的负样本,很可能在不经意的情况下,语义上与目标样本相同。具体案例如下图Figure1所示,其中,fasle negative与目标样本具有相同的六边形环结构,因此,其实是“right positive”。这样的负样本会导致向量空间中本应该被拉近的点被推远,因而降低了模型性能[15]。


    sampling bias

方法细节

Prototypical Graph Contrastive Learning

PGCL的整体框架如下图所示。与现有的图对比学习方法一样,采用两个不同的图增广方法对原始图数据进行增广,并得到两个增广后视图。随后,经过共享的GNN网络得到对应的向量表示。PGCL利用如下2个核心策略提升对比学习的效果。

framework of PGCL

上节节介绍了如何利用聚类consistency进行对比,接下来介绍reweithed的做法。

  • Reweighted Contrastive Objective。为了缓解上述采样偏差的问题,作者从不同聚类中采样负样本,并利用其与目标样本所属聚类中心的聚类加权负样本。具体的采样和损失函数可以形式化为如下图所示。

    negative sampling with cluster center

    除了false negative以外,随机负采样可能导致负样本中存在大量的easy case,导致学习的效果不够充分,因此作者进一步采用如下图所示的方式对负样本进行weighting。

    reweighted objective

    是样本间权重,其具体计算公式如下图所示,其中。是归一化系数。而表示样本目标样本与各个聚类中心之间距离的均值和方差。

    weights

    值得注意的是,这里的的距离是两个样本聚类中心的剧烈,而不是样本之间的自然距离。

PGCL的整体损失综合了上述两个部分,用参数来调节,具体形式如下图所示。

total loss

实验结果

Comparison with SOTA

作者采用GIN作为编码器,利用SVM做分类器,并在7个数据集上,对比了包括Graph Kernel,无监督和与监督图学习方法在内的多个基准。采用10折交叉验证的准确率作为性能评估指标,并进行5次实验求实验结果的均值和方差,其结果如下图所示。

experiment

个人感觉,整体上看优于很多方法,但是和GIN相比还是有2%以内的gap。作者提到,相比于其他方法,PGCL已经向GIN迫近很多了。

Ablation Study

作者以InfoNCE为基准,进行了消融实验。单独和InfoNCE比,consistency和reweighted效果都是好的,并且consistency+reweighted优于InfoNCE+consistency。为什么作者没比较InfoNCE+reweighted?个人感觉是因为reweighted就包含了consistency的信息。

ablation study

Sensitivity Analysis

可以看到,聚类数量在10-20左右效果最好,多了效果反而变差,符合直觉,因为很多细小的类会簇拥在一起。而batch size一直能提升模型效果,如同心得体会里说的,和simCLR一样,作者做的mini-batch操作(聚类),所以必然要大的batch size效果才好。

sensitivity analysis

代码实现

PGCL的训练伪代码如下图所示。

pseudo code

pseudo code

心得体会

聚类先验

其实很多文章提到[*1](LP这篇引用了当前这篇文章,后续也絮叨一下LP这篇)图增广(更准确应该说数据增广就是在引入先验知识。所以,从这个角度来说,文章做的聚类就是在引入某种角度下的先验,其实有点类似深度聚类,利用聚类标签指导监督学习。

这里存在两个值得讨论的地方,

  • 如何寻找聚类先验?
  • 聚类先验是否可靠?

作者采用引入随机初始化的聚类中心向量,并依据深度聚类的方法,共同学习聚类中心和编码器。文中作者表示可以直接把聚类中心当做Linear层的权重矩阵实现,因为是要和编码器学习的向量表示做矩阵相乘。

但是,作者的聚类是在mini-batch里做,并没有像没有想其他deep clustering的方法一样提纯聚类标签。并且,这样的做法和SimCLR等方法一样,需要较大的batch size(作者在消融实验里也提及了batch size的敏感度)。

平均分割

作者要求样本被聚类平均分割,个人感觉,这种做法符合最大熵原理,并且主要是为了消除平凡解。但是,这里的假设是不知道聚类中样本的比例大概是多少。如果可以用一些简单的聚类确定大致的聚类数量以及每个聚类下样本的个数,是否也可以在要求聚类不是平均分配的呢?

值得商榷的地方

如果没理解错,的dimension好像写错了。如果每列是一个聚类中心的话,?

case

此外,吹毛求疵的觉得不同的Augmentation view应该和数据对上,比如...

文章引用

[15] Ching-Yao Chuang, Joshua Robinson, Lin Yen-Chen, Antonio Torralba, and Stefanie Jegelka. Debiased contrastive learning. NeurIPS, 2020.

[27] Yuki Markus Asano, Christian Rupprecht, and Andrea Vedaldi. Self-labelling via simultaneous clustering and representation learning. ICLR, 2020.

[29] Mathilde Caron, Ishan Misra, Julien Mairal, Priya Goyal, Piotr Bojanowski, and Armand Joulin. Unsupervised learning of visual features by contrasting cluster assignments. NeurIPS, 2020.

[41] Marco Cuturi. Sinkhorn distances: Lightspeed computation of optimal transport. NeurIPS, 26:2292–2300, 2013.

[*1] You, Yuning, Tianlong Chen, Zhangyang Wang and Yang Shen. “Bringing Your Own View: Graph Contrastive Learning without Prefabricated Data Augmentations.” Proceedings of the Fifteenth ACM International Conference on Web Search and Data Mining (2022): n. pag.

你可能感兴趣的:(图神经网络自监督学习工具箱 - PGCL(二))