图神经网络(Graph Neural Networks)

本文介绍了图神经网络(GNN)的概念,通过与卷积神经网络的类比,阐述了GNN如何通过邻接节点的向量传播生成节点的Embedding。文章探讨了GNN的传播机制,包括收集(Aggregation)和更新(Update)过程,并举例说明了基础版本、图卷积网络(GCN)和GraphSAGE等不同类型的GNN。此外,还讨论了无监督和有监督的训练方式以及损失函数的设计。最后,文章提到了Node2Vec与GNN的区别,并总结了GNN的核心特点和应用。

图神经网络(Graph Neural Network)在社交网络、推荐系统、知识图谱上的效果初见端倪,成为近2年大热的一个研究热点。然而,什么是图神经网络?图和神经网络为什么要关联?怎么关联?

本文简单介绍GNN的灵感来源,构造方法,训练方式等,根据论文《Representation Learning on Networks》中GNN部分,做了进一步的解释,并增补了一些代码中才有的实现细节,以便后续学习和理解。

代码链接:GitHub - leichaocn/graph_representation_learning

1 卷积神经网络的启示

回顾对图像的简单卷积:

图1 卷积神经网络的基本操作

如图1所示:一幅图(image)所抽取的特征图(也就是特征向量)里每个元素,可以理解为图(image)上的对应点的像素及周边点的像素的加权和(还需要再激活一下)。

同样可以设想:一个图(graph)所抽取的特征图里的每个元素,也可以理解为图(graph)上对应节点的向量与周边节点的向量的加权和

有几个概念需要说明:

特征向量:一条数据(image、word、node等)的数字化表示,是机器学习任务的必备输入。
embedding:更好的特征向量,蕴含潜在语义信息,是来自network训练后的结果,如果能找到优秀的embedding,将有效提升后面机器学习任务的性能表现。例如从word2vec网络中抽出的word embedding向量,“北京”“巴黎”这两个词就比较相似,因为都是首都;从CNN网络中抽出的image embedding,暹罗猫、无耳猫两个图片的向量就比较相似,因为都有猫。
features map :由cnn生成的特征向量,也就是image embedding。image 经过一层CNN前向传播后的输出,是一个二维的矩阵,只要进行拉直(flatten),就转变为了一维的特征向量。类似于全连接神经网络网络里每一层里都能获取的一维的特征向量。

这种迁移联想值得好好体会。

体会明白后,那具体怎么做呢?

2 核心想法

正如上面讨论的,归纳为一句话:用周围点的向量传播出自己的Embedding

一个非常简单的例子就能搞明白。

图2 一个图例

对于图2来说,要计算节点A的Embedding,我们有以下的两条想法:

  • 节点A的Embedding,是它的邻接节点B、C、D的Embedding传播的结果

  • 而节点B、C、D的Embedding,又是由它们各自的邻接节点的Embedding传播的结果。

但是你可能会说,这样不断追溯,何时能结束?所以为了避免无穷无尽,我们就做两层,可以构造图3的传播关系。

### 定义 解缠图神经网络(Disentangled Graph Neural Networks)旨在将图数据中的不同潜在因素或特征进行分离和表示。在图数据中,节点和边蕴含着丰富的信息,这些信息可能由多个不同的生成因素混合而成。解缠图神经网络的目标就是将这些混合的因素解缠开来,使得每个因素能够被独立地学习和表示。例如,在社交网络中,节点之间的连接可能受到多种因素影响,如共同兴趣、地理位置等,解缠图神经网络试图将这些不同因素的影响分开表示。 ### 原理 其原理基于图神经网络(GNN)的基本架构,同时结合解缠学习的思想。传统的GNN通过消息传递机制在图上进行信息聚合,更新节点的表示。而解缠图神经网络在此基础上,引入了额外的约束或损失函数来实现解缠。常见的方法是利用变分自编码器(VAE)的思想,在编码过程中学习图数据的潜在表示,并通过约束潜在空间的分布,使得不同的潜在变量相互独立,从而实现解缠。例如,通过在损失函数中加入对潜在变量之间互信息的惩罚项,迫使模型学习到解缠的表示。 ### 应用 - **社交网络分析**:在社交网络中,解缠图神经网络可以将用户之间的关系解缠为不同的因素,如社交影响力、共同兴趣等。这有助于更好地理解用户的行为模式,进行精准的推荐和社区发现。 - **生物医学领域**:在蛋白质相互作用网络中,解缠图神经网络可以将不同的蛋白质功能模块解缠,帮助研究人员更好地理解蛋白质的功能和疾病的发病机制。 - **交通网络优化**:对于交通网络,解缠图神经网络可以将交通流量的影响因素解缠,如时间因素、地理因素等,从而实现更精准的交通流量预测和交通规划。 ### 研究进展 近年来,解缠图神经网络受到了广泛的关注,相关研究不断涌现。一些研究致力于改进解缠的方法,提出了更有效的损失函数和约束机制,以提高解缠的效果。还有研究将解缠图神经网络应用到更多的领域,拓展了其应用范围。同时,也有研究关注解缠图神经网络的可解释性,使得模型的决策过程更加透明。 ### 代码示例 以下是一个简单的基于PyTorch Geometric库实现的图神经网络代码示例,虽然不是专门的解缠图神经网络,但可以作为基础了解图神经网络的实现: ```python import torch import torch.nn.functional as F from torch_geometric.nn import GCNConv class GCN(torch.nn.Module): def __init__(self, in_channels, hidden_channels, out_channels): super(GCN, self).__init__() self.conv1 = GCNConv(in_channels, hidden_channels) self.conv2 = GCNConv(hidden_channels, out_channels) def forward(self, x, edge_index): x = self.conv1(x, edge_index) x = F.relu(x) x = F.dropout(x, training=self.training) x = self.conv2(x, edge_index) return F.log_softmax(x, dim=1) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值