文章名称
【Arxiv-2021】【Sun Yat-sen University/Sea AI Lab/Tencent Jarvis Lab,】Prototypical Graph Contrastive Learning
核心要点
文章旨在解决现有图神经网络依赖标注数据,而图对学习方法采用均匀采样负样本的方式导致负样本可能存在与正样本具有相同语义信息的问题,提出PGCL方法,利用聚类的方法寻找样本的聚类中心(文章中每个图是一个样本),拉近不同图增广视图下,同聚类中的样本的向量表示。在构造负样本时只从与目标样本属于不同类别的聚类中采样。并且,利用聚类中心的距离对样本进行加权。
研究背景
为了解决对标注样本的依赖,许多图算法被提出,通过对比不同增广视图下的样本向量表示,学习可迁移的、鲁棒的向量表示。然而,作者认为现有图对比学习方法,存在两个问题,
- 现有方法主要侧重于建模样本级别的结构相似性,并没有显示的建模图数据中整体结构的差异(其实就是区分局部结构在整体网络中的差别,也就是不同的聚类)。
-
通过均匀随机负采样得到的负样本,很可能在不经意的情况下,语义上与目标样本相同。具体案例如下图Figure1所示,其中,fasle negative与目标样本具有相同的六边形环结构,因此,其实是“right positive”。这样的负样本会导致向量空间中本应该被拉近的点被推远,因而降低了模型性能[15]。
方法细节
Prototypical Graph Contrastive Learning
PGCL的整体框架如下图所示。与现有的图对比学习方法一样,采用两个不同的图增广方法对原始图数据进行增广,并得到两个增广后视图。随后,经过共享的GNN网络得到对应的向量表示。PGCL利用如下2个核心策略提升对比学习的效果。
Clustering Consistency for Correlated Views。通过GNN模型,可以得到给定图数据的向量表示。利用随机初始化的个聚类中心向量(后续会通过优化目标一起学习),,可以计算出与每个聚类中心的相似程度,进而得到该样本属于其中一个聚类中心的概率,具体计算公式如下图所示。
同理,可以得到另一个视图下样本属于每个聚类中心的概率,。使得聚类分配统一,即使得两种视图下,概率分布近似一致。作者利用交叉熵损失优化这一目标,具体公式如下图所示。其中,为了区分两种视图的分配概率作者用表示的分配概率。
显然,这里是不对称的,可以通过交换实现对称的游湖目标。作者表示,这个优化目标可以视作通过对比不同视图间聚类分配的方法实现对比学习,而不是对比节点的表示。然而,优化上述目标会有平凡解的问题。例如,把所有节点都聚类到同一个聚类中心里。为了避免这个问题,作者引入约束条件,迫使聚类中包含的样本个数趋于平均(一致),也就是每个聚类的大小一致[29]。
值得注意的是,均匀聚类分配是相对每个mini-batch而言的,是mini-batch的大小。 但由于平均分配约束的存在该问题变成了一个组合优化问题,难以求解,因此作者基于[27,29],利用optimal transport问题的解法,将矩阵约束为transportation polytope,转化约束目标。具体约束可以形式化为如下图所示的形式。其中分别表示长度为的全1向量。改写的优化目标如下图所示,其中,表示Frobenius dot-product。
作者利用Sinkhorn-Knopp algorithm[41]快速求解transport problem。其中是两个renormalization vectors,通过迭代Sinkhorn-Knopp算法[41]使用少量矩阵乘法计算得到。用来平衡收敛速度和结果的最优性。作者提到,这个指数操作是element-wise的。
本节介绍了作者的研究背景和思路,以及如何利用聚类consistency进行对比,下节继续介绍reweithed的做法。
心得体会
聚类先验
其实很多文章提到[*1](LP这篇引用了当前这篇文章,后续也絮叨一下LP这篇)图增广(更准确应该说数据增广就是在引入先验知识。所以,从这个角度来说,文章做的聚类就是在引入某种角度下的先验,其实有点类似深度聚类,利用聚类标签指导监督学习。
这里存在两个值得讨论的地方,
- 如何寻找聚类先验?
- 聚类先验是否可靠?
作者采用引入随机初始化的聚类中心向量,并依据深度聚类的方法,共同学习聚类中心和编码器。文中作者表示可以直接把聚类中心当做Linear层的权重矩阵实现,因为是要和编码器学习的向量表示做矩阵相乘。
但是,作者的聚类是在mini-batch里做,并没有像没有想其他deep clustering的方法一样提纯聚类标签。并且,这样的做法和SimCLR等方法一样,需要较大的batch size(作者在消融实验里也提及了batch size的敏感度)。
平均分割
作者要求样本被聚类平均分割,个人感觉,这种做法符合最大熵原理,并且主要是为了消除平凡解。但是,这里的假设是不知道聚类中样本的比例大概是多少。如果可以用一些简单的聚类确定大致的聚类数量以及每个聚类下样本的个数,是否也可以在要求聚类不是平均分配的呢?
值得商榷的地方
如果没理解错,的dimension好像写错了。如果每列是一个聚类中心的话,?
此外,吹毛求疵的觉得不同的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.