Graph Contrastive Learning 图对比学习GCL

news2024/11/26 13:44:38

Preamble

在这里插入图片描述

GCL主要任务:学习一个编码器,可以编码出结构和结点特征信息,得到一个低维的表达
在这里插入图片描述

早期大部分GNN模型都是有监督的训练
在这里插入图片描述

自监督学习主要分成两种:生成式(用已有信息去预测自己的其他信息) and 对比学习(判别两个样本的相似度,用对比的方式进行学习)
在这里插入图片描述

不管是cv还是图,对比学习的主要模式,本质上对一些样本点先进行增广的方法,再用编码器对增广后的数据点进行编码,对同一个数据点,我们希望它增广后产生的数据点所得到的表达之间的相似度要尽量的大

主要的三个部分:

  • 数据增广
  • 编码器
  • 对比学习的模式和目标函数

在这里插入图片描述

优化目标:希望正样本与anchor之间的相似度 远远大于 负样本与anchor之间的相似度
常用实现:使用N路的softmax函数

下面讲一些比较经典的gcl方法
在这里插入图片描述
对比学习的模式:把什么表达做对比,只把结点之间的表达做对比还是把结点和图之间的表达做对比
数据增广:不同的增广方式,删边、加边、删特征维度ppr、子图采样
在这里插入图片描述

图对比学习概述

一般意义上,图对比学习是一种针对图数据的自监督学习算法。对给定的大量无标注图数据,图对比学习算法旨在训练出一个图编码器,目前一般指图神经网络(Graph Neural Network, GNN)。由这个 GNN 编码得到的图表示向量,可以很好地保留图数据的特性,并进一步在无监督、半监督、迁移学习以及鲁棒性测试等实验设置下进行测试,并应用于社交网络、蛋白质交互网络、分子结构、学术引用网络等多个场景中。
在这里插入图片描述
Graph Contrastive Learning with Augmentations. NeurIPS 2020.

常见的图对比学习算法由下述步骤组成:

  1. 随机采样一批(batch)图;
  2. 对每一个图进行两次随机的数据增强(如删除若干条边(edge)),增强后两个新图称为视图(View)
  3. 使用待训练的 GNN 对 View 进行编码,得到节点表示向量(node representation)图表示向量(graph representations)
  4. 根据上述表示向量计算 InfoNCE[1][2] 损失,其中由同一个 graph 增强出来的 view 的表示相互靠近,由不同的 graph 增强得到的 view 的表示相互远离

在这个流程下,对 graph 应用对比学习,与对其它类型数据(如图像、文本)应用的区别在于:

  1. 数据增强。CV 领域一般通过随机对图片进行裁剪、旋转等操作产生增强后的数据,那如何对 graph 进行数据增强?
  2. 对比层次。GNN 编码后我们可以同时得到节点级别 / 图级别的两个层次的表示,那么对比的目标应该设计在哪个层次?

参考

【AI Drive】WWW 2021:图对比学习研究进展

图对比学习(GNN+CL)顶会论文看 研究趋势

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

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

相关文章

C++学习笔记----9、发现继承的技巧(一)---- 使用继承构建类(1)

在前面的章节中,你学到了继承关系是一种真实世界对象以层次存在的模式。在编程世界中,当需要写一个类基于其构建,或进行细微的修改的另一个类时,那种模式就有了关系。完成这个目标的一个方式是拷贝一个类的代码粘贴到另一个类中。…

一个月学会Java 第14天 内部类

Day14 内部类 类有外边的public class,然后还有一个文件多个的class,但是有没有想过,class可以作为成员也就是类内部的类,甚至作为方法内部的属性也就是类内部的方法的内部出现。除了这两个, 还有直接对着上节课讲的抽…

GeoScene Pro教程(008):GeoScenePro数据查询和检索

文章目录 1、工具分类2、数据常用工具2.1 加载数据2.2 查询需求2.2.1 按照属性查询查询1:人口大于300万的城市有哪些查询2:自治州有哪些查询3:城市名字中带有“荆”的有哪些补充2.2.2 按照位置查询需求2:导出湖北省境内的铁路数据需求3:武汉市共有多少条铁路2.2.3 空间连接…

48 Redis

48 Redis 前言 Redis(Remote Dictionary Server ),即远程字典服务。是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。 redis会周期性的把更新的数据写入磁盘或者把修改操…

RTSP与ONVIF协议的区别及其在EasyCVR视频汇聚平台中的应用

在视频监控和物联网设备领域,RTSP(Real Time Streaming Protocol)和ONVIF(Open Network Video Interface Forum)是两个重要的协议,它们各自在视频流的传输和控制上发挥着不同的作用,并在实际应用…

网络安全之XXE攻击

0x01 什么是 XXE 个人认为,XXE 可以归结为一句话:构造恶意 DTD 介绍 XXE 之前,我先来说一下普通的 XML 注入,这个的利用面比较狭窄,如果有的话应该也是逻辑漏洞。 既然能插入 XML 代码,那我们肯定不能善罢…

基于Nodemcu的手机控制小车

基于Nodemcu的手机控制小车 一、项目说明二、项目材料三、代码与电路设计四、轮子和车体五、电路连接六、使用方法 一、项目说明 嗨,机器人项目制造者们!在这个项目中,我制作了这辆简单但快速的遥控车,它可以通过智能手机控制&am…

gaussdb 主备版本8 SQL参考 学习

SQL参考 1 数据类型 1.1 货币类型 1.1.1 货币类型存储带有固定小数精度的货币金额。 1.2 布尔类型 1.2.1 true:真 1.2.2 false:假 1.2.3 null:未知(unknown) 1.3 日期/时间类型 1.3.1 DATE 输出格式:仅支…

MySQL-06.DDL-表结构操作-创建

一.DDL(表操作) create database db01;use db01;create table tb_user(id int comment ID,唯一标识,username varchar(20) comment 用户名,name varchar(10) comment 姓名,age int comment 年龄,gender char(1) comment 性别 ) comment 用户表; 此时并没有限制ID为…

圈子系统APP小程序H5该如何设置IM?

搭建圈子系统的常见问题,以及圈子论坛系统的功能特点 社交圈子论坛系统的概念 圈子小程序源码 多客圈子系统 圈子是什么软件 跟进圈一个系统的软件 为圈子系统APP小程序H5设置IM(即时通讯),需要遵循一系列步骤来确保通讯功能的稳定、安全和高…

企业架构之从理论指南到实践指导企业数字化转型

理论与实践结合的数字化转型之道 在当今的全球化经济中,企业面临着前所未有的数字化转型压力。数字化转型不仅是技术的更新换代,更是业务、组织、文化和战略的系统性重塑。对于企业来说,如何将理论转换为有效的实践路径,是推动数…

STM32 通用同步/异步收发器

目录 串行通信基础 串行异步通信数据格式 USART介绍 USART的主要特性 USART的功能 USART的通信时序 USART的中断 串行通信基础 在串行通信中,参与通信的两台或多台设备通常共享一条物理通路。发送者依次逐位发送一串数据信号,按一定的约定规则被接…

乐鑫ESP32-S3无线方案,AI大模型中控屏智能升级,提升智能家居用户体验

在这个由数据驱动的时代,人工智能正以其前所未有的速度和规模改变着我们的世界。随着技术的不断进步,AI已经从科幻小说中的概念,转变为我们日常生活中不可或缺的一部分。 特别是在智能家居领域,AI的应用已成为提升生活质量、增强…

linux下编译鸿蒙版curl、openssl

一.环境准备 1.参考说明 NDK开发介绍:https://docs.openharmony.cn/pages/v5.0/zh-cn/application-dev/napi/ndk-development-overview.md 2.NDK下载 点击介绍页面中的链接可以跳转到相应下载页面: 下载相应版本: 下载完毕后解压到指定目…

Matlab详细学习教程 MATLAB使用教程与知识点总结

Matlab语言教程 章节目录 一、Matlab简介与基础操作 二、变量与数据类型 三、矩阵与数组操作 四、基本数学运算与函数 五、图形绘制与数据可视化 六、控制流与逻辑运算 七、脚本与函数编写 八、数据导入与导出 九、Matlab应用实例分析 一、Matlab简介与基础操作 重点内容知识…

第2章 STM32最小系统介绍

第2章 STM32最小系统介绍 1. STM32最小系统组成 2. STM32启动模式 1.STM32最小系统组成 (1)电源电路 (2)复位电路 (3) 晶振电路 (4)下载电路 可打开开发板原理图查看 2.STM32启动模式 在STM…

Postman最新V11版本关键更新一览

Postman作为接口测试中,被广泛应用的一款主流工具,以其丰富的功能,灵活方便的使用方式,广受欢迎。最新发布的V11版本则在向协作平台转型的过程中一路狂奔,增加大量全新的协作支持。下面我们就一起来看看都有哪些变化吧…

基于Arduino的泡茶机器人

打造你的完美泡茶助手 引言 你是否曾遇到过泡出的茶太淡或太苦?通过这个项目,你可以创建一个设备,为你的茶包提供完美的浸泡时间。只需附上一个茶包并放置你的杯子,设备就会开始工作!它将完美地按照你的喜好浸泡你的…

数通--3

一、动态路由 内部 路由器之间要互联互通,必须遵循相同的协议 企业内部用 IGP,企业之间用BGP RIP(已淘汰,不考) 距离就是长短,矢量就是方向,即路由的出接口 一台路由器 A 配好RIP,…

【Fargo】5:根据网络带宽动态调整发送速率

根据网络带宽动态调整发送速率 原理:这个简单实现的原理是 改变包的发送速率就可以改变发送码率了。例如1秒发1000个1KB 的包,带宽8Mbps,如果带宽是4Mbps,那么1秒发500个就够了。D:\XTRANS\thunderbolt\ayame\zhb-bifrost\player-only\worker\src\fargo\zhb_uv_udp_sender.…