





















论文题目:Deep Graph Contrastive Representation Learning
论文领域:图对比学习的经典论文
论文发表:ICML Workshop on Graph Representation Learning and Beyond-2020
论文地址:https://arxiv.org/abs/2006.04131
论文代码:https://github.com/CRIPAC-DIG/GRACE
论文背景:

如今,图表示学习已成为分析图结构化数据的基础。受近期对比法成功的启发,本文提出了一种新框架,利用节点级的对比目标,实现无监督图表示学习。具体来说,我们通过变换生成两个图视图,并通过最大化这两个视图中节点表示的一致性来学习节点表示。为了为对比目标提供多样的节点上下文,我们提出了一种混合方案,用于生成结构层和属性层的图视图。此外,我们还从互信息和经典三重态损失两个角度为我们的动机提供了理论依据。我们利用多种真实世界数据集,对转导和归纳学习任务进行实证实验。实验结果表明,尽管方法简单,但我们提出的方法在性能上始终远远优于现有的最先进方法。此外,我们的无监督方法在转导任务中甚至超越了其监督方法,展示了其在现实应用中的巨大潜力。
DGI算法:提出一种基于图域互信息最大化的替代目标,DGI首先使用GNN学习节点嵌入,并通过一个读出函数获得全局总嵌入。
DGI的目标是:通过区分原始图中的节点和被扰动的图中的节点,来最大化节点嵌入和图嵌入之间的互信息。
局限性:
图表示学习
早期的无监督表示学习的工作主要关注局部对比模式,这使得相邻节点具有相似的嵌入。
GRACE算法的核心框架

GRACE和DGI不同的是:不依赖于显式的图嵌入,而是专注于最大化图的两个损坏图之间节点嵌入的一致性。
GACE算法步骤
在G1和G2上的生成的节点嵌入定义为

和

然后采用了一个对比目标(判别器),用于区分两个不同视图中的节点嵌入和其他节点的嵌入。
对于任意节点vi,在G1上的嵌入ui被视为锚点,在G2上的嵌入vi构成正样本,在G1和G2中除了vi以外的其他节点的嵌入为负样本。
有判别器

其中,s为余弦相似度,g是一个非线性投影以增强判别器的表达能力(为一个双层的MLP实现)
每个正样本对的成对目标为:

其中

是一个指示函数,当k和i不等时候为1。
所以,给定一个正对,其他所有节点对都为负样本,负样本有两个来源,跨视图的和同个视图的。
综上,最终的整体的目标函数为

两种图破坏方法:拓扑层面的移除边和节点属性的掩码特征。
边移除RE(Removing Edge)

得到的邻接矩阵可以计算

掩码节点特征MF(Mask node Features)
除了移除边之外,我们还在节点特征中随机用零掩码一部分维度。
互信息(MI)量化了通过观察一个随机变量而获得的关于另一个随机变量的信息量。
InfoNCE 估计器是真实互信息 MI 的下界。
最大化 𝒥 等价于最大化输入节点特征和学习的节点表示之间的互信息 I(𝐗;𝐔,𝐕) 的下界。

数据集
使用了三个类型,共6个数据集,节点分类的引用网络图:Cora、Citeseer、Pubmed 和 DBLP。用于大规模图归纳学习的Reddit,用于多图归纳节点分类的生物蛋白质相互作用图网络PPI。
节点分类任务上的性能总结,以百分比(在推导任务上)或微观平均 F1 分数(在归纳任务上)表示,并附带标准差。第二列显示了每个方法在训练阶段可用的数据,其中 𝑿,𝑨,𝒀 分别对应节点特征、邻接矩阵和标签。无监督模型的最高性能以粗体突出显示。

def semi_loss(self, z1: torch.Tensor, z2: torch.Tensor):
f = lambda x: torch.exp(x / self.tau)
refl_sim = f(self.sim(z1, z1))
between_sim = f(self.sim(z1, z2))
return -torch.log(
between_sim.diag()
/ (refl_sim.sum(1) + between_sim.sum(1) - refl_sim.diag()))
def loss(self, z1: torch.Tensor, z2: torch.Tensor,
mean: bool = True, batch_size: int = 0):
h1 = self.projection(z1)
h2 = self.projection(z2)
l1 = self.semi_loss(h1, h2)
l2 = self.semi_loss(h2, h1)
ret = (l1 + l2) * 0.5
ret = ret.mean() if mean else ret.sum()
return ret
本文开发了一个基于最大化节点层面一致性的新型图对比表示学习框架。我们的模型通过首先使用两种提出的方案生成图视图——移除边和掩码节点特征——然后应用对比损失来最大化这两个视图中节点嵌入的一致性来学习表示。理论分析揭示了我们的对比目标与互信息最大化和经典三元组损失之间的联系,这为我们的动机提供了合理性。
图对比学习领域的经典算法,值得多次阅读
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。