1. 什么是图?(Graph)

想象一下社交网络,每个人是一个“点”(节点),他们之间的朋友关系是“线”(边)。这样的点和线组成的结构就是“图”。在计算机科学中,图被用来表示各种复杂关系,比如论文引用网络(论文是节点,引用关系是边)、电商商品推荐(用户和商品是节点,购买记录是边)等等。

2. 图神经网络(GNN)是做什么的?

图神经网络(GNNs)是一种特别的神经网络,它能理解图里的这些点和线,并从中学到每个“点”的特征表示(也叫“嵌入”或“表征”)。有了这些特征表示,我们就可以做很多有用的事情,比如:

  • 节点分类:判断一个点属于哪一类(比如在论文网络中,判断一篇论文属于哪个研究领域)。

  • 链接预测:预测两个点之间未来是否会产生新的连接(比如预测社交网络中两个人是否会成为朋友,或者电商中用户是否会购买某个商品)。

通常,训练GNN需要大量的“标签数据”(也就是我们已经知道正确答案的数据)。但问题是,在现实世界中,这些标签数据往往非常稀缺。

3. 图对比学习(GCL)如何解决“标签稀缺”问题?

为了解决标签数据少的问题,研究人员提出了“图对比学习”(Graph Contrastive Learning,GCL)。它的核心思想是:

  • 数据增强:我们先对原始图做一些小的改动,生成多个“视图”(augmented views)。比如,可以随机删除一些边、增加一些边、或者遮盖一些节点的特征。

  • 学习相似性:GCL的目标是让同一个节点在不同“视图”下的特征表示尽可能相似,而与不同节点的特征表示尽可能不相似。通过这种方式,GCL可以在没有大量标签的情况下,让GNN学习到有用的节点特征。

打个比方: 就像你有一张照片,你可以对它进行“数据增强”,比如调亮一点、调暗一点、加个滤镜。对比学习就是让你认出这些不同版本的照片都是“同一张照片”,而与其他照片不一样。通过这种训练,模型就能学会照片的关键特征。

4. 现有GCL方法的不足

现有的GCL方法在生成这些“视图”时,通常是随机地进行,或者根据一些预设规则进行。它们没有充分考虑图本身是如何“演变”的,也没有学习图的内在“分布”。

举个例子: 一个图的演变可能遵循某种规律,比如“优先连接”原则(越热门的节点越容易获得新连接)。如果我们在生成新视图时不考虑这些潜在的规律,就可能会错过图中可能存在但尚未被观察到的重要连接(“未见边”)。论文中通过实验发现,如果能适当补充这些“未见边”,可以提升GCL的性能。但要手动选择添加多少新边才能达到最佳效果,却是个“试错”的过程,因为这取决于不同的图数据分布。

5. GACN:论文提出的新方法

为了解决上述问题,这篇论文提出了一个名为

GACN 的新模型,全称是“图生成对抗对比学习网络”(Generative Adversarial Contrastive learning Network for graph representation learning)。

GACN的核心思想是引入生成对抗网络(GANs)来智能地生成高质量的图增强视图,而不是随机生成。

GACN 的组成部分(像一个团队)

GACN 主要由三个核心模块组成,它们协同工作,共同提升图表示学习的效果:

  1. 视图生成器(View Generator):

    • 作用:它的任务是生成新的、增强的图视图,特别是要能自动捕获图的特征,并生成可能存在的“未见边”。

    • 工作方式:它会学习边的分布,通过“边采样”来生成增强视图。为了让生成的视图更合理,它设计了两种“损失”(可以理解为惩罚机制):

      • 边数量损失(Edge Count Loss):确保生成的视图中的边数量在一个合理的范围内,避免过多或过少。

      • 新边损失(New Edge Loss):惩罚那些与原始图“过于不同”的视图,确保生成的新边不是完全随机的,而是有意义的。

  2. 视图判别器(View Discriminator):

    • 作用:它的任务是判断一个图视图是“真实的”(由预定义的数据增强策略生成,比如简单的边丢弃)还是“虚假的”(由视图生成器生成)。

    • 工作方式:判别器和生成器进行“对抗”训练(这就是“对抗网络”的精髓):

      • 生成器努力生成能“骗过”判别器的视图。

      • 判别器努力提高自己分辨“真假”视图的能力。

      • 通过这种“猫捉老鼠”的游戏,生成器会变得越来越好,能生成非常逼真的、高质量的增强视图。

  3. 图编码器(Graph Encoder):

    • 作用:这是GACN中实际用来学习节点特征的核心部分。它使用生成器和判别器共同产生的视图来训练,从而学习到更强大、更鲁棒的节点表示。

    • 工作方式:它使用两种自我监督学习损失来优化:

      • 图对比损失(Graph Contrastive Loss):让同一个节点在不同视图下的表示更相似,不同节点的表示更不相似。

      • 贝叶斯个性化排序损失(Bayesian Personalized Ranking (BPR) Loss):这对于链接预测任务特别有用,它会尝试最大化已连接节点之间的相似度,同时最小化未连接节点之间的相似度。

GACN 的训练过程

这三个模块是联合训练的。这意味着它们不是独立训练后再组合起来,而是同时进行优化,相互促进。生成器、判别器和编码器会顺序且迭代地进行优化。

6. GACN 的主要贡献和优势

  • 首次结合GANs与GCL:GACN是第一个将图生成对抗网络引入图对比学习中,用于学习和生成高质量视图的方法。

  • 自动生成高质量视图:它能够自动捕捉图的特征并生成高质量的增强视图,有效解决了现有GCL方法中视图生成依赖手动选择或领域知识的问题。

  • 性能优越:在多个真实世界数据集上的大量实验表明,GACN在节点分类和链接预测任务上的表现优于其他12种最新的基线方法。

  • 意外发现:GACN在数据增强中生成的视图竟然符合网络中著名的**“优先连接”规则**(Preferential Attachment Rule)。这个规则简单来说就是:在网络中,连接越多的节点越容易获得新的连接。这表明GACN学习到了图数据生成的一些深层规律。

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

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PyTorch中的torch.argmax()和torch.max()区别

在PyTorch中,torch.argmax()和torch.max()都是针对张量操作的函数,但它们的核心区别在于返回值的类型和用途:1. torch.argmax() 作用:仅返回张量中最大值所在的索引位置(下标)。返回值:一个整数…

WebSocket主从服务器架构完整教程

目录 1. 前言:为什么要学习WebSocket主从架构 第一章:基础知识准备 2.1 什么是WebSocket 生活中的例子 技术特点 2.2 WebSocket vs HTTP 什么时候用WebSocket? 2.3 什么是主从架构 生活中的例子 技术架构图 2.4 环境准备 需要的软件 项目结构 第二章:WebSock…

Java的extends通配符

在Java泛型中,extends通配符用于限定泛型类型的上界,即指定泛型可以是某个类型或其子类型。它有两种常见用法:类型参数限定和通配符限定,下面详细介绍: 1. 类型参数限定(在类/方法定义中) 在定义…

vue自定义提示框组件

不想要elementui的消息提示&#xff0c;自定义一个组件系统统一使用 一、写页面 vue &#xff08;我放的目录是src/plugins/message.vue&#xff09;&#xff08;这里面使用elementui 里面icon 需要单独引入&#xff09; <template><Transition name"down"&…

自动驾驶数据集综述:统计特征、标注质量与未来展望

自动驾驶数据集综述&#xff1a;统计特征、标注质量与未来展望 A Survey on Autonomous Driving Datasets: Statistics, Annotation Quality, and a Future Outlook 得益于硬件和深度学习技术的快速进步&#xff0c;自动驾驶近年来迅速发展并展现出良好的性能。高质量的数据集…

redis数据结构和数据类型

1.动态字符串SIMPLE DYNAMIC STRING(SDS)观察上图中的SDS结构&#xff0c;头部包含字符串长度和分配的空间&#xff0c;可以以O&#xff08;1&#xff09;的时间复杂度计算出字符串长度&#xff0c;并且有了字符串长度后可以无视c语言的字符串缺陷&#xff08;\0作为结尾标识&a…

深度学习--神经网络

一、深度学习的简单概念深度学习是一种模仿人类大脑的运行方式&#xff0c;从大量数据中学习特征的学习模式。深度学习是机器学习的子集&#xff0c;它与机器学习的关系如下&#xff1a;二、感知神经网络2.1简单定义神经网络&#xff08;Neural Networks&#xff09;是一种模拟…

.NET 程序的强名称签名与安全防护技术干货

在 .NET 开发领域&#xff0c;保障程序的安全性和完整性至关重要。强名称签名和有效的安全防护措施是实现这一目标的关键手段。下面将详细介绍 .NET 程序的强名称签名以及相关的安全防护方法。一、什么是强名称签名强名称签名是 .NET 框架提供的一种安全机制&#xff0c;其主要…

DNS(Domain Name System,域名系统)

目录 **一、DNS的核心功能****二、DNS的工作原理****1. 解析流程(以车载导航请求为例)****2. 关键机制****三、车载以太网中DNS的特殊性**1. **高可靠性要求**2. **低延迟优化**3. **安全挑战与防护****四、DNS相关协议与技术****五、车载DNS配置示例****六、DNS故障排查工具…

优化 ECharts 多条折线:折线数据不完整导致的X轴日期错乱问题

目录 一、简单介绍 1.1 常见类型 二、时间轴错乱问题 2.1 示例 2.2 示例完整代码 2.3 问题分析 2.4 修复方法 第一步 第二步 2.5 优化后完整代码 一、简单介绍 ECharts 是一款基于 JavaScript 的数据可视化图表库&#xff0c;动态图表是 ECharts 的一个重要应用场景…

网络安全之注入攻击:原理、危害与防御之道

网络安全之注入攻击&#xff1a;原理、危害与防御之道 引言 在OWASP Top 10安全风险榜单中&#xff0c;注入攻击常年占据首位。2023年Verizon数据泄露调查报告显示&#xff0c;67%的Web应用漏洞与注入类攻击直接相关。本文从技术视角系统解析注入攻击的核心原理、典型场景及防御…

Python爬虫动态IP代理报错全解析:从问题定位到实战优化

目录 一、代理IP失效&#xff1a;爬虫的"隐形杀手" 1.1 失效场景复现 1.2 解决方案 二、403封禁&#xff1a;反爬机制的"精准打击" 2.1 封禁原理剖析 2.2 破解方案 三、速度瓶颈&#xff1a;代理性能的"致命短板" 3.1 性能对比测试 3.2…

机器学习基础知识【 激活函数、损失函数、优化器、 正则化、调度器、指标函数】

目录标题机器学习基础知识概览激活函数 (Activation Functions)损失函数 (Loss Functions / Cost Functions)优化器 (Optimizers)正则化 (Regularization)调度器 (Schedulers / Learning Rate Schedulers)指标函数 (Metric Functions)其他重要概念训练流程机器学习基础知识概览…

【达梦数据库|JPA】后端数据库国产化迁移记录

项目背景 经典的springbootjpa&#xff0c;java1.8数据库MySQL需要迁移到国产化数据库达梦上 开发环境安装 最简单的方式&#xff1a; 官方网站下载安装时选择“典型安装”即可 Linux安装 国产化一律上docer不要犹豫 下载三方提供的docker镜像按页面文档启动即可同上下载官…

ubuntu22默认安装firefox使用snap安装还老打不开解决办法

终极解决方案&#xff08;100% 避免 Snap 版 Firefox&#xff09; 步骤 1&#xff1a;彻底移除 Snap 版 Firefox bash sudo snap remove --purge firefox 步骤 2&#xff1a;添加 Mozilla 官方 PPA&#xff08;提供 .deb 版 Firefox&#xff09; bash sudo add-apt-repository …

MyBatis02-mybatis-config.xml配置文件讲解

mybatis-config.xml 是 MyBatis 的核心配置文件&#xff0c;用于配置整个 MyBatis 框架的全局行为&#xff0c;比如环境&#xff08;数据源&#xff09;、事务、类型别名、插件、Mapper 映射等。示例&#xff1a;<?xml version"1.0" encoding"UTF-8" ?…

合上电脑不关机

在Debian 系统上&#xff0c;如何实现合上电脑不关机的效果&#xff1f; 可以修改配置文件&#xff1a; sudo vim /etc/systemd/logind.conf1.找到 HandleLidSwitch &#xff0c;将其值改为 ignore &#xff08;处理盖子开关为忽略&#xff09; 2.将 LidSwitchIgnoreInhibited …

服务器深夜告警?可能是攻击前兆!

凌晨三点&#xff0c;刺耳的告警铃声把你从梦中惊醒&#xff1a;服务器CPU 100%&#xff0c;内存耗尽&#xff01;你手忙脚乱地登录服务器&#xff0c;发现某个进程疯狂占用资源。是程序Bug&#xff1f;还是业务突增&#xff1f;排查半天&#xff0c;最后在角落的日志里发现蛛丝…

重学前端003 --- CSS 颜色

文章目录文档声明head颜色模型div根据在这里 Freecodecamp 实践&#xff0c;记录笔记总结。 文档声明 在文档顶部添加 DOCTYPE html 声明 <!DOCTYPE html>head title 元素为搜索引擎提供了有关页面的额外信息。 它还通过以下两种方式显示 title 元素的内容&#xff1a…

学弟让我帮忙写一个学生管理系统的后端,我直接上科技

&#x1f4dd;个人主页&#xff1a;哈__ 期待您的关注 目录 一、飞算AI简介 二、系统开发 2.1 需求提出 2.2 系统模块的设计 2.3 数据库表格设计 2.4 接口规范设计 2.5 源码生成 三、总结 学弟这两天有一个小组合作的任务&#xff0c;应该是培训吧要写一个学生管理…