近年来,深度学习已经彻底改变了许多机器学习任务,从图像分类和视频处理,到语音识别和自然语言理解,这些任务中的数据通常表示在欧几里得空间中。然而,在越来越多的应用程序中,数据是从非欧几里得域生成的,并表示为具有复杂关系和对象之间相互依赖的图形。图数据的复杂性给现有的机器学习算法带来了巨大的挑战。近年来,许多关于扩展图数据深度学习方法的研究已经出现。文章《A Comprehensive Survey on Graph Neural Networks》[1]提供了一个全面的概述图神经网络(GNNs),提出了一种新的分类方法,将最新的图神经网络分为四类,即递归图神经网络(RecGNNs)、卷积图神经网络(ConvGNNs)、图自动编码器(GAEs)和时空图神经网络(STGNNs)。
Definition 1 (图):我们用 来表示图,其中 表示图中所有节点的集合, 表示图中所有边的集合, 表示其中的某个节点, 代表了从图中节点 到 的边, 代表了节点 的邻居节点的集合。 代表图的邻接矩阵: 代表节点特征矩阵,其中 表示节点 的特征向量, 代表边特征矩阵,其中 表示边 的特征向量。Definition 2 (有向图):有向图是所有边都从一个节点指向另一个节点的图。无向图是有向图的一种特殊情况,在有向图中,如果两个节点是连通的,则存在一对反向边。一个图是无向的当且仅当邻接矩阵是对称的。Definition 3 (时空图):时空图是节点属性随时间动态变化的属性图。定义如下: ,其中 表示 时刻下图的节点特征矩阵。RecGNNs模型基于信息传播机制,每一个节点通过相互交换信息来更新自己的节点状态,直到达到某一个稳定值,RecGNNs的输出就是在每个节点处,根据当前节点状态分别计算输出。下图是RecGNNs模型的流程图。详细算法流程可参考文献[2]。卷积图神经网络(Convolutional graph neural networks, ConvGNNs)的主要思想是通过卷积层整合节点以及其邻居各个节点的feature,并通过多层卷积层获得high-level node representation。主要模块是下图(a)、(b)中的Gconv模块,主要的代表模型有NN4G、DCNN、MoNET、GrphSAGE、GAT等(后面我们会一一展开讨论)图自动编码器(Graph autoencoders, GAEs)是一种无监督学习框架,它将node或者graph编码成一个潜在的向量空间,并从编码的信息重构图数据。该算法用于学习network embedding和图生成分布。对于network embedding,GAEs通过重构图的邻接矩阵等图结构信息来学习潜在节点表示。对于图的生成,有的方法是一步一步生成图的节点和边,有的方法是一次性输出整个图。时空图神经网络(Spatial-temporal graph neural network, STGNNs)旨在从时空图中学习隐藏的模式,在交通速度预测、驾驶员操纵预测和人类行为识别等多种应用中发挥着越来越重要的作用。STGNNs的核心思想是同时考虑空间依赖和时间依赖。目前的许多方法都是通过图卷积来捕获与RNNs或CNNs的空间依赖关系,从而对时间依赖关系进行建模。下图是STGNNs流程图模型。将图结构和节点内容信息作为模型的输入,GNNs的输出可以通过以下机制之一专注于不同的图分析任务:Node-level输出用于点回归和分类任务。图卷积模型直接给定节点的潜在表示,然后一个多层感知机或者softmax层用作GNN最后一层。Edge-level输出与边分类和链路预测任务相关。为了预测一条边的label或者连接强度,附加函数从图卷积模型中提取两个节点的lantent representation作为输入。Graph-level输出和图分类任务相关,通常采用池化模块和readout模块(具体可参考图神经网络(二))相结合,以此来获得图级别的high level representation。Semi-supervised learning for node-level classification:给定一个网络,其中部分节点被标记,其他节点未标记,ConvGNNs可以学习一个鲁棒模型,有效地识别未标记节点的类标签。为此,可以通过叠加一对图卷积层,然后是用于多类分类的softmax层来构建端到端框架。见图(a)Supervised learning for graph-level classification:图级分类的目的是预测整个图的类标签。该任务的端到端学习可以结合图卷积层、图池层和/或readout层来实现。图卷积层负责精确的高级节点表示,图池层则扮演下采样的角色,每次都将每个图粗化成一个子结构。readout层将每个图的节点表示折叠成一个图表示。通过在图表示中应用一个多层感知器和一个softmax层,我们可以建立一个端到端图分类框架。见图(b)Unsupervised learning for graph embedding:当图中没有可用的类标签时,我们可以学习在端到端框架中以完全无监督的方式嵌入图。这些算法以两种方式利用边缘级信息。一种简单的方法是采用自编码器框架,编码器使用图卷积层将图嵌入到潜在表示中,在潜在表示上使用解码器重构图结构。另一种常用的方法是利用负采样方法(negative sampling),即对图中有链接的部分节点对进行负采样,而对图中有链接的节点对进行正采样。然后应用逻辑回归层对的正负配对进行区分。见图(c)在图神经网络中,用的比较多的是ConvGNNs,也就是卷积神经网络,因此,下一章我将重点介绍ConvGNNs一类网络模型,感兴趣的朋友可以移步图神经网络综述(二)[1] Wu Z , Pan S , Chen F , et al. A Comprehensive Survey on Graph Neural Networks[J]. IEEE Transactions on Neural Networks and Learning Systems, 2019.[2] Scarselli F , Gori M , Tsoi A C , et al. The Graph Neural Network Model[J]. IEEE Transactions on Neural Networks, 2009, 20(1):61.由于微信平台算法改版,公号内容将不再以时间排序展示,如果大家想第一时间看到我们的推送,强烈建议星标我们和给我们多点点【在看】。星标具体步骤为:
(1)点击页面最上方"AINLP",进入公众号主页。
(2)点击右上角的小点点,在弹出页面点击“设为星标”,就可以啦。
感谢支持,比心。
进群请添加AINLP小助手微信 AINLPer(id: ainlper),备注图神经网络推荐阅读
这个NLP工具,玩得根本停不下来
征稿启示| 200元稿费+5000DBC(价值20个小时GPU算力)
完结撒花!李宏毅老师深度学习与人类语言处理课程视频及课件(附下载)
从数据到模型,你可能需要1篇详实的pytorch踩坑指南
如何让Bert在finetune小数据集时更“稳”一点
模型压缩实践系列之——bert-of-theseus,一个非常亲民的bert压缩方法
文本自动摘要任务的“不完全”心得总结番外篇——submodular函数优化
Node2Vec 论文+代码笔记
模型压缩实践收尾篇——模型蒸馏以及其他一些技巧实践小结
中文命名实体识别工具(NER)哪家强?
学自然语言处理,其实更应该学好英语
斯坦福大学NLP组Python深度学习自然语言处理工具Stanza试用
关于AINLP
AINLP 是一个有趣有AI的自然语言处理社区,专注于 AI、NLP、机器学习、深度学习、推荐算法等相关技术的分享,主题包括文本摘要、智能问答、聊天机器人、机器翻译、自动生成、知识图谱、预训练模型、推荐系统、计算广告、招聘信息、求职经验分享等,欢迎关注!加技术交流群请添加AINLPer(id:ainlper),备注工作/研究方向+加群目的。
阅读至此了,分享、点赞、在看三选一吧🙏