什么是图
要想解释图的概念,就要从著名的七桥问题开始:一个人如何不重复,不遗漏地走完七座桥,并最终回到起点。大数学家欧拉在回答七桥问题时,开创了图论。
由上图可见,图(Graph)是由节点(Vertices/Nodes)和边(Edges)构成的。
G=(V,E)
图的分类:
同构图与异构图的举例:
左侧的同构图中,只有一种节点类型,右侧的异构图中则有多种节点类型,且节点之间存在多种边关系。
图的度和邻居:
对于无向图而言,度就是与之相连的节点个数,邻居就是与之相连的节点集合;对于有向图而言,因为有了方向的限制,度分为出度和入度,邻居分为前继邻居和后继邻居。
图的表示:
邻接矩阵
邻接表
结构特征,边特征,节点特征:
深度学习是基于特征的,同样,图学习也是基于特征的,一张图除了具有结构特征,还具有边特征,和点特征。图学习的本质就是挖掘这些特征。
例如,对于下面这张图而言,图的节点是用户和文章,用户节点可以有性别,年龄,职业等特征;文章节点可以有类别,词向量等特征。边可以有点击频率和阅读时长等特征,图学习可以充分利用这些特征信息。
图的应用
图是一种描述复杂事物的语言,那图有什么实际的应用呢?在我们的实际生活中存在很多复杂的事物,这些事物都可以通过图来表示。
例如通过各种社交App所形成的各种社交网络,社交网络中的人就可以抽象成图的节点,人与人之间的关系可以抽象成节点之间的边。
我们每天都会冲浪的互联网也是一个图,每个网页就是图的节点,网页与网页之间的超链接关系就构成了图的边。
我们目前使用的各种购物App都有推荐功能,这种推荐系统背后其实也是一张图。
节点:用户和商品,
边:用户与商品之间的购买,点击等关系。
学过化学的人都知道,化学分子是由单个或者多个原子构成的,所以,每个化学分子也可以抽象成一张图,
节点:原子,
边:原子之间的相互作用力,也称为化学键。
什么是图学习
前面已经讲了什么是图,以及图在实际生活中的应用,接下来看一下什么是图学习。
在以往的深度学习中,使用的训练数据有语音,文本,和图像,他们一般都是结构性数据,有整齐规则的数据结构,例如,文本是一维的文字排列,语音是一维音频信号排列,图像是二维像素排列。
然而,在现实生活中还存在大量不规则的数据,很难直接进行建模。
针对上面这些错综复杂的数据,传统的深度学习模型很难处理,因此出现了图学习,图学习也属于深度学习的范畴,但他们专门针对这种复杂的图数据结构。
一般的深度学习:善于发现有规则数据中潜在的模式,但很难处理不规则数据。
图学习:可以很方便地处理不规则数据(图),充分利用图结构信息。
图学习的应用
深度学习可以用来对一张图片进行分类,对图像中的目标进行识别和分割,对语音进行翻译,对商品进行有效推荐,对于给定下面这张图,图学习可以用来做什么?
先说结论,图学习对于上述图结构可以进行三类任务。
第一类就是节点级别的任务,图学习模型可以给出某一个节点的属性或者类别。
第二类就是边级别的任务,图学习模型可以预测边的权值或者边是否存在。
第三类就是图级别的任务,可以通过图学习模型预测整张图的类别,或者比较两张图的相似性。
下面我们分别举一些实际应用的例子:
节点级别任务-金融诈骗检测:
图中的节点是用户和商家,用户和商家都有各自的特征,除了特征还有与他人的交互,也就是边关系,传统的方法是通过用户和商家的特征来训练一个分类网络,通过图学习,我们不仅可以学习到节点的特征,还可以学习到节点之间的交互关系,以及图结构的关系,以此来进行分类,从而找到金融诈骗分子。
节点级别任务-目标检测:
目标检测是自动驾驶领域中一个非常重要的任务,以往基于视觉模型的图像分割以及基于点云的分割占主导地位,除了传统深度学习模型,图模型也可以从3D点云中进行目标检测。
首先需要把点云构造成图结构,点云中的点可以构造成图节点,那如何构造边呢?我们可以计算点与点之间的距离,设定一个距离阈值,如果点与点之间的距离小于这个阈值就假设点与点之间存在边,否则就不存在边。
图构建完成后就可以把图输入到图学习模型中,模型预测每个点所属的目标对象,以及3D边界框。
边级别的任务-推荐系统:
前面已经说过,推荐系统可以表示成图,那么,推荐过程本质上就是边预测的过程。
推荐系统除了可以使用图模型外,还可以通过线性代数,概率与统计,深度神经网络来完成,感兴趣的同学可以看一下我之前的文章。
线性代数本质(续七):线性代数在推荐系统中的应用
在新闻推荐中,假设已经有了用户历史点击数据,要预测用户B的点击行为,这就是一个边预测的任务。
通过用户历史点击数据构造图,将图输入到图学习模型中,得到用户/内容的向量空间,利用向量空间进行后续任务。
图级别的任务-气味识别:
假设我们现在有两种花,需要通过鼻子闻气味的方式进行种类的识别,如果鼻子搞不定,那我们就可以通过图学习来完成。
这是如何做到的?花可以在空气中释放分子,根据化学知识,不同分子就代表不同的气味,可以将分子建模成图数据结构,就可以将问题转换成对图的分类问题。
上面只列出了图学习应用的一部分,实际应用可不止这些。
图学习是如何做的
在以往的视觉任务中,首先通过卷积神经网络提取特征,然后将特征输入到全连接层进行分类,或者全卷积网络实现目标i检测和图像分割,那么,图学习模型是如何实现图节点,边,以及整个图的分类任务的呢?
图游走算法:
首先设定游走的最大长度,然后随机选择一点,沿着边随机游走,这样就会生成多个节点序列,接下来针对这些序列进行图表示学习,然后进行接下来的操作。
图神经网络:
图神经网络算法一般通过消息传递进行实现,消息传递就是把邻居节点的信息发送到自身,将这些信息聚合起来,然后根据聚合信息来更新自身的表示。
除了上述两种方法,还有其他图学习算法,后续文章我们会详细介绍,这里先给大家列出一个知识脑图。
相比其他深度学习模型,图学习还是比较难的,为了简化学习难度,给大家介绍一个强大的图学习框架:PGL(Paddle Graph Learning)