李宏毅机器学习第十周_GNN

目录

摘要

ABSTRACT

一、为什么要用GNN?

二、 Introduction

三、常见的GNN应用

一、Classification

         二、Generation

        三、用于预测

四、现有问题

五、Roadmap

六、Spatial-based GNN

一、NN4G (Neural Networks for Graph)

二、DCNN(Diffusion-Convolution Neural Network)

三、MoNET (Mixture Model Networks)

四、GAT

五、GIN (Graph Isomorphism Network)

七、NN4G、DCNN、MoNET、GAT、GIN的区别

总结


摘要

GNN是一种基于图结构的深度学习方法,GNN通过在图结构中传递信息,实现节点间的特征融合,从而捕捉图中的局部与全局结构信息。目前,GNN已广泛应用于社交网络分析、生物信息学、交通预测等领域,并在节点分类、图分类和链接预测等任务中表现出色。

GNN的主要组成部分为消息传递机制、聚合函数和更新函数,分别负责在图中传递节点信息、整合邻居节点的特征和更新节点嵌入。为了提高GNN的性能,研究者们提出了各种改进策略,如图注意力网络(GAT)和图同构网络(GIN)等。

ABSTRACT

Graph Neural Network(GNN) are a type of deep learning method based on graph structures. By propagating information within the graph, GNN enable the fusion of features between nodes, capturing both local and global structural information. Currently, GNN have been extensively applied in various fields, such as social network analysis, bioinformatics, and traffic prediction, demonstrating outstanding performance in node classificationgraph classification, and link prediction tasks.

The main components of GNN include message-passing mechanisms, aggregation functions, and update functions, which are responsible for transferring node information within the graph, integrating neighboring node features, and updating node embeddings, respectively. To enhance GNN performance, researchers have proposed various improvement strategies, such as Graph Attention Network (GAT) and Graph Isomorphism Network (GIN).

一、为什么要用GNN?

GNN与CNN、RNN的比较,为什么不用CNN或RNN,而用GNN?

GNN 是一种专门为图结构数据设计的神经网络。它可以处理不规则的拓扑结构,并且可以捕捉节点之间的复杂关系。GNN可以通过消息传递和聚合机制来处理不同大小和结构的图数据。由于其适应性和灵活性,GNN 在许多领域,如社交网络分析、化学分子识别和推荐系统等,取得了显著的成功。

选择 GNN 而不是 CNN 或 RNN 的主要原因是数据结构和任务类型。当处理图结构数据或需要捕捉复杂的节点关系时,GNNs是更合适的选择。然而,在处理网格结构数据(如图像)或序列数据(如文本)时,CNN和 RNN可能是更好的选择。

二、 Introduction

GNN简单来说就是Graph + Nerual Networks,关键问题就是将图的结构和图中每个节点和边的特征转化为一般的神经网络的输入(张量)。

 

三、常见的GNN应用

一、Classification

 二、Generation

新冠靶向药的开发。在生成的过程中可以加入很多constraint,例如:是新药,比较好合成,有效性等。当然,得到的结果并不都是能用的,如图中全是红线的分子代表是不符合化学分子式的。

三、用于预测

比如说如下图,在这部电视剧中,可以用GNN来分类谁是凶手,input是一个个属性:比如说姓名、性别、职业等。然后训练模型,训练出来的模型可以进行结果预测。

但是,这些人们的信息并没有用完,比如说两两人之间的关系,这也是一种信息,而这时候如果用CNN或RNN的话就显得不太方便,这也正是GNN的优势。

四、现有问题

1.How do we utilize the structures and relationship to help our model?
2.What if the graph is larger, like 20k nodes?
3.What if we don‘t have the all the labels?

为了解决这些问题,我们有以下这个例子:

蓝色是Unlabeled Node,褐色是Labeled Node,现在要推断黄圈中的节点的标签。思想是A node can learn the structure from its neighbors(近朱者赤,近墨者黑), but how?

我们现在可以试着借鉴CNN的卷积操作,假设有6 x 6 image with 3 x 3 kernel,然后要对绿色和黄色的点进行特征提取,实际上是:和filter相乘相加后就得到feature map。如何把卷积操作移植到Graph上?

第一种方法是把CNN的操作Generalize到GNN上。第二种方法是借鉴信号处理中做法来进行卷积操作。

五、Roadmap

找机会经常用到的两个Concolution分别是Spatial-based的GAT,以及Spectral-based的GCN,

六、Spatial-based GNN

主要的思想就是模仿之前的卷积操作,之前的卷积操作的是某个点的所有邻居,因此在GNN当中也是通过这样的方式下更新下一层(在GNN中叫做aggregation)。当然图上所说的Aggregate也会包括这个节点本身的特征feature。另外还有就是会需要整个图的表示,叫做readout。


 

一、NN4G (Neural Networks for Graph)

NN4G是专门针对图结构数据设计的神经网络的通用术语。它包括了各种类型的GNN模型,如GCN、GAT和GIN。NN4G这个术语强调的是对基于图的数据的关注,而不是特定的模型。

input layer经过embedding之后到hidden layer 0。然后更新的话是将其相邻的节点相加然后乘以权重再加上之前input layer的原始输入。

关于为什么要相加的问题:如果不用相加的话,你就很难去处理节点间邻居数量不同这个巨大的区别 。另外,相加是最简单也是被证实最有效的利用邻点信息的方法。

 readout

整个图的表示是通过求出每一层整个图中的顶点间的特征均值,然后各自乘以相应的权重再把每一层得到的结果相加。

二、DCNN(Diffusion-Convolution Neural Network)

DCNN是一类在图上执行基于扩散的卷积的GNN。它们利用随机游走过程来捕捉图中信息的扩散。因此,DCNN可以有效地对图数据的空间和时间特征进行建模,使其特别适用于动态图。

每一层的更新方式:如第一层,更新某个节点首先找到与它距离为1的节点(也就是邻居节点),然后用原始的输入相加取平均值再乘以权重。第二层,更新更新某个节点首先找到与它距离为2的节点(这样也包括了它自自己本身),然后用原始的输入相加取平均值再乘以权重。

这样就可以将每一层的节点特征组成一个矩阵,然后叠在一起。当我们需要每个节点的feature时候,采用一下的方式来表示图中每个节点的特征:

如对节点1来说,也就是将每一层的节点1提出来,然后乘以权重得到最后节点1的表示。按照类似的操作可以得到其余节点的表示。

三、MoNET (Mixture Model Networks)

MoNet是一个灵活的GNN框架,它结合了一系列局部化函数来对局部邻域信息进行建模。它允许整合各种类型的邻域信息,使其能适应不同的图结构和数据类型。

之前只是简单的相加,并没有考虑到一个节点的邻居跟之间的区别(有的邻居可能更重要一点)。

其中的deg表示的是节点的度。无向图当中也就是说有几个和它相连接的节点。这里定义的距离公式可以有不同的。也就是给每个节点不同的权重weighted sum。

四、GAT

GAT在GNN中引入了注意力机制,以便在聚合邻域节点信息时为每个节点分配不同的权重。这种自适应的权重分配使得GAT能够更好地捕捉图中的复杂结构,提高模型的表达能力。

不止是简单的weighted sum, 不是像之前那样定的weight ,而且要让他自己去学习这个weight。对邻居做Attention,就是不同的邻居给出不同的weight。GAT 的关键思想是通过注意力机制为每个节点的邻居分配不同的权重,从而使模型能够自适应地捕捉节点间的复杂关系。GAT 已被广泛应用于各种图结构数据的任务,如节点分类、图分类和链接预测等。

五、GIN (Graph Isomorphism Network)

GIN是一种强大的GNN模型,能够捕捉图的同构性。它通过引入可学习的聚合函数和更新函数,增强了GNN的表达能力。GIN证明了其理论上的强大性质,即在足够的图数据中,GIN可以区分同构和非同构图。这使得GIN在处理复杂图结构时具有优越性。

用sum的方式,然后用多层感知器而不是一层。下面的就是例子证明max和mean的缺点。对比的两个图,如果用max或者mean的话是看不出来两个图的区别的。公式中epsilon可以为0,因此也就是所有相邻节点和其本身节点相加就可以的。

七、NN4G、DCNN、MoNET、GAT、GIN的区别

NN4G(针对图的神经网络)、DCNN(扩散卷积神经网络)、MoNet(混合模型网络)、GAT(图注意力网络)和GIN(图同构网络)都是针对图结构数据问题的图神经网络(GNN)变体。尽管它们都致力于从图数据中学习表示,但它们具有独特的特征和技术。

总结

目前,GNN面临的挑战主要包括:1)如何有效处理大规模图数据;2)如何增强GNN的表达能力,以捕捉更为复杂的图结构;3)如何解决图数据中的不确定性和噪声问题。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值