首页 > 其他分享 >图卷积网络GCN(3)

图卷积网络GCN(3)

时间:2023-02-21 16:46:42浏览次数:45  
标签:结点 函数 卷积 网络 信息 GCN 邻居 向量

 

图卷积网络(GCN)

论文地址:Semi-supervised Classification with Graph Convolutional Networks
GCN是一种能够直接作用于图并且利用其结构信息的卷积神经网络
这篇文章解决的是在一个图中,只有少部分结点的标签是已知情况下(Semi-supervised learning)的结点分类问题。
在这里插入图片描述

 

 

主要思想

正如GCN名字中的卷积所揭示的,该思想是由图像领域迁移到图领域的。然而图像通常具有固定的结构,而图的结构却更加灵活、复杂。
在这里插入图片描述
GCN的主要思想:对于每个结点,我们都要考虑其所有邻居以及其自身所包含的特征信息。假设我们使用 average() 函数,那对每一个结点进行上述操作后,就可以得到能够输入到神经网络的平均值表示。
在这里插入图片描述
在上图中,我们以一个简单的“文章相互引用网络”为例。每一个结点代表一篇文章,而边代表代表引用情况。在这里首先有一个预处理的步骤,也就是将论文的原始文本通过NLP嵌入的方法先转化为向量???。
接下来让我们考虑绿色结点。首先,得到包括其自身的所有节点的特征值(共5个节点),然后取平均(5个节点均值),然后该平均值向量可以输入到一个神经网络中(上图右侧),再得到一个向量。


上面的例子使用的是平均值函数,然而在实际应用当中我们可以采用更为复杂的聚合函数,GCN神经网络的结构也可以比上面图中的网络结构更复杂。如下图就是一个两层全连接GCN的例子,每一层的输出都作为下一层的输入。
在这里插入图片描述

直观理解与数学原理

接下来进一步介绍GCN背后的数学原理。
首先我们需要确定一些符号:

让我们考虑如下的一个图:
在这里插入图片描述
我们要如何才能够得到一个结点的邻居的特征向量的信息呢?一个可能的解决方法就是将 A(邻接矩阵) 与 X(节点的特征向量)  进行相乘。
在这里插入图片描述
首先让我们看邻接矩阵的第一行,可以看到结点A连接着结点E。而结果矩阵中的第一行其实就是结点E的特征向量。类似地,结果矩阵中的第二行就是界定D与结点E的加和。通过这样一种处理,我们可以得到结点所有邻居的特征加和向量。
但是这样的处理存在着一些问题:

  • 我们遗漏了所分析的结点本身的信息,比如,结果矩阵的第一行中应该包含结点A的信息才对。
  • 我们应该使用平均值函数甚至是更好的加权平均值函数而非直接加和来处理邻居的特征向量。那为什么不能直接使用加和函数呢?原因就在于,当使用加和函数的时候,具有较大度值的结点会有很大的表示向量,而较低度的结点会有较小的聚合向量,这可能会导致梯度爆炸梯度消失的问题(比如使用sigmoid函数时)。此外,神经网络对于输入数据的标度是非常敏感的,我们需要将这些向量进行标准化以消除潜在的问题。



在这里插入图片描述

 

 

 


在这里插入图片描述

 

 

 


在这里插入图片描述
使用均值看起来已经可以取得不错的效果,那么使用加权平均又如何呢?直觉上的感觉对具有高度和低度的结点采取不同的权重会有更好的效果。

 

 

 


在这里插入图片描述
在这里插入图片描述

 

 

 


这种标准化的策略所提供的是一种加权平均,所实现的效果是会给予那些具有低度的结点更大的权重从而降低高度结点的影响。这种加权平均的想法在于那些具有较低度的结点会对其邻居有较大的影响,而高度的结点会产生更小的影响因为他们的影响会被分散给很多的邻居结点。
在这里插入图片描述
如上图所示,要得到结点B的聚合特征时,会分配较大的权重给B(其自身,度为3),而给E(度为5)更小的权重。

 

 

 


在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
比如我们要做一个十分类的任务, F 就会被设置为10。在第二层的神经网络输出十维的向量后,就可以通过softmax函数进行预测,损失函数使用通常的交叉熵函数即可。

GCN网络层数

网络层数的含义

网络的层数代表着结点特征所能到达的最远距离。比如一层的GCN,每个结点只能得到其一阶邻居身上的信息。对于所有结点来说,信息获取的过程是独立同时开展的。当我们在一层GCN上再堆一层时,就可以重复收集邻居信息的过程,并且收集到的邻居信息中已经包含了这些邻居结点在上一个阶段所收集的他们的邻居结点的信息。这就使得GCN的网络层数也就是每个结点的信息所能达到的maximum number of hops。因此,我们所设定的层的数目取决于我们想要使得结点的信息在网络中传递多远的距离。需要注意的是,通常我们不会需要结点的信息传播太远。经过6~7个hops,基本上就可以使结点的信息传播到整个网络,这也使得聚合不那么有意义。

我们所使用的GCN应该有多少层?

在文章中,作者对于深层GCNs和浅层GCNs的效果开展了一些实验,由图可以看到,2~3层的网络应该是比较好的。当GCN达到7层时,效果已经变得较差,但是通过加上residual connections between hidden layers可以使效果变好。
在这里插入图片描述

小结笔记

  • GCNs可以用于网络中的半监督学习问题
  • GCNs可以用于学习网络中结点的特征与网络结构的信息
  • GCN的主要思想是对每个结点的邻居及其自身的信息作加权平均,从而得到一个可以传入神经网络的结果向量。
  • 可以通过加深GCNs以获得更大的信息传播范围,如果要较大的层数,需要残差连接以提升效果。通常使用2~3层的GCN。
  • 当看到矩阵时,可以当作是一种矩阵标准化的过程。
  • 有一个GCN的demo,提供了一些包括GCN在内的GNN算法。

**注意:**本文所提出的框架目前仅适用于有权或无权的无向图。然后有向图是可以通过添加额外的结点转化为无相图的。

 

 

 

以下(以上)内容来自(参考):

https://blog.csdn.net/qq_43787862/article/details/113830925

 

标签:结点,函数,卷积,网络,信息,GCN,邻居,向量
From: https://www.cnblogs.com/emanlee/p/17141495.html

相关文章

  • 2022年网络安全政策态势分析与2023年立法趋势
    近日,公安部第三研究所网络安全法律研究中心与360集团法务中心联合共同发布了《全球网络安全政策法律发展年度报告(2022)》。《报告》概览2022年全球网络安全形势与政策法律......
  • 如何用chatGPT、爬虫IP和网络爬虫,打造一个智能有趣的聊天机器人?
    AI(人工智能)是指让机器具有感知、合成和推理信息的能力,与人类和非人类动物的智能相对应。AI可以实现从经验中学习、适应新的输入和执行类似人类的任务。我们今天听到的大多数......
  • 手机如何开启休眠时保持网络连接
     工具/原料华为nova7安卓10EMUI11.0.0方法/步骤1第一步,点击手机设置按钮。  2第二步,打开设置搜索栏。  3......
  • Kubernetes 网络策略 networkpolicy
     网络策略 在 IP 地址或端口层面(OSI 第 3 层或第 4 层)控制网络流量,为集群中特定应用使用 Kubernetes 网络策略(NetworkPolicy);Pod 可以通信的 Pod 是通过......
  • 05 网络基本设定
    05网络基本设定5.1登入系统请以浏览器连接至:https://ip:8006。初次连接时的语言为英文,请点选登入画面“Language”下拉清单,选择相应语言即可。5.2管理介面......
  • uni-app api:获取网络类型(hbuilderx 3.6.18)
    一,代码:<template><view><button@click="getNetwork">得到网络类型</button></view></template><script>exportdefault{data(){......
  • Kibana7.17.3创建简单网络数据的Dashboard and visualizations
    Kibana7.17.3创建简单网络数据的Dashboardandvisualizations1.创建溯源数据,所有会话统计2.创建溯源数据,访问域名统计Top403.创建溯源数据,访问协议统计Top404.......
  • 卷积
    1、卷积核大小,网络的体系结构等。特征图的大小和三个参数有关系:深度:特征图的深度等于卷积核的个数。步长:步长是将卷积核滑过输入矩阵的像素数。当步长为1时,我们将卷积核......
  • [oeasy]python0089_大型机的衰落_Dec小型机崛起_PDP_VAX网络
    编码进化回忆上次内容上次回顾了计算机存储单位的演变最小的读写单位是bit8-bit固定下来成为了字节(Byte)位数容量8-bit1Byte1024Byte......
  • 图卷积神经网络分类的pytorch实现
    图神经网络(GNN)目前的主流实现方式就是节点之间的信息汇聚,也就是类似于卷积网络的邻域加权和,比如图卷积网络(GCN)、图注意力网络(GAT)等。下面根据GCN的实现原理使用Pytorch......