【GNN图神经网络学习】:GCN学习总结

一、推荐系统和推荐算法
二、GNN(Graph Neural Networks):图神经网络
(一) 传统神经网络存在的不足
  • 传统的神经网络和扩展模型在语音、图像、自然语言处理领域都取得了巨大的突破,但处理的数据均为序列或网格数据,均为结构化数据;
  • 面对非结构化的数据,比如:社交网络、交通网络、知识图谱等,如果用相同的解决策略,存在:
  1. 图的大小是任意的,图的拓扑结构复杂,不具备照片等图片的空间局部性
  2. 图没有固定的节点顺序,或者说没有一个参考节点
  3. 图经常是动态图,而且包含多模态的特征
  • 以常见的VGG16模型为例,该模型要求输入必须为(224 x 224 x 3);
(二) GNN解决的问题
  • CNN无法处理Non Euclidean Structure的数据,学术上的表达是传统的离散卷积,在Non Euclidean Structure的数据上无法保持平移不变性;
  • 可以理解为在拓扑图中每个顶点的相邻顶点数目都可能不同,那么当然无法用一个同样尺寸的卷积核来进行卷积运算;
  • GNN就是在这样的背景下产生的,图神经网络可以有效地提取图形的空间特征;
  • 由于CNN无法处理Non Euclidean Structure的数据,又希望在这样的数据结构(拓扑图)上有效地提取空间特征来进行机器学习,所以GCN成为了研究的重点。
  • 广义上来讲任何数据在赋范空间内都可以建立拓扑关联,谱聚类就是应用了这样的思想(谱聚类)。所以说拓扑连接是一种广义的数据结构,GCN有很大的应用空间
(三) 理解GNN
(i)理解何为“图”
  • 数学(图论)中的用顶点和边建立相应关系的拓扑图;
  • 可以将图神经网络中的“图”,以相同的形式理解为数据结构中的图,包含顶点和边的数据结构;
(ii)数学基础:拉普拉斯算子
  • 散度的概念:
    在这里插入图片描述
    在这里插入图片描述
  • 拉普拉斯【概念】:拉普拉斯算子或是拉普拉斯算符是由欧几里得空间中的一个函数的梯度的散度给出的微分算子;
  • 拉普拉斯【定义】:对函数f先做梯度运算,再做散度运算;
    在这里插入图片描述
(iii)数学基础:拉普拉斯矩阵
  • 简单图的拉普拉斯矩阵【定义一】:
    在这里插入图片描述
    其中D为简单图的度矩阵,A为简单图的邻接矩阵;
  • 简单图的拉普拉斯矩阵【定义二】:
    在这里插入图片描述
  • 简单图的拉普拉斯计算【举例】:
  1. 【标记图】G:
    在这里插入图片描述
    2.【 度矩阵】D
    在这里插入图片描述
    3.【邻接矩阵】A
    在这里插入图片描述
    4.【拉普拉斯矩阵】L
    在这里插入图片描述
  2. 拉普拉斯矩阵还常做归一化处理,具体包括:
  • 对称归一化:
    在这里插入图片描述
  • 随机游走归一化:
    在这里插入图片描述
(iv)数学基础:傅里叶变换
  • 比较于神经网络最基本的网络结构全连接层(MLP),特征矩阵乘以权重矩阵,图神经网络多了一个邻接矩阵。
  • 具体计算形式为三个矩阵相乘再加上一个非线性变换。

在这里插入图片描述

(四) GNN结构

对GNN结构出现的理解:真实世界中,许多重要的数据集都是以图或者网络的形式存在的,比如社交网络,知识图谱,蛋白质相互作用网,世界贸易网等等。GNN的出现就是将神经网络一般化并应用在任意图结构数据中的尝试

在这里插入图片描述

(i)GNN模型的目标是要学习图G=(V,E)上的信号或特征的一个映射
(ii)基本GNN模型的输入:
  • 每一个节点i的特征描述 Xi ,可以写成一个N*D的特征矩阵(N表示节点数,D表示输入的特征数)
  • 矩阵形式的图结构的特征描述,通常是以邻接矩阵的形式(或者其他的形式)
(iii)基本GNN模型的输出:
  • 模型会产生一个节点级别的输出Z(一个N*F的特征矩阵,其中F表示每一个节点的输出特征数);
(iv)基本GNN模型的hidden层:
  • 每一层神经网络都可以视为一个映射函数H(l)
  • L为层数
  • A为图的邻接矩阵
    在这里插入图片描述
  • 模型会产生一个节点级别的输出Z(一个N*F的特征矩阵,其中F表示每一个节点的输出特征数);
(v)GNN研究的重点:设计映射函数f()

在这里插入图片描述

  • 谱卷积方式

《Semi-Supervised Classification with Graph Convolutional Networks》

  • 空间域卷积方式

《Learning Convolutional Neural Networks for Graphs 》

三、经典模型GCN

《Semi-Supervised Classification with Graph Convolutional Networks》

(一) 基本信息
(i) 传统的GNN的模型计算

对于一个大图(例如“文献引用网络”),我们有时需要对其上的节点进行分类。然而,在该图上,仅有少量的节点是有标注的。此时,我们需要依靠这些已标注的节点来对那些没有标注过的节点进行分类,此即半监督节点分类问题。在这类问题中,由于大部分节点都没有已标注的标签,因此往往需要使用某种形式的图正则项对标签信息进行平滑(例如在损失函数中引入图拉普拉斯正则(graph Laplacian regularization)):
-。在这里插入图片描述
在这里插入图片描述

(ii)模型结构(两层的GCN为例)

在这里插入图片描述

(iii)具体流程
  1. 首先获取节点的特征表示X ,并计算邻接矩阵
    在这里插入图片描述
  2. 将其输入到一个两层的GCN网络中,得到每个标签的预测结果:
    在这里插入图片描述
    其中,
  • W0为第1层隐藏层的权值矩阵,用于映射隐藏层;
  • W1为第2层输出层的犬只矩阵,用于映射输出层;
  • 通过softmax函数输出每一个标签的预测结果;
(二)数学推导
【归一化拉普拉斯矩阵】

在这里插入图片描述

  • 矩阵的特征向量为U
    在这里插入图片描述
【Motivation 谱图卷积】一阶局部近似

在这里插入图片描述

  • 滤波器
    在这里插入图片描述
  • 谱卷积表示
    在这里插入图片描述
  • 计算量较大 -> 使用近似计算
  1. 进行矩阵乘法运算的计算复杂度为 O(n的平方);
  2. 计算大图的拉普拉斯矩阵 [公式] 的特征分解需要很大的计算量。
  3. 使用切比雪夫多项式(Chebyshev polynomial) k阶截断 Tk 来获得近似输出:
    在这里插入图片描述
  • 使用近似表达式进行替换
    在这里插入图片描述
  • 再次进行替换
    在这里插入图片描述
  • 最终获得
    在这里插入图片描述
  • 通过观察表达式可以发现
    谱图卷积不再依赖于整个图,而只是依赖于距离中心节点K步之内的节点(K阶邻居)
【Layer-wise线性模型】

进一步简化运算

  • 令K = 1,则表达式进一步展开为:
    在这里插入图片描述
  • 进行约束后,展开为:
    在这里插入图片描述
  • 为解决梯度消失/梯度爆炸问题:renormalization trick
    在这里插入图片描述
    其中,
    在这里插入图片描述
  • 把节点向量代入,再次进行变换,得到:
    在这里插入图片描述
  • 理解
  1. 每个节点的节点表示被更新成了一个新的N 维向量;
  2. 该 N维向量包含了节点的相应的一阶邻居上的信息;
【图卷积神经网络】

在这里插入图片描述

  • 解析
  • 第l层的输入为H(l),初始输入H(0)为X;
  • N为节点数量,每个节点通过D维的特征向量表示;
  • W(l)是被训练的权重参数
  • 最后为激活函数
(四) 总结
  • 提出了一种图卷积神经网络,该网络可以被有效地用于处理图结构的数据;
  • 局部特性:图卷积神经网络关注的是图中以某节点为中心,K阶邻居之内的信息,这一点与GNN有本质的区别;
  • 一阶特性:经过多种近似之后,GCN变成了一个一阶模型。也就是说,单层的GCN可以被用于处理图中一阶邻居上的信息;若要处理K阶邻居,可以采用多层GCN来实现;
  • 参数共享:对于每个节点,其上的滤波器参数W是共享的,这和CNN卷积神经网络类似。
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值