惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

C
Check Point Blog
IT之家
IT之家
V
Visual Studio Blog
The Cloudflare Blog
博客园 - 司徒正美
Jina AI
Jina AI
博客园_首页
阮一峰的网络日志
阮一峰的网络日志
美团技术团队
S
SegmentFault 最新的问题
博客园 - 聂微东
人人都是产品经理
人人都是产品经理
T
Tailwind CSS Blog
罗磊的独立博客
酷 壳 – CoolShell
酷 壳 – CoolShell
量子位
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Hugging Face - Blog
Hugging Face - Blog
博客园 - 【当耐特】
博客园 - 三生石上(FineUI控件)
爱范儿
爱范儿
博客园 - Franky
Last Week in AI
Last Week in AI
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知

博客园 - zhang-yd

今日开源[第57期]beautiful-water源码解读 今日开源[第56期]human-atlas源码解读 今日开源[第55期]model-x-studio源码解读 今日开源[第54期]Spark(@sparkjsdev/spark)源码解读 今日开源[第53期]PlayCanvas Engine(playcanvas/engine)源码解读 今日开源[第52期]SPEEDBALL GI WebGPU Showcase(speedball-gi)源码解读 今日开源[第51期]Pi Agent Harness(pi)源码解读 今日开源[第50期]World Monitor(worldmonitor)游戏项目解读 今日开源[第49期]竹知了(zhuzhiliao)小玩具项目解读 今日开源[第48期]Operation Ironhold 游戏项目解读 今日开源[第47期]Academic Research Skills for Claude Code(ARS)项目skill解读 今日开源[第46期]AI-Research-SKILLs项目skill解读 今日开源[第45期]nature-research-skills项目skill解读 今日开源[第44期]findskills项目skill解读 今日开源[第43期]last30days-skill 今日开源[第42期]Cangjie Skill 今日开源[第41期]MoneyPrinterTurbo 今日开源[第39期]img2threejs 今日开源[第39期]Kronos 今日开源[第38期]Open Code Review (OCR) 今日开源[第37期]Openship 今日开源[第36期]croc 今日开源[第35期] Code-Review-Graph 今日开源[第34期] 《深入理解 AI Agent:设计原理与工程实践》 今日开源[第33期] Home Assistant Core 今日开源[第32期] Vibe-Trading 今日开源[第31期]RuView 今日开源[第30期]Chrome DevTools MCP 今日开源[第29期]RomM (ROM Manager) 今日开源[第28期]Page Agent
论文解读-《Deep Graph Contrastive Representation Learning》
zhang-yd · 2026-02-02 · via 博客园 - zhang-yd

1. 论文介绍

论文题目: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
论文背景:

gnnGRACE01

2. 论文摘要

如今,图表示学习已成为分析图结构化数据的基础。受近期对比法成功的启发,本文提出了一种新框架,利用节点级的对比目标,实现无监督图表示学习。具体来说,我们通过变换生成两个图视图,并通过最大化这两个视图中节点表示的一致性来学习节点表示。为了为对比目标提供多样的节点上下文,我们提出了一种混合方案,用于生成结构层和属性层的图视图。此外,我们还从互信息和经典三重态损失两个角度为我们的动机提供了理论依据。我们利用多种真实世界数据集,对转导和归纳学习任务进行实证实验。实验结果表明,尽管方法简单,但我们提出的方法在性能上始终远远优于现有的最先进方法。此外,我们的无监督方法在转导任务中甚至超越了其监督方法,展示了其在现实应用中的巨大潜力。

3. 相关介绍

DGI算法:提出一种基于图域互信息最大化的替代目标,DGI首先使用GNN学习节点嵌入,并通过一个读出函数获得全局总嵌入。
DGI的目标是:通过区分原始图中的节点和被扰动的图中的节点,来最大化节点嵌入和图嵌入之间的互信息。
局限性:

  • 为了实现InfoMax,DGI的readout函数用来产生全局的图嵌入,但是readout函数的限制太大而无法实现。
  • 当特征稀疏时,仅进行特征洗牌不足以为受损图中的节点生成不同的邻域,导致对比学习的困难

图表示学习
早期的无监督表示学习的工作主要关注局部对比模式,这使得相邻节点具有相似的嵌入。

4. 核心算法

4.1 核心框架

GRACE算法的核心框架

gnnGRACE02

GRACE和DGI不同的是:不依赖于显式的图嵌入,而是专注于最大化图的两个损坏图之间节点嵌入的一致性。

GACE算法步骤

  • 首先通过随机执行破坏操作生成两个相关的图
  • 使用对比损失来训练模型,最大化两个视图中节点嵌入之间的一致性

4.2 目标函数

在G1和G2上的生成的节点嵌入定义为

gnnGRACE03

gnnGRACE04

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

gnnGRACE05

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

gnnGRACE06

其中

gnnGRACE07

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

gnnGRACE08

4.3 图生成

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

gnnGRACE09

得到的邻接矩阵可以计算

gnnGRACE10

掩码节点特征MF(Mask node Features)
除了移除边之外,我们还在节点特征中随机用零掩码一部分维度。

4.4 理论分析

互信息(MI)量化了通过观察一个随机变量而获得的关于另一个随机变量的信息量。
InfoNCE 估计器是真实互信息 MI 的下界。
最大化 𝒥 等价于最大化输入节点特征和学习的节点表示之间的互信息 I​(𝐗;𝐔,𝐕) 的下界。

4.5 GRACE算法训练流程

gnnGRACE11

5. 实验设置

数据集
使用了三个类型,共6个数据集,节点分类的引用网络图:Cora、Citeseer、Pubmed 和 DBLP。用于大规模图归纳学习的Reddit,用于多图归纳节点分类的生物蛋白质相互作用图网络PPI。

节点分类任务上的性能总结,以百分比(在推导任务上)或微观平均 F1 分数(在归纳任务上)表示,并附带标准差。第二列显示了每个方法在训练阶段可用的数据,其中 𝑿,𝑨,𝒀 分别对应节点特征、邻接矩阵和标签。无监督模型的最高性能以粗体突出显示。

gnnGRACE12

6. 核心代码

    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

7. 总结

本文开发了一个基于最大化节点层面一致性的新型图对比表示学习框架。我们的模型通过首先使用两种提出的方案生成图视图——移除边和掩码节点特征——然后应用对比损失来最大化这两个视图中节点嵌入的一致性来学习表示。理论分析揭示了我们的对比目标与互信息最大化和经典三元组损失之间的联系,这为我们的动机提供了合理性。

8. 个人感悟

图对比学习领域的经典算法,值得多次阅读