HeterGCL-Graph Contrastive Learning Framework on Heterophilic Graph

推荐指数: #paper/⭐⭐
发表于:IJCAI24
类型:个人觉得算是图结构学习,部分思想不错

问题背景:

传统的随机增强不适合异配图。随机增强主要保留的是同配信息。这就导致在异配图用随机增强会抑制高频信息,直接使用时不合理的(这个观点引用的是arixv22的文章[2204.04874] Augmentation-Free Graph Contrastive Learning with Performance Guarantee (arxiv.org),是否真的如他所述有待商榷)

贡献

  1. 我们揭示了传统GCL应用到异配图上的限制
    1. 为了去实现异配图上的自监督学习,我们提出了使用增强-编码-对比的模式去整合结构和语义信息
  2. 模型架构

  3. ANA结构增强

  4. 思路:首先,我们定义了ANA结构增强
  5. M ( l ) = s g n [ A ^ ( l ) ] − s g n [ A ^ ( l − 1 ) ] , M ~ ( l ) = M ( l ) + I , l = 1 , 2 , … , K . \mathbf{M}^{(l)}=\mathrm{sgn}\left[\widehat{\mathbf{A}}^{(l)}\right]-\mathrm{sgn}\left[\widehat{\mathbf{A}}^{(l-1)}\right],\\\widetilde{\mathbf{M}}^{(l)}=\mathbf{M}^{(l)}+\mathbf{I},l=1,2,\ldots,K. M(l)=sgn[A (l)]sgn[A (l1)],M (l)=M(l)+I,l=1,2,,K.
  6. 其中, A ^ i i ( l ) > 0 \widehat{\mathrm{A}}_{ii}^{(l)}>0 A ii(l)>0 时,M=1。否则为0 。l=1, A ^ = I \hat{A}=I A^=I 。这样, { M ( 1 ) , . . . , M ( l ) } \{\mathbf{M}^{(1)},...,\mathbf{M}^{(l)}\} {M(1),...,M(l)} 保留了邻居节点1到l层的信息。
  7. 推论 假设 A ^ \hat{A} A^ 是正则化邻接矩阵的无向图, M l M^l Ml 记录了节点最短路径等于l的节点
  8. 如果我们直接用M去做掩码,那么,就会出现一个问题:
    10.文章配图
    如图,0和7之间只有一个边链接。而0和3之间有两个边连接。如果仅仅用如上M去考虑信息,就会损失掉部分有用信息。
    因此,我们用如下去整合:
    R ( l , L ) = ∑ i = l L A ^ ( i ) . \mathbf{R}^{(l,L)}=\sum_{i=l}^L\widehat{\mathbf{A}}^{(i)}. R(l,L)=i=lLA (i).
    其中, A a n a ( l ) = M ~ ( l ) ⊙ R ( l , L ) , l = 1 , 2 , … , L . \mathbf{A}_{ana}^{(l)}=\widetilde{\mathbf{M}}^{(l)}\odot\mathbf{R}^{(l,L)},l=1,2,\ldots,L. Aana(l)=M (l)R(l,L),l=1,2,,L. ⊙ \odot 是hadamard积。

结构学习通过自适应邻居对比

由于同配节点和异配节点在GCN中会有不同的表现,我们为了获取公平的特征,就用MLP进行编码
H 0 = M L P ( X ) . \mathbf{H}_0=\mathrm{MLP}(\mathbf{X}). H0=MLP(X).
提取出初步的特征后,我们通过重构的 邻接矩阵进行特征传递:
P ( l ) = γ l ( A a n a ( l ) H 0 ) \mathbf{P}^{(l)}=\gamma_l(\mathbf{A}_{ana}^{(l)}\mathbf{H}_0) P(l)=γl(Aana(l)H0)
最终,我们得到多阶视图: { P ( 1 ) , . . . , P ( l ) } . \{\mathbf{P}^{(1)},...,\mathbf{P}^{(l)}\}. {P(1),...,P(l)}.
我们引入了自适应邻居对比损失(ANCLoss)去评估本地到全局视图的互信息。
L a ( l ) = − 1 N ∑ i = 1 N log ⁡ exp ⁡ ( h i ⋅ p i ( l ) / τ ) ∑ v k ∈ V 1 [ k ≠ i ] exp ⁡ ( h i ⋅ p k ( l ) / τ ) . \mathcal{L}_\mathbf{a}^{(l)}=-\frac1N\sum_{i=1}^N\log\frac{\exp\left(\boldsymbol{h}_i\cdot\boldsymbol{p}_i^{(l)}/\tau\right)}{\sum_{v_k\in\mathcal{V}}\boldsymbol{1}_{[k\neq i]}\exp\left(\boldsymbol{h}_i\cdot\boldsymbol{p}_k^{(l)}/\tau\right)}. La(l)=N1i=1NlogvkV1[k=i]exp(hipk(l)/τ)exp(hipi(l)/τ).
由于有k层,因此,最终的对比损失为:
L a = ∑ l = 1 K L a ( l ) . \mathcal{L}_\mathrm{a}=\sum_{l=1}^K\mathcal{L}_\mathrm{a}^{(l)}. La=l=1KLa(l).

原始图的语义信息

X 1 = FeatDrop ( X , p ) , H 1 = MLP ( X 1 ) . \begin{aligned}\mathbf{X}_1&=\text{FeatDrop}(\mathbf{X},p),\\\mathbf{H}_1&=\text{MLP}(\mathbf{X}_1).\end{aligned} X1H1=FeatDrop(X,p),=MLP(X1).
FeatDrop是feature drop操作.
L o = ∥ H 0 − H 1 ∥ F 2 ⏟ i n v a r i a n c e + λ ( ∥ H 0 ⊤ H 0 − I ∥ F 2 + ∥ H 1 ⊤ H 1 − I ∥ F 2 ) . ⏟ decorrelation \mathcal{L}_o=\underbrace{\left\|\mathrm{H}_0-\mathrm{H}_1\right\|_F^2}_{\mathrm{invariance}}+\underbrace{\lambda\left(\left\|\mathrm{H}_0^\top\mathrm{H}_0-\mathrm{I}\right\|_F^2+\left\|\mathrm{H}_1^\top\mathrm{H}_1-\mathrm{I}\right\|_F^2\right).}_{\text{decorrelation}} Lo=invariance H0H1F2+decorrelation λ( H0H0I F2+ H1H1I F2).
λ \lambda λ 是超参

语义特征图

我们引入GMM
p ( h i ∣ c j ) = 1 2 π σ 2 exp ⁡ ( − ∥ h i − c j ∥ 2 2 σ 2 ) . p\left(\boldsymbol{h}_i\mid\boldsymbol{c}_j\right)=\frac1{\sqrt{2\pi\sigma^2}}\exp\left(-\frac{\left\|\boldsymbol{h}_i-\boldsymbol{c}_j\right\|_2}{2\sigma^2}\right). p(hicj)=2πσ2 1exp(2σ2hicj2).
c是聚类中心(center), σ 2 \sigma^2 σ2 是高斯分布的变量
节点特征h属于类c的概率如下计算
p ( c j ∣ h i ) = p ( c j ) p ( h i ∣ c j ) ∑ r = 1 k p ( c r ) p ( h i ∣ c r ) = exp ⁡ ( − ( h i − c j ) 2 2 σ 2 ) ∑ r = 1 k exp ⁡ ( − ( h i − c r ) 2 2 σ 2 ) p\left(\boldsymbol{c}_j\mid\boldsymbol{h}_i\right)=\frac{p\left(\boldsymbol{c}_j\right)p\left(\boldsymbol{h}_i\mid\boldsymbol{c}_j\right)}{\sum_{r=1}^kp\left(\boldsymbol{c}_r\right)p\left(\boldsymbol{h}_i\mid\boldsymbol{c}_r\right)}=\frac{\exp\left(-\frac{\left(\boldsymbol{h}_i-\boldsymbol{c}_j\right)^2}{2\sigma^2}\right)}{\sum_{r=1}^k\exp\left(-\frac{\left(\boldsymbol{h}_i-\boldsymbol{c}_r\right)^2}{2\sigma^2}\right)} p(cjhi)=r=1kp(cr)p(hicr)p(cj)p(hicj)=r=1kexp(2σ2(hicr)2)exp(2σ2(hicj)2)
最终,我们可以得到类分配矩阵 R i j ∈ R N × k R_{ij}\in \mathbb{R}^{N \times k} RijRN×k
我们构造其中潜在特征损失(LFLoss)
L l f = 1 k ∣ E ∣ ∑ r = 1 k ∑ ( v i , v j ) ∈ E M S E ( p ( c r ∣ h i ) , p ( c r ∣ h j ) ) . \mathcal{L}_{\mathrm{lf}}=\frac1{k|\mathcal{E}|}\sum_{r=1}^k\sum_{(v_i,v_j)\in\mathcal{E}}\mathrm{MSE}\left(p\left(\boldsymbol{c}_r\mid\boldsymbol{h}_i\right),p\left(\boldsymbol{c}_r\mid\boldsymbol{h}_j\right)\right). Llf=kE1r=1k(vi,vj)EMSE(p(crhi),p(crhj)).

整体损失

L = α L a + ( 1 − α ) ( L o + L l f ) . \mathcal{L}=\alpha\mathcal{L}_a+(1-\alpha)(\mathcal{L}_o+\mathcal{L}_\mathrm{lf}). L=αLa+(1α)(Lo+Llf).

结果

文章配图

个人收货

  1. ANA很有意思,可以包含一些有趣的信息
    1. 整体上来说,损失有三个:对比损失,特征重构损失,第三个损失没见过
    1. 整体结果并没有最优(并未对比一些最新的方法),以及,经典异配图chameleon和Squirrel被没有纳入对比范围内,因此,有待去重跑部分实验

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/144743.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

小白学视觉 | Python — 将非方形图像转换为方形图像

本文来源公众号“小白学视觉”,仅用于学术分享,侵权删,干货满满。 原文链接:Python — 将非方形图像转换为方形图像 使用 CV2 在 Python 中以编程方式完成如下操作:将非方形图像转换为方形图像。 因此,6 …

monorepo基础搭建教程(从0到1 pnpm+monorepo+vue)

monorepo 前言1、搭建空项目并配置pnpm-workspace.yamlpnpm initpnpm-workspace.yaml 2.配置packages测试文件配置相关内容 3.引入packages内容至公共package.json4.创建测试项目,并引入公共包结语 前言 有个项目要引入一个第三方库,但是第三方库下载下…

(笔记)mac笔记本调节键盘速率

我在使用neovim的时候,发现按下hjkl或者shift[]来进行移动的时候 开始延迟大概几百毫秒的时间才开始移动 所以我上网找了下方法 发现修改这了可以改变速率 我就直接拉到了fast 芜湖 起飞 local opt vim.opt local o vim.o local g vim.go.timeoutlen 100 o…

多路径文件批量下载工具V1.0.3-支持批量下载文件到单独文件夹的工具-供大家学习研究参考

1、支持批量下载列表文件中的所有文件到每个文件指定的目录下。 2、支持TXT文件导入。 3、支持TXT文件拖入。 4、支持下载错误文件筛选导出。 5、支持单文件多线程下载。 6、其它功能还在开发中。 7、支持断点续传。 8、支持递归下载(递归下载就是按照服务器目录结构…

实战18-Card封装

import Card from ../../components/Card/Index; import rvp from ../../utils/resposive/rvIndex;Component export default struct DomesticService {build() {Column() {Card() {//默认插槽Text("DomesticService")}}.width(100%).margin({ top: rvp(43) })} } im…

高效处理NPE!!

相信不少小伙伴已经被java的NPE(Null Pointer Exception)所谓的空指针异常搞的头昏脑涨,有大佬说过“防止 NPE,是程序员的基本修养。”但是修养归修养,也是我们程序员最头疼的问题之一,那么我们今天就要尽可能的利用Java8的新特性 Optional来…

Ubuntu22.04安装paddle

查看系统版本信息 使用命令lsb_release -a查看系统版本 rootLAIS01:~# lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 22.04.5 LTS Release: 22.04 Codename: jammy查看系统支持的cuda版本,使用命令nvidia-smi&#…

开源免费的NAS系统-TrueNAS CORE搭建和使用(保姆级教程)

TrueNAS CORE说明 TrueNASCORE(以前称为 FreeNAS)是世界上最受欢迎的存储操作系统,因为它使您能够构建自己的专业级存储系统,用于各种数据密集型应用程序,而无需任何软件成本。只需将其安装到硬件或虚拟机上,即可体验开源存储的真正存储自由。 TrueNAS提供了CORE和Ente…

HTML基础和常用标签

“合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下。” 文章目录 前言文章有误敬请斧正 不胜感恩!1. HTML的基本结构解释: 2. 常见标签的介绍2.1 标题和文本2.2 链接和图片2.3 列表2.4 …

Dependency Check:一款针对应用程序依赖组件的安全检测工具

关于Dependency Check Dependency-Check 是一款软件组合分析 (SCA) 工具,可尝试检测项目依赖项中包含的公开披露的漏洞。它通过确定给定依赖项是否存在通用平台枚举 (CPE) 标识符来实现此目的。如果找到,它…

SSL证书安装、配置和问题定位指南

在运维或者实际的部署、开发,可能涉及到ssl证书相关的问题,尤其前端有些能力(摄像头、webrtc)等需要在安全的上下文才能使用,cookie的跨iframe生效也需要。关于如何生成和部署证书,很多文字都有介绍&#x…

SaltStack自动化运维部署

一.什么是SaltStack SaltStack是一个服务器基础设施管理工具,它具有配置管理,远程执行,监控等功能,SaltStack由Python语言编写,是非常简单易用和轻量级的管理工具。 二.为什么使用SaltStack 为同时管理多台机器&…

主机和Docker容器之间的文件互传方法汇总

Docker渐渐成为前端的一个工具,它像一个通用包装,可以把各种环境包裹其中,从而实现跨设备的兼容。使用的过程中,往往会需要将本地的文件和docker容器内部的文件互传:将主机的文件传递给容器内,让里面的工具…

向日葵好用吗?4款稳定的远程控制软件推荐。

远程控制技术现在已经被应用于很多个领域,像企业办公,远程协助,智能家居,工业控制等等。我们常常会用到的时前两种。而实现远程控制的方式也有多种,但是最方便高效的还是使用第三方软件。我最常使用的是向日葵&#xf…

城市脉络下的空间句法:中介中心性、接近中心性与绕行率的深度解析

这一篇是对上篇内容的继续深化,也就是sDNA “整体分析”(Integral Analysis)计算结果代表的意思,有哪些?意义是什么? 上篇文章指路:城市脉络下的空间句法:整合度与选择度的深度解析…

vue实现二维码生成器应用

实现一个简单的二维码生成器应用,可以使用 Vue 前端结合一个 JavaScript 库(如 qrcode.js 或 QRCode.js)来生成二维码。以下是一个完整的实现步骤: 步骤 1:安装依赖 首先,你需要安装 qrcode 库&#xff0c…

Unity教程(十六)敌人攻击状态的实现

Unity开发2D类银河恶魔城游戏学习笔记 Unity教程(零)Unity和VS的使用相关内容 Unity教程(一)开始学习状态机 Unity教程(二)角色移动的实现 Unity教程(三)角色跳跃的实现 Unity教程&…

macOS平台编译MAVSDK源码生成mavsdk库与mavsdk_server服务可执行文件

克隆源码: 克隆命令 git clone https://github.com/mavlink/MAVSDK.git --recursive 克隆成功如下: 生成makefile (只生成mavsdk库) cmake -Bbuild/default -DCMAKE_BUILD_TYPE=Debug -H. 指定安装目录与生成目录: cmake -Bbuild/macos -DCMAKE_BUILD_TYPE=Debug -…

pg入门3—详解tablespaces2

pg默认的tablespace的location为空,那么如果表设置了默认的tablespace,数据实际上是存哪个目录的呢? 在 PostgreSQL 中,如果你创建了一个表并且没有显式指定表空间(tablespace),或者表空间的 location 为…

面试官问:你如何处理与同事或上级的分歧?【无标题】

面试官问:你如何处理与同事或上级的分歧? 当面试官问你如何处理与同事或上级的分歧,其实面试官的目的是评估你的沟通技巧、冲突解决能力和团队合作的能力。在一起共事,就一定有分歧发生,有争执是正常的,关…