图神经网络入门基础

什么是图

要想解释图的概念,就要从著名的七桥问题开始:一个人如何不重复,不遗漏地走完七座桥,并最终回到起点。大数学家欧拉在回答七桥问题时,开创了图论。

b7780c039e88500aa91580a027c1a831.png

由上图可见,图(Graph)是由节点(Vertices/Nodes)和边(Edges)构成的。

G=(V,E)

图的分类:

ae80e8c2d8be4cf1ee015ea2f3fa4913.png

同构图与异构图的举例:

6c4943f2ff0c57fca14c0f6214c583ae.png

左侧的同构图中,只有一种节点类型,右侧的异构图中则有多种节点类型,且节点之间存在多种边关系。

图的度和邻居:

e5352fa4da3cfb781caf983fcc7a0002.png

对于无向图而言,度就是与之相连的节点个数,邻居就是与之相连的节点集合;对于有向图而言,因为有了方向的限制,度分为出度和入度,邻居分为前继邻居和后继邻居。

图的表示:

邻接矩阵

0fc507e6de51d5bc84c193bc09619287.png

邻接表

c7461c0077c9afc8ee0aba79a124edb8.png

结构特征,边特征,节点特征:

深度学习是基于特征的,同样,图学习也是基于特征的,一张图除了具有结构特征,还具有边特征,和点特征。图学习的本质就是挖掘这些特征。

4f83013a0d1d8abca439f5556b909771.png

例如,对于下面这张图而言,图的节点是用户和文章,用户节点可以有性别,年龄,职业等特征;文章节点可以有类别,词向量等特征。边可以有点击频率和阅读时长等特征,图学习可以充分利用这些特征信息。

132930c7c133b84f0e3ceb325cc2033c.png

图的应用

图是一种描述复杂事物的语言,那图有什么实际的应用呢?在我们的实际生活中存在很多复杂的事物,这些事物都可以通过图来表示。

5a6d901ee82d1dee5ffa17c6157db45c.png

例如通过各种社交App所形成的各种社交网络,社交网络中的人就可以抽象成图的节点,人与人之间的关系可以抽象成节点之间的边。

2ed9aea8343e81ddfafc13607158d983.png

我们每天都会冲浪的互联网也是一个图,每个网页就是图的节点,网页与网页之间的超链接关系就构成了图的边。

7626d6b7b112fa735249877901707782.png

我们目前使用的各种购物App都有推荐功能,这种推荐系统背后其实也是一张图。

节点:用户和商品,

边:用户与商品之间的购买,点击等关系。

4dd20dbf427155fe6b228928096716ac.png

学过化学的人都知道,化学分子是由单个或者多个原子构成的,所以,每个化学分子也可以抽象成一张图,

节点:原子,

边:原子之间的相互作用力,也称为化学键。

什么是图学习

前面已经讲了什么是图,以及图在实际生活中的应用,接下来看一下什么是图学习。

在以往的深度学习中,使用的训练数据有语音,文本,和图像,他们一般都是结构性数据,有整齐规则的数据结构,例如,文本是一维的文字排列,语音是一维音频信号排列,图像是二维像素排列。

然而,在现实生活中还存在大量不规则的数据,很难直接进行建模。

7af98d0d3905dca10aa9930b818c1799.png

ace69ce1fb647511b6e22802b94ee0aa.png

针对上面这些错综复杂的数据,传统的深度学习模型很难处理,因此出现了图学习,图学习也属于深度学习的范畴,但他们专门针对这种复杂的图数据结构。

一般的深度学习:善于发现有规则数据中潜在的模式,但很难处理不规则数据。

5feae608b06b4f41250915bc575c751e.png

图学习:可以很方便地处理不规则数据(图),充分利用图结构信息。

7d4d392508f02ac148db6d904a0f161f.png

图学习的应用

深度学习可以用来对一张图片进行分类,对图像中的目标进行识别和分割,对语音进行翻译,对商品进行有效推荐,对于给定下面这张图,图学习可以用来做什么?

6f3d8cb75c03197dd34fc46b2203c8ba.png

先说结论,图学习对于上述图结构可以进行三类任务。

e10f7f62064d04f88bbdc88043bfe08f.png

第一类就是节点级别的任务,图学习模型可以给出某一个节点的属性或者类别。

12b483f083a314a1b0241fe02e99e82f.png

第二类就是边级别的任务,图学习模型可以预测边的权值或者边是否存在。

3055103afe4956e7a37c9de75b215f0b.png

第三类就是图级别的任务,可以通过图学习模型预测整张图的类别,或者比较两张图的相似性。

下面我们分别举一些实际应用的例子:

节点级别任务-金融诈骗检测:

3dc7ccd69847fda97770aa8f59df66f3.png

图中的节点是用户和商家,用户和商家都有各自的特征,除了特征还有与他人的交互,也就是边关系,传统的方法是通过用户和商家的特征来训练一个分类网络,通过图学习,我们不仅可以学习到节点的特征,还可以学习到节点之间的交互关系,以及图结构的关系,以此来进行分类,从而找到金融诈骗分子。

604f72f5635d2b1a61920802ccd19dff.png

节点级别任务-目标检测:

目标检测是自动驾驶领域中一个非常重要的任务,以往基于视觉模型的图像分割以及基于点云的分割占主导地位,除了传统深度学习模型,图模型也可以从3D点云中进行目标检测。

6ba51a552a9af2cb9e2d4ba40d14771e.png

首先需要把点云构造成图结构,点云中的点可以构造成图节点,那如何构造边呢?我们可以计算点与点之间的距离,设定一个距离阈值,如果点与点之间的距离小于这个阈值就假设点与点之间存在边,否则就不存在边。

图构建完成后就可以把图输入到图学习模型中,模型预测每个点所属的目标对象,以及3D边界框。

31db5f13aae11da474796d2845463892.png

边级别的任务-推荐系统:

前面已经说过,推荐系统可以表示成图,那么,推荐过程本质上就是边预测的过程。

d379b9ec3f927754a45bb7c0e1f72362.png

推荐系统除了可以使用图模型外,还可以通过线性代数,概率与统计,深度神经网络来完成,感兴趣的同学可以看一下我之前的文章。

线性代数本质(续七):线性代数在推荐系统中的应用

在新闻推荐中,假设已经有了用户历史点击数据,要预测用户B的点击行为,这就是一个边预测的任务。

fdb015bc9f8824c1547032bb5432d25f.png

通过用户历史点击数据构造图,将图输入到图学习模型中,得到用户/内容的向量空间,利用向量空间进行后续任务。

图级别的任务-气味识别:

假设我们现在有两种花,需要通过鼻子闻气味的方式进行种类的识别,如果鼻子搞不定,那我们就可以通过图学习来完成。

620b6ba7726b681ebaa536eca6371a09.png

这是如何做到的?花可以在空气中释放分子,根据化学知识,不同分子就代表不同的气味,可以将分子建模成图数据结构,就可以将问题转换成对图的分类问题。

0a6f2f2fd55b68e068a71304857f1ade.png

fefe96542b3cc86bf163ba5284d3f1ca.png

上面只列出了图学习应用的一部分,实际应用可不止这些。

c66bdc050fb9afa0abb0744eda864b06.png

图学习是如何做的

在以往的视觉任务中,首先通过卷积神经网络提取特征,然后将特征输入到全连接层进行分类,或者全卷积网络实现目标i检测和图像分割,那么,图学习模型是如何实现图节点,边,以及整个图的分类任务的呢?

图游走算法:

e62ca84a08219f6d987fd71b9c3a37a1.png

首先设定游走的最大长度,然后随机选择一点,沿着边随机游走,这样就会生成多个节点序列,接下来针对这些序列进行图表示学习,然后进行接下来的操作。

图神经网络:

图神经网络算法一般通过消息传递进行实现,消息传递就是把邻居节点的信息发送到自身,将这些信息聚合起来,然后根据聚合信息来更新自身的表示。

c3502b465204c63a64d1a6453539d867.png

除了上述两种方法,还有其他图学习算法,后续文章我们会详细介绍,这里先给大家列出一个知识脑图。

cb0e181ed7f053649575d545a8479aae.png

相比其他深度学习模型,图学习还是比较难的,为了简化学习难度,给大家介绍一个强大的图学习框架:PGL(Paddle Graph Learning)

1d575afec5bf5f6247886ec717782d3e.png

猜你喜欢

转载自blog.csdn.net/qq_39312146/article/details/134478948