【Pytorch神经网络理论篇】 25 基于谱域图神经网络GNN:基础知识+GNN功能+矩阵基础+图卷积神经网络+拉普拉斯矩阵

简介: 图神经网络(Graph Neural Network,GNN)是一类能够从图结构数据中学习特征规律的神经网络,是解决图结构数据(非欧氏空间数据)机器学习问题的最重要的技术之一。

同学你好!本文章于2021年末编写,获得广泛的好评!


故在2022年末对本系列进行填充与更新,欢迎大家订阅最新的专栏,获取基于Pytorch1.10版本的理论代码(2023版)实现,


Pytorch深度学习·理论篇(2023版)目录地址为:


CSDN独家 | 全网首发 | Pytorch深度学习·理论篇(2023版)目录


本专栏将通过系统的深度学习实例,从可解释性的角度对深度学习的原理进行讲解与分析,通过将深度学习知识与Pytorch的高效结合,帮助各位新入门的读者理解深度学习各个模板之间的关系,这些均是在Pytorch上实现的,可以有效的结合当前各位研究生的研究方向,设计人工智能的各个领域,是经过一年时间打磨的精品专栏!

https://v9999.blog.csdn.net/article/details/127587345


欢迎大家订阅(2023版)理论篇

以下为2021版原文~~~~

815902569f6a467a99304f9ac1482386.png


图神经网络(Graph Neural Network,GNN)是一类能够从图结构数据中学习特征规律的神经网络,是解决图结构数据(非欧氏空间数据)机器学习问题的最重要的技术。


1 图神经网络的基础知识


   图神经网络(Graph Neural Network,GNN)是一类能够从图结构数据中学习特征规律的神经网络,是解决图结构数据(非欧氏空间数据)机器学习问题的最重要的技术之一。


   前面章节中主要介绍了神经网络的相关知识。接下来,让我们了解一下图神经网络相关的基础知识。


1.1 欧氏空间与非欧氏空间


  • 欧氏空间/欧几里得空间:能用一维、二维或更高维的矩阵表示,其最显著的特征就是有规则的空间结构。这是一个特别的度量空间。例如,音频、图像和视频等都是定义在欧氏空间下的欧几里得结构化数据。


  • 非欧氏空间:并不是平坦的规则空间,是曲面空间,即规则矩阵空间以外的结构。非欧氏空间下最有代表的结构就是图(graph)结构,它常用来表示社交网络等关系数据。


1.2 图


在计算机科学中,图是由顶点(也称节点)和顶点之间的边组成的一种数据结构。它通常表示为G(V,E)的形式,其中G表示一个图,V是图G中顶点的集合,E是图G中边的集合。


9befe500f5194818aa0a708f3b60ba29.png


图结构研究的是数据元素之间的多对多关系,即任意两个元素之间都可能存在关系,即顶点之间的关系可以是任意的,图中任意元素之间都可能相关。


在图结构中,不允许没有顶点。任意两个顶点之间都有可能有关系,顶点之间的逻辑关系用边来表示。边可以是有向的或无向的,边集合可以是空的。


图结构中的每个顶点都有自己的特征信息,顶点间的关系可以反映出图结构的特征信息。在实际的应用中,可以根据图顶点特征或图结构特征进行分类。


1.3 图相关的术语


  • 无向图和有向图:根据图顶点之间的边是否带有方向来确定。


  • 权:图中的边或弧上附加的数量信息,这种可反映边或弧的某种特征的数据称为权。


  • 网:图上的边或弧带权则称为网,可分为有向网和无向网。


  • 度:在无向图中,与顶点v关联的边的条数称为顶点v的度。在有向图中,则以顶点v为弧尾的弧的数量称为顶点v的出度,以顶点v为弧头的弧的数量称为顶点v的入度,而顶点ν的度即其出度与入度之和。


1.4 图计算中的度量单位


1.顶点数(node);节点的数量。


2.边数(edge):边或连接的数量。


3.平均度(average degree):表示每个顶点连接边的平均数,如果图是无向图,那么平均度的计算为2×edge÷nodes


4.平均路径长度(average netwok distarce):任意两个顶点之间距离的平均值。它反映网络中各个顶点间的分离程度。值越小代表网络中顶点的连接度越大。


5.模块化指数(modulanty index):衡量网络图结构的模块化程度。一般地,该值大于0.44就说明网络图达到了一定的模块化程度。


6.聚类系数(clustering coefficient):和平均路径长度一起能够展示网络节点的平均路径小的情况,从而给出一些节点聚类或“抱团”的总体迹象。


7.网络直径(diameter):网络图直径的最大测量长度,即任意两点间的最短距离构成的集合之中的最大值。


1.5 结构化数据与非结构化数据


1.5.1 结构化数据


由二维表结构来进行逻辑表达和实现的数据,严格地遵循数据格式与长度规范,主要通过关系型数据库进行存储和管理。


1.5.2 非结构化数据


数据结构不规则或不完整、没有预定义的数据模型,不方便用数据库二维逻辑表来表现的数据。它包括所有格式的办公文档、文本、图片HTML、各类报表、图像、音频或视频信息等。


1.6 GNN在不同类型数据上的应用


图神经网络(GNN)是一种直接在图结构上运行的神经网络,可以对图结构数据进行基于节点特征或结构特征的处理,通过顶点间的信息传递、变换和聚合来(层级化)提取或处理特征。GNN成为在图、点云和流形上进行表征学习的主流方法。


在结构化场景中,GNN被广泛应用在社交网络、推荐系统、物理系统、化学分子预测,指知识图谱。


在非结构化领域,GNN可以用在图像和文本等领域。


在其他领域,还有图生成模型和使用GNN来解决组合优化问题的场景。


1.7 GNN的起源


1.7.1 GCN


GNN的第一个动机源于卷积神经网络(CNN),最基础的CNN便是图卷积网络(GraphConvolutional Network,GCN)。GNN的广泛应用带来了机器学习领域的突破并开启了深在规则的欧氏空间数据上运行,GCD是将卷积神经网络应用在各模型。


1.7.2 图嵌入


GNN的另一个动机来自图嵌入,它学习图中节点、边或子图的低维向量空间表示。DeepWalk、LINE、SDNE等方法在网络表示学习领域取得了很大的成功,然而这些方法在计算上较为复杂并且在大规模的图上并不是最优的。GNN却可以解决这些问题。


1.7.3 总结


GNN不但可以对单个顶点和整个结构进行特征处理,而且可以对图中电一小部分顶点所组成的子图)进行特征处理。如果把图数据当作一个网络,那么GNN可以分别对网络的整体、部分和个体进行特征处理。GNN将深度学习技术应用到由符号表示的图数据上,充分融合了符号表示和低维向量表示,并发挥出两者的优势。


2 矩阵基础


2.1 哈达马积


两个矩对应位置上的元素进行相乘的结果


d7b8d8968db64c3b992dd60c6469f4fa.png


2.2 点积


两矩阵的行列乘法的结果


2.3 度矩阵与邻接矩阵


图的度矩阵:描述图中每个节点所连接的边数。


图的邻接矩阵:描述图中每个节点之间的相邻关系。


4c845db685d3486b925b55d6d789abf9.png


度矩阵D:


7dd215ae41e94d3bbc4ce542cb57ff20.png


邻接矩阵A:


64978adf607f4455afccc43c14f9d6ec.png


2.4 邻接矩阵的几种操作


邻接矩阵的行数和列数一定是相等的(即为方形矩阵)。无向图的邻接矩阵一定是对称的,而有向图的邻接矩阵不一定对称。 一般地,通过矩阵运算对图中的节点信息进行处理。


2.4.1 获取有向图的短边


80d8ee6ae15c40b680b35aaadc99a2d4.png

f1942867d5514ad1b21bd31fbe01b54f.png


2.4.2 获取有向图的长边


efcc8d1cdb1247b3b07892c0563fa73e.png

31cda55d957f43a1b901ff1a86043c62.png


2.4.3 将有向图的邻接矩阵转化成无向图的邻接矩阵


1d604f87602c410ba01268e187849f2e.png

2e2c2eb9a0724d5890a6f711cea0ad0b.png


3 图卷积神经网络


在下图中可以看到,图卷积神经网络的输入是一个图,经过一层层的计算变换后输出的还是一个图。


如果从卷积的角度来理解,那么可以将处理后的邻接矩阵当作一个卷积核,用这个卷积核在每一个隐藏层的特征结果上进行全尺度卷积。由于该卷积核的内容是图中归一化后的边关系,因此用这种卷积核进行卷积处理可使隐藏层的特征按照节点间的远近关系信息进行转化,对隐藏层的特征进行了去噪处理。去噪后的特征含有同类样本间的更多信息,从而使神经网络在没有大量样本的训练条件下,也可以训练出性能很好的模型。

图神经网络的实质是:对节点间的图结构关系进行计算,并将计算结果作用在每个节点的属性特征的拟合当中。


5f983eb06cb44584b4dcd27ed1e11604.png


3.1 图结构与拉普拉斯矩阵的关系


图卷积本质上不是传播标签,而是传播特征。图卷积将未知的标签特征传播到已知标签的特征节点上,利用已知标签节点的分类器对未知标签特征的属性进行推理。


图卷积模型利用节点间的关系信息实现了特征的传播。而节点间的关系信息又是通过加工后的邻接矩阵来表现的。这个加工后的邻接矩阵称为拉普拉斯矩阵/基尔霍夫矩阵。


3.2 图卷积操作的步骤


1、将图结构的特征用拉普拉斯矩阵表示。

2、将拉普拉斯矩阵作用在节点特征的计算模型中,完成节点特征的拟合。


拉普拉斯矩阵的主要用途是表述图结构的特征(对矩阵的特征进行分解),是图卷积操作的必要步骤。


3.3 拉普拉斯矩阵的三种形式


729de6ae7ec54459a8f6b666d2550afe.png

c4ec564e35ff45dbb210ba4e1d830e7b.png


7725400372b5460ca676dc790b4dd008.png


4 图神经网络的角度看待深度学习


1.深度学习的神经网络擅长处理欧氏空间中的数据。


2.图神经网络檀长处理非欧氏空间中的数据。


3.图神经网络的实际处理过程中,还是将非欧氏空间的结构转化成矩阵来实现,用矩阵作为桥梁,就可以找到神经网络与图神经网络之间的联系。


4.1 实例解释图神经网络与深度学习的关系(以神经网络中常见的图像处理任务为例)


图像通常被理解为矩阵,矩阵中的每个元素是像素,像素是由RGB通道的3个数值组成的向量。换个角度想想,矩阵也可以理解为图谱,图谱由点和边组成,相邻的点之间用边相连。


4.1.1 矩阵是特殊的图谱


(1)矩阵中的每个点有固定个数的邻点。从图谱的角度来看,图像中的像素就是图谱中的点。图像中的每个像素,也就是图谱中的每个点,周边总共有8个邻点。


(2)矩阵中每条边的权重是常数。从图谱的角度来看,图像中的每一个像素只与周边8个邻点之间有边,其中边的长短权重是常数。


4.1.2 图谱的限制


图像作为一种特殊的图谱,其特殊性体现在这两个限制上面。如果放松了这两个限制,问题就更复杂了。这是深度学习算法向图神经网络衍化的必经之路。


4 图神经网络使用拉普拉斯矩阵的原因


图卷积的计算过程是将拉普拉斯矩阵与图节点特征进行点积运算,实现图结构特征向单个节点特征的融合。主要从图节点之间的传播关系方面阐释这个问题。


4.1 节点与邻接矩阵的点积作用


4.1.1 点积计算


9f389935cf594aefa9ca8c939fa881f0.png


4.1.2 分析邻居节点的聚合特征


be79f7feeaab4b3f8aca74f4f30cde7c.png


4.1.3 结论


将节点特征与带自环的邻接矩阵执行点积运算,本质上就是将每个节点特征与自己的邻居节点特征相加,即对图中邻居节点特征进行加法聚合。


4.2 拉普拉斯矩阵的点积作用


拉普拉斯矩阵本质上是邻接矩阵的归一化。同理,拉普拉斯矩阵的点积作用本质上也是图中邻居节点特征的加法聚合,只不过在加法聚合过程中加入归一化计算。


4.3 图卷积的拟合性质


将图结构信息融入节点特征的操作,本质上就是按照图结构中节点间的关系,将周围邻居的节点特征加起来。这样,在相邻的节点特征中,彼此都会有其他节点的特征信息,实现了标签节点的特征传播。


4.4 点积计算的扩展


使用矩阵运算方法会有较大的局限性,因为在节点特征与拉普拉斯矩阵执行点积的计算过程中,只能对图中邻居节点特征进行加法聚合。


在图节点的邻居特征聚合过程中,还可以使用更多其他的数学方法(比如取平均值、最大值),并不局限于加法。

目录
相关文章
|
7天前
|
运维 物联网 网络虚拟化
网络功能虚拟化(NFV):定义、原理及应用前景
网络功能虚拟化(NFV):定义、原理及应用前景
22 3
|
4天前
|
网络协议 Unix Linux
精选2款C#/.NET开源且功能强大的网络通信框架
精选2款C#/.NET开源且功能强大的网络通信框架
|
4天前
|
网络协议 网络安全 Apache
一个整合性、功能丰富的.NET网络通信框架
一个整合性、功能丰富的.NET网络通信框架
|
1月前
|
机器学习/深度学习 算法
神经网络的结构与功能
神经网络是一种广泛应用于机器学习和深度学习的模型,旨在模拟人类大脑的信息处理方式。它们由多层不同类型的节点或“神经元”组成,每层都有特定的功能和责任。
31 0
|
2月前
|
5G 网络安全 SDN
网络功能虚拟化(NFV)和软件定义网络(SDN):赋能5G网络灵活、智能演进的关键
网络功能虚拟化(NFV)和软件定义网络(SDN):赋能5G网络灵活、智能演进的关键
73 3
|
2月前
|
机器学习/深度学习
小土堆-pytorch-神经网络-损失函数与反向传播_笔记
在使用损失函数时,关键在于匹配输入和输出形状。例如,在L1Loss中,输入形状中的N代表批量大小。以下是具体示例:对于相同形状的输入和目标张量,L1Loss默认计算差值并求平均;此外,均方误差(MSE)也是常用损失函数。实战中,损失函数用于计算模型输出与真实标签间的差距,并通过反向传播更新模型参数。
|
1月前
|
JSON API 开发者
深入解析Python网络编程与Web开发:urllib、requests和http模块的功能、用法及在构建现代网络应用中的关键作用
深入解析Python网络编程与Web开发:urllib、requests和http模块的功能、用法及在构建现代网络应用中的关键作用
16 0
|
1月前
|
算法 PyTorch 算法框架/工具
Pytorch学习笔记(九):Pytorch模型的FLOPs、模型参数量等信息输出(torchstat、thop、ptflops、torchsummary)
本文介绍了如何使用torchstat、thop、ptflops和torchsummary等工具来计算Pytorch模型的FLOPs、模型参数量等信息。
173 2
|
1月前
|
机器学习/深度学习 自然语言处理 监控
利用 PyTorch Lightning 搭建一个文本分类模型
利用 PyTorch Lightning 搭建一个文本分类模型
57 8
利用 PyTorch Lightning 搭建一个文本分类模型
|
1月前
|
机器学习/深度学习 自然语言处理 数据建模
三种Transformer模型中的注意力机制介绍及Pytorch实现:从自注意力到因果自注意力
本文深入探讨了Transformer模型中的三种关键注意力机制:自注意力、交叉注意力和因果自注意力,这些机制是GPT-4、Llama等大型语言模型的核心。文章不仅讲解了理论概念,还通过Python和PyTorch从零开始实现这些机制,帮助读者深入理解其内部工作原理。自注意力机制通过整合上下文信息增强了输入嵌入,多头注意力则通过多个并行的注意力头捕捉不同类型的依赖关系。交叉注意力则允许模型在两个不同输入序列间传递信息,适用于机器翻译和图像描述等任务。因果自注意力确保模型在生成文本时仅考虑先前的上下文,适用于解码器风格的模型。通过本文的详细解析和代码实现,读者可以全面掌握这些机制的应用潜力。
58 3
三种Transformer模型中的注意力机制介绍及Pytorch实现:从自注意力到因果自注意力