本文是对《Towards Robust Graph Contrastive Learning》一文的浅显翻译与理解,如有侵权即刻删除。
朋友们,我们在github创建了一个图学习笔记库,总结了相关文章的论文、代码和我个人的中文笔记,能够帮助大家更加便捷地找到对应论文,欢迎star~
Chinese-Reading-Notes-of-Graph-Learning
更多相关文章,请移步:文献阅读总结:网络表示学习/图学习
Title
《Towards Robust Graph Contrastive Learning》
——The Web Conf Workshop2021
Author: Nikola Jovanovic
总结
文章认为当前图上的模型,即便效果很好,在加入对抗性因素后也会变得很不稳定,因此引入了对抗性因素,提出了GROC算法。具体而言,算法会为一个网络生成两个相似的视图,并约束这两个相似视图中同位置的节点嵌入尽可能接近。在视图生成的过程中,文章采用的是对边的修改,不仅使用随机采样的方法进行边的删除,还通过计算边梯度来删除和添加边。注意到,在进行负采样和选取候补边集的过程中,为避免较大的计算量,算法没有针对整个数据集进行采样,而是只关注当前训练的批次。该算法的思路如下:
1 优化目标
给出图G=(V,X,A),其中V是节点集,X是节点特征矩阵,A是拓扑矩阵,算法目的是构建一个函数f为网络中的每个节点生成一个嵌入,应用到后续任务中。具体而言,算法基于原始图生成了两个不同视图,并约束这两个视图中相同位置的节点嵌入尽可能接近,公式如下:
然而,上述公式的视图排布采用的是遍历搜索的方法,这样会带来巨大的计算量。算法对此进行改进,通过约束损失函数的值收敛,具体有:
那么,最终的损失函数有:
2 视图生成
在视图生成上,算法进行了一定改进,具体而言,将每个视图生成器视为两部分,前一部分进行随机采样删除边和掩码特征,后一部分按照规则约束修改边(即删除边和添加边):
具体而言,在执行结束第一部分随机选择后,删除边的部分会计算每条边的梯度,然后删除最小梯度值的边。添加边的部分会取当前训练批次中的所有边作为候补集,全部加入到视图中计算梯度,并只保留最大梯度值的边。
该算法的伪代码如下: