图神经网络到底是什么?终于有人讲明白了

简介: 刚接触GNN,其实我是拒绝的。深度学习是近几年人工智能领域的爆款,知识内容很多,去书店看看,敢叫“深度学习”的书很多都是厚厚的一本,而且深度学习还在不断发展,每年都有成吨的论文在生产。

云栖号资讯:【点击查看更多行业资讯
在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来!

DEDDD287_BA27_46c3_8989_E1294A6A8A11

刚接触GNN,其实我是拒绝的。深度学习是近几年人工智能领域的爆款,知识内容很多,去书店看看,敢叫“深度学习”的书很多都是厚厚的一本,而且深度学习还在不断发展,每年都有成吨的论文在生产。

不过,如果把深度学习看作一部要素过多的大片,那么,它有两条主线,跟着这两条主线走就不会跑偏。一条主线叫卷积神经网络,简称CNN,主要用于图像类数据的处理。另一条主线叫循环神经网络,简称RNN,主要用于时序类数据的处理。

“时序类数据”这种叫法大家也许很陌生,不过肯定都见过,主要就是指文本类数据和音频类数据。CNN和RNN共同搭建起深度学习的稳固框架,新的研究成果不过只是添砖加瓦。

当然了,这些年学术前沿风起云涌,深度学习领域也并不太平,先是图像领域跑出来了GAN,图像生成的风头一下盖过了图像识别。接着自然语言处理领域干脆打出了革命的旗号,说什么“Attention Is All You Need”,声势浩大,让人一度以为LSTM都要统统下岗了。

不过,在我看来,都只是老游戏的新玩法,就像无论是兽皮独木舟还是喷射飞翼船,都只是水上交通工具,内心没有丝毫波澜,直到看到了GNN。

刚开始,我以为GNN不过是又一种新玩法,只不过想要来蹭CNN和RNN两位大佬的热度,故意起了这么个名字。不过,抽空翻了翻GNN的论文之后,我马上发现,这是深度学习以前没有挽过的船新版本。深度学习座下,看来是要再多一位NN。

先说“GNN”这个名字,后面的“NN”不必说了,和CNN、RNN一样,就是神经网络(Nerual Network)的意思,毕竟机器学习的神经网络算法正是深度学习发家的根本。关键在于GNN打首的G。GNN全名图神经网络,这里的G是是图(Graph)的意思,GNN之所以重要,是因为图很重要。

图是计算机科学里的一种非常重要的数据结构,计算机科学有一门必修的基础课叫“离散数学”,听名字像是某一条数学分支,不过究竟“离散数学”的边界在哪里,不同版本的《离散数学》教材的看法略有不同,但有一个知识点,所有版本的《离散数学》教材都不会错过,那就是“图论”,讨论一种叫“图”的数据结构。

GNN里的“图”,正是指图论的“图”

应该说,图神经网络并不是图与机器学习的第一次结合,机器学习在此之前已经大量使用了这个重要的数据结构。机器学习众多的模型中,有一个重要的大类,叫“概率图模型(PGM)”,名字叫得很形象,这类模型就是用图来表示变量与变量之间转移的概率关系。

不过,虽然名字都有“图”字,但概率图模型和这里要介绍的图神经网络,有着本质的不同。

有人说,2019年是GNN的元年,我觉得这个说法谦虚了。深度学习的每一款经典模型,背后都有一篇经典的论文,GNN的那篇经典论文名为《Semi-Supervised Classification with Graph Convolutional Networks》,已经发表了三年,到了2019年,GNN已经开始在各大顶会上刷榜,有一点开谈不讲GNN就落伍的意思。

铺垫了这么多,加上“图论”这个名字本身自带的神秘感,特别是我还看到有的教程非要不经意地提一下图与拓扑学的关系,这些也许都会让你产生一个感觉:图非常高深难学。其实,图非常简单,真的是用三言两语就能讲清楚。

什么是图呢?就两样,顶点(Vertex)和边(Edge),没有其它了。

这么说好像很简单,但实际上比这更简单,网络拓扑结构图肯定都见过吧,星形、环形、总线形,无论哪种,所谓的顶点,就是网络拓扑图里面的节点,譬如网络拓扑图里的PC机、服务器和路由器等等,而所谓的边,就是连接这些网络节点的线。

所以图的应用非常广,网络拓扑图就是一种非常典型的图结构。

B1CEA656_E46A_4620_BD89_A38824C23C1B

真就这么简单?真就这么简单。教材上是怎么定义图的呢?就一条公式,三个字母:

G=(V,E)

这里的G,就是GNN的G,意思是Graph(图)。V就是前面的Vertex(顶点),E就是前面的Edge(边)。这是一种集合论的定义方法,表达的意思就是:图是顶点和边的集合。图论也好,图神经网络也罢,来来回回就是研究顶点和边这两个对象折腾出来的各种问题。

是不是挺简单的,有没有感觉干劲满满,准备花一点时间精通图神经网络——一个下午够不够?

图确实挺简单的,真的就两个研究对象,不过,这两个对象,还真的就折腾出了一个庞大的理论体系,正是我们前面所说的图论(Graph Theory)。

图论是数学中很重要的一条分支,三言两语肯定是讲不清楚的,如果你好奇数学家的脑洞能开多大,不妨看看图论是怎样把顶点和边这两个怎么看怎么简单的对象玩出各种花样。这里,我想对图神经网络多说几句。

首先,为什么要有图神经网络?

一款新技术的兴起,大家也许更在意的是它的技术原理,而我则通常会首先思考上面这个问题:为什么要推出这款新技术。推出一款新技术,潜台词就是说原有技术存在不足,那我们的CNN和RNN看起来都要包打天下了,会在什么地方还存在不足呢?

答案四个字:数据结构。

模型是要喂数据的,这我们都知道。但现有的深度学习模型,无论是CNN,还是RNN,或者叫其他什么的,都对数据的数据结构有一个要求,必须都是欧几里得结构(Euclidean Structure)。

这个词听起来好像很难,不少论文都爱举图像数据这个例子来说明,我是感觉不太直观,不过也许大家都比我悟性高吧,这里姑且也放一张:

3DEF5B54_0281_4892_9066_2916D7331FE5

那什么是欧几里得结构呢?其实特别简单。长得方方正正的就是欧几里得结构,军训的阅兵方阵,横向纵向都是一个人紧挨着一个人,这就是典型的欧几里得结构。也许你在心里想了想,说:难道还有什么结构不是这样的吗?

有,总得来说有两大类,一类就是图,另一类叫流型,统称为非欧几里得结构。就说这个图吧,想象一下图的样子,它肯定不是方阵,更像是军训时忽然听到开饭了,一下四散而去。这就是非欧几里得结构。

这样的非欧几里得结构,是没有办法用传统的深度模型处理的。因此,研究人员开发了图神经网络。

图神经网络是一个大类,具体当然又包括有很多模型,不过打响头一炮的叫GCN,大家研究图神经网络,一般都会选择从GCN开始。说起来很有意思,打响深度学习头一炮的是CNN,而这个GCN和CNN还有很深的渊源。

GCN全称Graph Convolutional Network,意思是图卷积网络。看到“卷积”二字,想必大家都会会心一笑,这不正是CNN压箱底的宝贝嘛!不过疑问同时也就来了,怎样用卷积处理非欧几里得结构的数据呢?

老的方法肯定是不行的,所以图神经网络需要用到一些新的概念,比如拉普拉斯矩阵和图傅里叶变换等等。

新技术带来的新知识点自然比较多,想要系统地了解这方面内容,我推荐一本书,书名叫《深入浅出图神经网络:GNN原理解析》,应该是目前市面上唯一一本专门介绍图神经网络的书。

这本书从图的基本知识讲起,重点介绍了GCN模型的原因,特别是讲清楚了怎样在非欧几里得数据上进行卷积操作,最后介绍了图神经网络的最新发展,读完应该就能对图神经网络有比较全面的了解了。

【云栖号在线课堂】每天都有产品技术专家分享!
课程地址:https://yqh.aliyun.com/zhibo

立即加入社群,与专家面对面,及时了解课程最新动态!
【云栖号在线课堂 社群】https://c.tb.cn/F3.Z8gvnK

原文发布时间:2020-04-20
本文作者:木羊同学
本文来自:“大数据DT 微信公众号”,了解相关信息可以关注“大数据DT

相关文章
|
7月前
|
机器学习/深度学习 人工智能 自然语言处理
ICLR 2024 Spotlight:训练一个图神经网络即可解决图领域所有分类问题!
【2月更文挑战第17天】ICLR 2024 Spotlight:训练一个图神经网络即可解决图领域所有分类问题!
209 2
ICLR 2024 Spotlight:训练一个图神经网络即可解决图领域所有分类问题!
|
6月前
|
机器学习/深度学习 人工智能 自然语言处理
Transformer 能代替图神经网络吗?
Transformer模型的革新性在于其自注意力机制,广泛应用于多种任务,包括非原始设计领域。近期研究专注于Transformer的推理能力,特别是在图神经网络(GNN)上下文中。
132 5
|
5月前
|
机器学习/深度学习 搜索推荐 知识图谱
图神经网络加持,突破传统推荐系统局限!北大港大联合提出SelfGNN:有效降低信息过载与数据噪声影响
【7月更文挑战第22天】北大港大联手打造SelfGNN,一种结合图神经网络与自监督学习的推荐系统,专攻信息过载及数据噪声难题。SelfGNN通过短期图捕获实时用户兴趣,利用自增强学习提升模型鲁棒性,实现多时间尺度动态行为建模,大幅优化推荐准确度与时效性。经四大真实数据集测试,SelfGNN在准确性和抗噪能力上超越现有模型。尽管如此,高计算复杂度及对图构建质量的依赖仍是待克服挑战。[详细论文](https://arxiv.org/abs/2405.20878)。
88 5
|
5月前
|
机器学习/深度学习 PyTorch 算法框架/工具
图神经网络是一类用于处理图结构数据的神经网络。与传统的深度学习模型(如卷积神经网络CNN和循环神经网络RNN)不同,
图神经网络是一类用于处理图结构数据的神经网络。与传统的深度学习模型(如卷积神经网络CNN和循环神经网络RNN)不同,
|
5月前
|
机器学习/深度学习 编解码 数据可视化
图神经网络版本的Kolmogorov Arnold(KAN)代码实现和效果对比
目前我们看到有很多使用KAN替代MLP的实验,但是目前来说对于图神经网络来说还没有类似的实验,今天我们就来使用KAN创建一个图神经网络Graph Kolmogorov Arnold(GKAN),来测试下KAN是否可以在图神经网络方面有所作为。
206 0
|
7月前
|
机器学习/深度学习 自然语言处理 搜索推荐
【传知代码】图神经网络长对话理解-论文复现
在ACL2023会议上发表的论文《使用带有辅助跨模态交互的关系时态图神经网络进行对话理解》提出了一种新方法,名为correct,用于多模态情感识别。correct框架通过全局和局部上下文信息捕捉对话情感,同时有效处理跨模态交互和时间依赖。模型利用图神经网络结构,通过构建图来表示对话中的交互和时间关系,提高了情感预测的准确性。在IEMOCAP和CMU-MOSEI数据集上的实验结果证明了correct的有效性。源码和更多细节可在文章链接提供的附件中获取。
【传知代码】图神经网络长对话理解-论文复现
|
6月前
|
机器学习/深度学习 数据采集 TensorFlow
使用Python实现深度学习模型:图神经网络(GNN)
使用Python实现深度学习模型:图神经网络(GNN)
368 1
|
6月前
|
机器学习/深度学习 搜索推荐 PyTorch
【机器学习】图神经网络:深度解析图神经网络的基本构成和原理以及关键技术
【机器学习】图神经网络:深度解析图神经网络的基本构成和原理以及关键技术
1336 2
|
7月前
|
机器学习/深度学习 JSON PyTorch
图神经网络入门示例:使用PyTorch Geometric 进行节点分类
本文介绍了如何使用PyTorch处理同构图数据进行节点分类。首先,数据集来自Facebook Large Page-Page Network,包含22,470个页面,分为四类,具有不同大小的特征向量。为训练神经网络,需创建PyTorch Data对象,涉及读取CSV和JSON文件,处理不一致的特征向量大小并进行归一化。接着,加载边数据以构建图。通过`Data`对象创建同构图,之后数据被分为70%训练集和30%测试集。训练了两种模型:MLP和GCN。GCN在测试集上实现了80%的准确率,优于MLP的46%,展示了利用图信息的优势。
116 1
|
7月前
|
机器学习/深度学习 数据挖掘 算法框架/工具
想要了解图或图神经网络?没有比看论文更好的方式,面试阿里国际站运营一般会问什么
想要了解图或图神经网络?没有比看论文更好的方式,面试阿里国际站运营一般会问什么

热门文章

最新文章