初识图学习
一、简单图的基础
什么是图
七桥问题的定义是:一个步行者怎样才能不重复,不遗漏的一次走完七座桥。最后回到出发点。
当年,大数学家在解答七桥问题的同时,也开创了数学的一个新分支图论。
可以毫不夸张的说,七桥图是我们真正意义上的第一张图,对七桥图上的各个地点和桥,做一个抽象,我们可以将七桥图,抽象为一个由点和边构成的图。
生活中的图
事实上,图是一种统一描述复杂事物的语言,在我们实际生活中,存在着许许多多的复杂事物,而这些事物可以被抽象为图。
我们生活在一个巨大的社交网络里面,这个社交网络有着许许多多的人,从而抽象为了图中的点,而人与人之间的各种联系,包括:父母关系、朋友关系、以及其他各种复杂的关系。则构成了图中的边。
又比如:我们每天都在网上冲浪,而网页和网页之间的关系存在超连接的关系。这也构成了一张图。
我们经常会在淘宝等购物APP上买东西,在界面上经常会有各种好物推荐。而其实,这个推荐系统本身也是一张图,在这张图里面**,用户和商品都是图中的节点**,而用户与商品的点击、浏览、购买等行为则构成了图中的边。
在化学这门学科上,绝大多数化学分子就是由单个或多个原子组成的,原子就是节点,而原子之间的相互作用力,也就是化学键,它构成了图中的边。
图的分类
- 根据图的节点之间是否右方向,可将图分为无向图和有向图
- 根据图的边是否有权重,可以将图分为无权图和有权图。
- 根据图的边和点是否具有多种类型,可以将图分为同构图和异构图。
同构图和异构图举例、
图的度和邻居
- 度是图上一个节点,其边的条数。
- 邻居指的是图上一个节点,相邻的节点。
对于上面两张图来说:
图的表示
邻接矩阵
邻接矩阵用
0
0
0和
1
1
1表示节点之间的关系矩阵。
可以看出,无向图的临界矩阵,就是对称矩阵。
邻接表
邻接表其实就是直接记录着每个节点之间的邻居信息。
边集
图的特征
对于一张图来说,每个节点,每i条边可能都有各自的特征。
图学习初印象
图学习是深度学习的一个子领域,强调处理的数据对象为图。
与一般深度学习的区别是图学习能够方便地,处理不规则数据,(树、图),同时也可以处理规则数据。
图学习的应用
可以将图能做的任务进行一个分类,对于一张图:
- 我们希望预测这个点的类别或者其他的特性,那么这就是一个节点级别的任务;
- 又比如我们希望预测这条边的权值,或者预测这条边是否存在,等等,那么这就是一个边级别的任务;
- 再比如,我们想要预测整张图的一个类别,或者想比较两张图之间的相似性等等,这就是一个图级别的任务了。
- (节点级别任务、边级别任务、图级任务)
节点级别任务
金融诈骗检测
在建图的时候,它的节点是用户和商家,同时还包含了各自共有的信息作为节点。
其中,每个用户或者商家都有着各自的特征,也具备着某些相同的特征,同时也有着与他人的交互。传统方法通常是直接利用用户和商家的特征来训练一个分类网络,而没有利用节点与节点之间的交互,因此使用图学习,我们可以同时学习图结构以及节点特征,更好的进行分类,从而更好**地找到金融诈骗分子
自动驾驶
点云是通过激光扫描等来获得的点数据,而3D点云这个结构可以建模为图结构。
在点云构建好图之后,将图结构和图特征经过这个叫
P
o
i
n
t
−
G
N
N
Point-GNN
Point−GNN模型,从而预测出点云中每个点所对应的
o
b
j
e
c
t
object
object.
也就是目标对象,同时要预测出对应目标所在的三维边界,也就是:
b
o
u
n
d
i
n
g
b
o
x
bounding box
boundingbox
由于预测的对象是每个点,因此这是一个节点级别的任务。
边级别的任务
推荐系统
推荐系统可以表示成图:
-
比如,我们想要向用户推荐新闻,以左边这个图为例,我们已经知道了用户 ABC的历史点击行为,那么接下来**,想要预测用户B会不会点击某条广告**,其实就相当于预测这条边是否存在,因此这就是一个边预测的任务。
-
具体实现的时候,会把用户行为图关系通过图表示学习后,得到用户、商品或内容的向量表示;得到对应这些节点的 Embeddings 之后, 就可以利用这些 embeddings 来做各种的推荐任务。
图级别任务
气味识别
-
气味识别其实是一个非常典型的图识别任务了,而且对于实际生活也很有帮助。
-
假设这样的一个场景,我们有两种花,蒙住眼睛,只能用鼻子来分辨花。如果我们光靠鼻子搞不定,那么这时候就可以派图学习上场了。
图学习算法分类
-
这里分为了三大类:游走类算法、图神经网络算法、以及知识图谱嵌入算法。
-
因为知识图谱也是一种典型的图,因此把它也加入到了这个分类里面。
-
其中,图神经网络算法还可以进行更加具体的划分,比如分为卷积网络和递归网络,等等。
图游走类算法
图游走类算法就有点像我们去旅游一样,任意选择一个出发点,然后随机的选择下一个目的地,不断地走,直到我们累啦。
通过不断的旅游,我们得到多个序列,而游走算法都是在得到这些序列之后,对其应用图表示学习,再进行接下来其他的操作。
图神经网络算法
图神经网络 算法相对来说更复杂一点,其的一种实现方式是消息传递。
消息传递,其实质就是把当前节点的邻居发送到自身,将这些信息聚合后,再利用这些信息更新自身的表示。
(当前节点的邻居发送到自身,聚合,利用这些信息更新自身的表示)
总结
慢慢的将各种网络都将其搞会,会自己训练一个图模型,全部将其搞彻底都行啦的样子与打算,慢慢的将各种图模型及其啥的全部都训练好都行啦的样子与打算。
**。