百面深度学习-图神经网络

news2024/10/6 6:51:01

百面深度学习-图神经网络部分

什么是图神经网络?

图神经网络(Graph Neural Networks,GNNs)是深度学习模型的一个类别,专门设计来处理图结构数据。在图结构数据中,实体以节点(vertex)的形式表示,实体之间的关系以边(edge)的形式表示。图神经网络通过使用节点的特征信息以及图中的连接模式来学习节点的表示(或嵌入),从而能够进行节点分类、链接预测、图分类等任务。
图神经网络的关键思想是通过一个迭代的过程将每个节点的信息传播到其邻居节点,这一过程称为消息传递(message passing)。在每次迭代中,一个节点将根据自己的特征信息以及其邻居节点的信息来更新自己的状态。这个更新过程一般涉及聚合(aggregating)邻居节点的信息和将聚合后的信息与当前节点的信息合并(combining)。
图神经网络的一般公式可以表示为:

在这里插入图片描述在这里插入图片描述
不同的图神经网络模型会使用不同的聚合和合并策略,一些流行的GNN模型包括:
在这里插入图片描述

什么是图神经网络的图谱和图傅立叶变换?

举一个简单的例子来通俗的解释什么是特征值,特征向量,度矩阵,邻接矩阵,拉普拉斯矩阵。
  • 特征值和特征向量

想象一个公司,这个公司有很多员工,但其中有一些员工非常关键,他们对公司的影响力很大。在数学中,我们把这种对矩阵影响大的“值”称为特征值。与这些“关键员工”相对应的是特征向量,即这些员工对公司的具体影响方式和方向。所以,在矩阵中,特征向量告诉我们矩阵是如何作用于这个向量的,而特征值则告诉我们这个作用的“强度”或者“比例”。

  • 度矩阵(Degree Matrix)

如果将公司的每个员工看作网络中的一个节点,员工之间的交流可以看作是连接节点的边。度矩阵就是一个记录了每个员工(节点)有多少直接交流(边)的表格。在这个表格里,我们只关注每个员工直接联系的人数,不关心他们之间如何相互联系。

  • 邻接矩阵(Adjacency Matrix)

邻接矩阵记录的是员工之间的直接联系情况。如果员工A直接联系员工B,那么在A行B列的位置就是1,否则就是0。所以,邻接矩阵给出了公司内部所有直接一对一联系的一个全貌。

  • 拉普拉斯矩阵(Laplacian Matrix)

现在,如果你想知道一个员工的联系是否过于集中,即他是否只跟少数几个人有联系而忽视了其他人,你可以用度矩阵减去邻接矩阵来查看。这个结果就是拉普拉斯矩阵。它反映了员工的交流模式是否均衡,哪些员工是交流的枢纽,以及员工间的交流是否形成了小团体或是更广泛的网络。拉普拉斯矩阵在网络分析中用来发现结构特性,比如哪些是关键连接点或者网络是如何分段的。

通过这些定义,我们能够了解和分析网络中的模式和结构,无论是社交网络、交通网络,还是电子电路网络,这些数学工具都是非常有用的。

了解以上的一些基础概念的定义,下面解释什么是图谱和图傅立叶变换。
在这里插入图片描述
图神经网络中的时域,频域和傅立叶变换。在图神经网络(GNN)的背景下,时域、频域和傅立叶变换这些概念是从信号处理中借鉴过来的,用于帮助我们理解和分析图上的信息和模式。下面分别解释这三个概念在图神经网络中的应用:
时域
在图神经网络的语境中,“时域”并不直接关联真实的时间变量,而是指的是图中节点的特征和它们之间的边在原始形态下的表示。也就是说,在时域分析中,我们关注的是图中每个节点以及这些节点如何通过边相互连接的直接信息。在时域分析中,GNNs会直接在图的结构上操作,传播节点的特征信息,通过边将信息从一个节点传递到另一个节点。在这个过程中,GNN利用的是节点的局部邻域信息,而不涉及到图的全局频谱特性。**
频域
将图神经网络的分析从时域转移到频域,意味着我们不再直接处理节点的特征和它们的连接方式,而是转而分析图的结构特性的全局视角。频域分析通常涉及图的谱特性,也就是图的全局结构特征,这些特性是通过图的拉普拉斯矩阵和它的特征向量(傅立叶基)以及特征值(频率)来表示的。在频域中,节点特征不是直接在其邻域中传播,而是根据图的谱特性被转换和过滤。低频成分通常代表图中的平滑和慢变化的特征,而高频成分则表示图中的尖锐和快速变化的特征。
傅立叶变换
在图神经网络中,傅立叶变换用于将节点的特征从时域转换到频域。具体来说,图的傅立叶变换涉及到图的拉普拉斯矩阵的特征分解。通过计算拉普拉斯矩阵的特征向量和特征值(横坐标是特征值,纵坐标是特征向量),我们可以将节点的特征信号投影到一组正交的基上,这组基与图的谱特性相对应。变换后的信号(谱表示)可以被用来识别和操作图中的全局模式和结构,比如通过谱滤波器来平滑或增强特定频率的成分。
在实际的GNN模型中,谱方法一般通过构造基于图的拉普拉斯矩阵的卷积操作来实现,这样的操作允许在频域内过滤和处理节点的特征信号。谱图神经网络,如Chebyshev Spectral CNN(ChebyNet)或者图卷积网络(GCN),就是基于这种频域分析的代表模型。
图神经网络中的滤波器的作用
滤波器的目的是让某些信号成分通过,同时减弱或消除其他成分。在图上进行滤波通常涉及到图的拉普拉斯矩阵,因为它包含了图结构的重要信息。拉普拉斯矩阵的特征值和特征向量可以提供图的频谱表示,其中特征值可以被解释为图的频率,而特征向量对应于图的频率分量。
使用特征向量作为转换
这里指的是,我们可以通过计算图的拉普拉斯矩阵的特征分解,得到一组正交的特征向量。这组特征向量可以作为基础,用来定义信号在图频域的表示。就像在传统的傅立叶变换中,我们会将信号分解到不同的频率分量上,图上的特征向量允许我们将图信号分解到不同的图频率分量上。
实现图上的滤波器
则是指我们可以设计一个滤波函数,这个函数在图的频谱上操作。这个函数可以增强(或者通过)特定的频率分量(即特征值对应的分量),同时抑制其他的。在图的频域中应用这个滤波函数,然后再将结果转换回节点域,这就相当于在图上应用了一个滤波器。

滤波器操作和卷积操作的区别是什么?
在这里插入图片描述在这里插入图片描述

以GCN为例,介绍基于频谱域的图神经网络的发展。

基于频谱域的图神经网络(Spectral Graph Neural Networks)的发展可以从图卷积的定义开始说起。图卷积是图神经网络中的核心概念之一,它将传统的卷积神经网络中的卷积操作概括到了图数据上。

  • 图傅立叶变换:

    • 图的傅立叶变换是基于图的拉普拉斯矩阵的特征分解来定义的。通过这个特征分解,可以将图上的信号从节点域转换到谱域(频域)。这个转换使得在图上定义滤波器和卷积操作成为可能。
  • 谱图卷积

    • 早期的图卷积网络是直接基于图的频谱定义的。它们利用了图傅立叶变换将信号转换到频域,在频域中应用滤波器,然后使用逆图傅立叶变换将信号转换回节点域。谱图卷积的定义基于拉普拉斯矩阵的特征分解,这种方法的一个主要问题是计算成本高,特别是对于大图。
  • 简化的谱图卷积:

    • 为了克服原始谱方法的计算复杂性,研究者提出了简化模型。其中最有影响力的是由Kipf和Welling提出的图卷积网络(GCN)。GCN使用了一个近似的层次化卷积滤波器,这个滤波器只依赖于图的邻接矩阵和度矩阵,并且避免了昂贵的特征分解。GCN的关键思想是利用拉普拉斯矩阵的一阶近似来定义卷积,它实际上等价于在每个节点上聚合其邻居的特征。
  • 发展

    • 随着时间的推移,基于频谱的图神经网络的研究也在持续进化。例如,ChebNet使用切比雪夫多项式来近似图滤波器,进一步减少了计算需求,并提高了灵活性。
      此外,也有研究在探索更深的理解图结构和特征之间的关系,例如通过考虑更高阶的邻居,或者更复杂的谱滤波器设计。
  • 挑战:尽管基于频谱的图神经网络在理论上具有坚实的基础,但它们在实践中面临着诸如解释性差、对图的结构变化敏感以及计算复杂性等挑战。

以GAT、GraphSAGE为例,简述基于空间域的图神经网络的主要思想。

图注意力网络
GAT(Graph Attention Networks)利用了注意力机制来加权聚合邻居节点的特征。每个节点会根据与其它节点的关系(即边)和节点特征来动态地学习邻居节点的重要性。具体来说,GAT在每个节点对其邻居节点进行注意力系数的计算,这个注意力系数会告诉模型在聚合时应该给邻居节点的信息赋予多少权重。这个机制允许模型对重要的邻居节点赋予更多的重视,而对不那么重要的邻居节点则赋予较少的关注。注意力系数是通过学习得到的,这使得GAT具有很好的灵活性和适应性。
GraphSAGE
GraphSAGE(Graph Sample and AggreGatE)的主要思想是通过采样和聚合邻居的特征来生成节点嵌入。GraphSAGE不需要整个图的信息,而是通过随机采样一定数量的邻居节点,然后利用聚合函数来合并自身的特征与采样的邻居特征,以此来更新节点的表示。GraphSAGE可以使用不同的聚合函数,如求和(sum)、平均(mean)、池化(pooling)等,以适应不同的场景。通过这种方式,GraphSAGE能够在不同的图和不同的节点上学习到有效的节点嵌入。
这两种方法的共同优点是它们都能有效处理大型图,并且能够捕获节点的局部邻域结构。同时,由于它们不依赖于图的全局结构信息,这两种方法都可以在归纳学习设置下应用,即在看不见的节点上进行预测。而它们的差异主要在于聚合邻居信息的方式不同:GAT依赖于注意力机制来赋予权重,而GraphSAGE则依赖于固定的聚合函数和邻居采样策略。

简述PinSage的模型设计和实现细节。

PinSage是Pinterest开发的一个基于图卷积网络(GCN)的推荐系统。它结合了内容信息和图结构信息,通过高效的随机游走和图卷积,生成了用户和物品(在Pinterest的场景下是“Pin”即图钉)的嵌入表示。以下是PinSage的模型设计和实现细节的简述:
随机游走
PinSage开始于对物品图的随机游走,用于捕获物品间的结构关系。通过长期的随机游走,PinSage能够捕捉到高度相关的物品,并基于这些游走序列为后续的图卷积收集局部邻域信息。
采样邻居
在实际应用中,图中节点的度分布可能非常不平衡,有些节点可能连接着成千上万的其他节点。直接对所有邻居进行聚合运算在计算上是不切实际的,所以PinSage采用了一种基于重要性采样的策略,只选择一部分具有代表性的邻居进行聚合。这种采样可以减少计算量,同时保持邻居信息的丰富性。
图卷积
利用采样的邻居,PinSage通过图卷积层来聚合邻居的特征信息。在每个卷积层中,它将目标节点的特征与邻居节点的特征结合起来,生成新的节点表示。这个过程通常涉及到特征的加权求和(其中权重可能是基于注意力机制计算的)和非线性激活函数。
Q-Learning优化
PinSage使用了Q-learning的变种来进行模型的训练,其目标是优化推荐系统中用户与物品交互的概率。这个过程使得模型学习到用户和物品间交互的动态性和复杂性。
Mini-Batch训练
为了在大规模图数据上有效地训练,PinSage采用了mini-batch训练方法。通过小批量的方式处理节点,可以使得模型训练在有限的计算资源下成为可能,并可以通过并行处理提高效率。

应用:
PinSage的输出嵌入被用于计算用户与物品间的相似度,生成个性化推荐。这些嵌入能够捕捉到用户的偏好和物品的属性,并可以被用于多种下游任务,如相似物品推荐、个性化排序等。总的来说,PinSage的设计针对的是大规模、稀疏的图,它通过有效的邻居采样和图卷积网络,结合强化学习优化策略,生成能够驱动推荐系统的高质量嵌入向量。

基于图神经网络的推理框架有何优势。

复杂关系建模能力: GNN能够有效捕捉实体间复杂的关系和相互作用。在社交网络、生物信息学、知识图谱等领域,这些复杂关系的建模对于准确的数据分析至关重要。
信息聚合机制: GNN通过聚合邻居节点的信息来更新节点状态,这使得每个节点能够收集到其在图中的局部邻域信息,从而提高了推理的准确性。
归纳学习能力: GNN可以从看到的样本中学习到通用的模式,然后将其应用于未见过的数据。这种归纳能力在新节点或动态图中特别有用,因为它允许GNN泛化到新的、未知的情况。
可解释性: 与其他深度学习模型相比,GNN在模型决策方面提供了更好的可解释性。因为它们直接在图结构上运行,易于追踪和解释节点之间的关系和传播路径。
数据融合: GNN框架可以整合多种类型的数据,如节点特征、边特征和全局图结构信息,这为深度融合异构数据提供了可能。
灵活性和适应性: GNN架构可以适应各种大小和类型的图,从小型分子结构到大型社交网络,都可以使用GNN进行分析和推理。
任务适应性: GNN可以被用于各种任务,包括节点分类、链接预测、图分类等,这一多任务适应性使得GNN在不同的应用场景下都能够表现出色。
高效性: 在某些情况下,GNN比传统的深度学习方法更加高效,因为它们通过利用图的稀疏性来减少计算量。

图神经网络的推理机制在其他领域中的应用

Transformer模型就像是一个学习复杂对话的超级机器,它能够同时听取多个人的讨论,并理解每个人的观点是如何与话题相关联的。如果将一段文本比作一场多人参与的讨论,Transformer模型能够一次性把所有人的言论都听进去,然后立刻告诉你每个人的言论之间有什么关联。
这个模型由两大部分组成,类似于一个提问者(编码器)和一个回答者(解码器):

  • 编码器负责“听”每个人的发言。它不是一个接一个地听,而是所有人的发言它都能一次性听到,并且理解每个人说话的内容和重点。这是通过一种叫做“自注意力”的技术做到的,这种技术能够让模型评估每个单词对整个文本段落的重要性,并且给予相应的重视度。
  • 解码器则负责根据提问者提供的信息来生成回答。它在“说”每个单词时,都会考虑到它之前已经“说”过的内容,确保回答是通顺的。同时,它还会参考编码器给出的信息,确保回答内容的准确性。

Transformer之所以取得好效果,主要有下面几个原因:

  • 并行处理:它能够一次性处理整段文本,而不像传统模型那样一步步来,这大大加快了学习速度。
  • 关注重点:通过自注意力机制,它可以识别文本中最有价值的部分,这就像在复杂的对话中能够聚焦于最重要的意见一样。
  • 记忆长距离关系:在长篇文章中,一个想法可能会在文中多次出现,Transformer能够记住这些并理解它们之间的联系。
  • 灵活性:它可以被用于各种不同的任务,如翻译、生成文本等,而且能够很好地适应。

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

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

相关文章

复现YOLO v1 PyTorch

复现YOLO v1 PyTorch Paper: [1506.02640] You Only Look Once: Unified, Real-Time Object Detection (arxiv.org) Github: EclipseR33/yolo_v1_pytorch (github.com) 数据集 VOC2007:The PASCAL Visual Object Classes Challenge 2007 (VOC2007) VOC2012&…

Python in Visual Studio Code 2023年11月发布

排版:Alan Wang 我们很高兴地宣布 Visual Studio Code 的 Python 和 Jupyter 扩展将于 2023 年 11 月发布! 此版本包括以下公告: 改进了使用 Shift Enter 在终端中运行当前行弃用内置 linting 和格式设置功能对 Python linting 扩展的改进重…

单片机的冷启动、热启动、复位

一文看懂STC单片机冷启动和复位有什么区别-电子发烧友网 单片机的冷启动、热启动和复位是不同的启动或重置方式,它们在系统状态和初始化方面有所不同: 1.冷启动(Cold Start): 定义: 冷启动是指系统从完全关…

2023.11.14 关于 Spring Boot 创建和使用

目录 Spring Boot Spring Boot 项目的创建 网页版创建 Spring Boot 项目 Spring Boot 目录说明 项目运行 Spring Boot Spring Boot 是基于 Spring 设计的一个全新的框架,其目的是用来简化 Spring 的应用、初始搭建、开发的整个过程Spring Boot 就是一个整合了…

Redis配置、Redis类型

系列文章目录 第一章 Java线程池技术应用 第二章 CountDownLatch和Semaphone的应用 第三章 Spring Cloud 简介 第四章 Spring Cloud Netflix 之 Eureka 第五章 Spring Cloud Netflix 之 Ribbon 第六章 Spring Cloud 之 OpenFeign 第七章 Spring Cloud 之 GateWay 第八章 Sprin…

Opengauss到Oracle增量同步, 使用debezium

一、概述 PG到Oracle的同步方案使用debezium kafka kafka-connect-jdbc。debezium是一款开源的变更捕获软件,它以kafka的connector形式运行,可以捕获PostgreSQL、MySQL、Oracle中的变更数据,保存到kafka。kafka-connect-jdbc是confluent公…

stable diffusion到底是如何工作的

stable diffusion简单入门 stable diffusion是一个文生图模型,主要由CompVis、Stability AI和LAION的研究者们创建。这个模型主要是在512X512分辨率的图像上训练的,训练数据集是LAION-5B,该数据集是目前可访问的最大的多模态数据集。 在这篇…

springboot服务和python服务如何自定义启动banner

shigen日更文章的博客写手,擅长Java、python、vue、shell等编程语言和各种应用程序、脚本的开发。记录成长,分享认知,留住感动。 shigen最近在修改ruoyi的框架,看到了框架自带的banner图,就是一个不爽,于是…

基于JavaWeb+SSM+微信小程序基金优选系统的设计和实现

基于JavaWebSSM微信小程序基金优选系统的设计和实现 源码获取入口前言主要技术系统设计功能截图Lun文目录订阅经典源码专栏Java项目精品实战案例《500套》 源码获取 源码获取入口 前言 基金优选是金融机构的核心,是必不可少的一个部分。在金融机构的整个服务行业中…

怎么恢复删除的数据? 8个有效的数据恢复方法

无论您在保存备份方面多么小心,灾难有时还是会发生。有时您的备份软件无法按预期运行。 如果您的外部驱动器靠近您的设备,发生火灾/洪水/故障时,有时备份会与原始文件一起丢失。即使是云存储也不能避免故障。 还有一个事实是,我…

微信@all bug复现及原理分析

1、复现 条件: 1、Windows PC 端微信 2、自建一个群聊拥有群管权限可以所有人 废话不多说,直接上图 所有人 剪切后,到另一个群中,引用任意一个群里成员的消息,并将刚才剪切的粘贴至此,发送 便可完成非群…

Ubuntu搭建openvpn服务器

文章目录 一、基于ubuntu搭建openvpn服务器二、制作相关证书2.1 制作ca证书 ./build-ca2.2 制作Server端证书2.3 制作Client端证书 三、配置服务器3.1 配置Server端3.2. 配置Client端 四、安装openvpn客户端:http://build.openvpn.net/downloads/releases/ 一、基于…

电脑技巧:U盘装系统跟光盘装系统有什么区别,看完你就懂了!

目录 一、制作方法 二、优点比较 2.1 U盘 2.2 光盘 三、缺点比较 一、制作方法 U盘:是通过制作U盘系统盘,插在电脑上启动U盘,然后从U盘上启动PE系统,在PE系统里加载预先下载好的镜像,然后开始安装系统。 光盘&am…

算法实战:亲自写红黑树之二 完整代码

此文承接:算法实战:亲自写红黑树之一-CSDN博客 目录 一、项目结构 二、辅助代码a.h 三、红黑树代码rbtree.h 四、测试代码main.cpp 五、运行效果 六、代码详解 一、项目结构 这里给出的代码是实际可以运行的代码。 运行环境:VS2022&am…

Python 如何实现适配器设计模式?什么是适配器(Adapter)设计模式?

什么是适配器设计模式? 适配器(Adapter)设计模式是一种结构型设计模式,它允许接口不兼容的类之间进行合作。适配器模式充当两个不兼容接口之间的桥梁,使得它们可以一起工作,而无需修改它们的源代码。 主要…

Hive入门--学习笔记

1,Apache Hive概述 定义: Hive是由Facebook开源用于解决海量结构化日志的数据统计,它是基于大数据生态圈Hadoop的一个数据仓库工具。 作用: Hive可以用于将结构化的数据文件【映射】为一张表,并提供类SQL查询功能。 H…

什么是原生IP与广播IP?如何区分?为什么需要用原生IP?

在代理IP中,我们常常听到原生IP与广播IP,二者有何区别?如何区分呢?下面为大家详细讲解。 一、什么是原生IP 原生IP地址是互联网服务提供商(ISP)直接分配给用户的真实IP地址,无需代理或转发。此…

OpenGL_Learn12(光照)

续OpenGL_Learn11(光照)-CSDN博客 1. 镜面高光 和漫反射光照一样,镜面光照也决定于光的方向向量和物体的法向量,但是它也决定于观察方向,例如玩家是从什么方向看向这个片段的。镜面光照决定于表面的反射特性。 我们通…

Redis:详解5大数据类型及其常用命令

目录 Redis键(key)字符串(String)简介常用命令数据结构简介常用命令 列表(List)简介常用命令数据结构 集合(Set)简介常用命令数据结构 哈希(Hash)简介常用命令…

Java排序算法之希尔排序

希尔排序(Shell Sort)又称“缩小增量排序”,是直接插入排序算法的一种更高效的改进版本。它的基本思想是:首先将整个数组按照一定的间隔分成若干个子序列,然后对每个子序列分别进行插入排序,减小间隔&#…