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

推荐订阅源

酷 壳 – CoolShell
酷 壳 – CoolShell
P
Privacy & Cybersecurity Law Blog
G
GRAHAM CLULEY
T
The Exploit Database - CXSecurity.com
www.infosecurity-magazine.com
www.infosecurity-magazine.com
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Project Zero
Project Zero
S
Security @ Cisco Blogs
TaoSecurity Blog
TaoSecurity Blog
A
Arctic Wolf
Webroot Blog
Webroot Blog
Hacker News - Newest:
Hacker News - Newest: "LLM"
Security Latest
Security Latest
H
Heimdal Security Blog
N
News and Events Feed by Topic
N
News | PayPal Newsroom
T
Tor Project blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
GbyAI
GbyAI
The Last Watchdog
The Last Watchdog
Y
Y Combinator Blog
宝玉的分享
宝玉的分享
Scott Helme
Scott Helme
A
About on SuperTechFans
M
MIT News - Artificial intelligence
V
V2EX
V
Visual Studio Blog
Recorded Future
Recorded Future
博客园 - 叶小钗
F
Fortinet All Blogs
L
Lohrmann on Cybersecurity
The GitHub Blog
The GitHub Blog
博客园 - Franky
P
Proofpoint News Feed
MyScale Blog
MyScale Blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
S
Secure Thoughts
D
DataBreaches.Net
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
博客园 - 三生石上(FineUI控件)
I
InfoQ
SecWiki News
SecWiki News
Blog — PlanetScale
Blog — PlanetScale
Engineering at Meta
Engineering at Meta
J
Java Code Geeks
B
Blog RSS Feed
AWS News Blog
AWS News Blog
Know Your Adversary
Know Your Adversary
V
Vulnerabilities – Threatpost
H
Help Net Security

博客园 - zhang-yd

今日开源[第33期] Home Assistant Core 今日开源[第32期] Vibe-Trading 今日开源[第31期]RuView 今日开源[第30期]Chrome DevTools MCP 今日开源[第29期]RomM (ROM Manager) 今日开源[第28期]Page Agent 今日开源[第27期]video-use 今日开源[第26期]SimpleX Chat 今日开源[第25期]LingBot-Map 今日开源[第24期]OpenMontage 今日开源[第23期]Voicebox 今日开源[第22期]tw93/Pake 今日开源[第21期]yifanfeng97/Hyper-Extract 今日开源[第20期]google-research/timesfm 今日开源[第19期]Panniantong/Agent-Reach 今日开源[第18期]karpathy/autoresearch 今日开源[第17期]public-domain-books-translation 今日开源[第16期]soxoj/maigret 论文解读-《Dual-Kernel Graph Community Contrastive Learning》 今日开源[第15期]agent-skills 论文解读-《Hyperbolic Continuous Structural Entropy for Hierarchical Clustering》 今日开源[第14期]google/skills 今日开源[第13期]turbovec 今日开源[第12期]LiteParse 今日开源[第11期]OmniVoice-Studio 今日开源[第10期]ds4(DwarfStar) 今日开源[第9期]graphify 今日开源[第8期]open-notebook 今日开源[第7期]spec-kit 今日开源[第6期]Production Agentic RAG Course 今日开源[第5期]Headroom 今日开源[第4期]OpenTalking 今日开源[第3期]train-llm-from-scratch 今日开源[第2期]Project N.O.M.A.D. 今日开源[第1期]MoneyPrinterTurbo LearningCell代码解读 论文解读-《It Takes a Graph to Know a Graph Rewiring for Homophily with a Reference Graph》 论文解读-《Mitigating Over-Squashing in Graph Neural Networks by Spectrum-Preserving Sparsification》 论文解读-《Make Heterophily Graphs Better Fit GNN A Graph Rewiring Approach》 论文解读-《Temporal Graph Rewiring with Expander Graphs 》 论文解读-《Understanding Oversquashing in GNNs through the Lens of Effective Resistance》 论文解读-《Homophily-oriented Heterogeneous Graph Rewiring》 论文-Deep appearance modeling: A survey 代码阅读笔记-nanoclaw 代码阅读笔记-OpenManus 论文解读-《An Empirical Evaluation of Rewiring Approaches in Graph Neural Networks》 论文解读-《Probabilistic Graph Rewiring via Virtual Nodes》 论文解读-《Probabilistically Rewired Message-Passing Neural Networks》 论文解读-《Joint Graph Rewiring and Feature Denoising via Spectral Resonance》 代码阅读笔记-nanobot 论文解读-《Oversquashing in GNNs through the lens of information contraction and graph expansion》 论文解读-《GNNs Getting ComFy Community and Feature Similarity Guided Rewiring》 论文解读-《PANDA Expanded Width-Aware Message Passing Beyond Rewiring》 代码阅读笔记-AiPyApp 论文解读-《Community-Invariant Graph Contrastive Learning》 论文解读-《DiffWire Inductive Graph Rewiring via the Lovász Bound》 论文解读-《The Effectiveness of Curvature-Based Rewiring and the Role of Hyperparameters in GNNs Revisited》 论文解读-《Over-Squashing in GNNs and Causal Inference of Rewiring Strategies》 论文解读-《Uncertainty-Aware Graph Structure Learning》
论文解读-《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. 个人感悟

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