网络特征处理基于图神经网络
图神经网络处理网络特征
- 图卷积网络 GCN
- 图注意力网络 GAN
- 图自编码器 GA
- 图生成网络
- 图时空网络 GSN
图论
我记得运筹学课本有一章节是讲过图论的。
G=(V,E),V是土中节点的集合,E是边的集合,一个图中的节点个数为N.
图也可以用矩阵表示:
邻接矩阵A:用来表示节点之间的连接关系
度矩阵D:每个节点的度是指其连接的节点数
特征矩阵X: 用于表示节点的特征\(X是R^{N*F}\)的子集
深度学习中最重要的就是学习特征:随着网络层数的增加,特征越来越抽象,然后用于最终的任务,对于图任务来说,这点同样适用,我们希望深度模型从图的最特征X出发学习到更加抽象的特征,这个特征融合了其他节点的特征,因此图网络需要不断的学习新的特征。
图是一种有节点(顶点)和边构成的数据结构,可以是有向图(单向,双向),也可是无向图(没有明确起点或者终点的信息),所有的节点都占据空间中的任意位置。当用二维或多维空间绘制图的结构时候,具有相似特征的节点通常会聚到一起。知乎
图可以表示事物:比如社交网络。节点可以表示用户/产品/等,边表示他们之间的连接,比如关注/通常与相连接的产品同时购买。
以一个社交网络来说,节点表示用户,边表示两个实体之间的连接/关系,真实的神级网络往往更加复杂。
因此这里可以用于提取用户的网络特征。
图卷积网络GCN
图网络学习特征的方式讲就是,对该节点的邻域节点特征进行变化,然后求和,这里类比cnn就比较清楚了。
归纳一下:
变换:对当前节点的特征进行变换,就是乘法规则
聚合:聚合域节点的 特征,得到该节点的新特征,就是加法规则
激活:采用激活函数,增加非线性
RNN提取的自然语言是一种序列化的数据,因此能够通过各种门提取序列特征,使得序列特征前后能够相互影响
CNN学习特征的方式是kernel不断的在图上平移,通过卷积的方式提取特征,这个kernel的内部是一直不变的。一个小窗口无论移动到图片的哪一个位置,其内部的结构都是一模一样的,因此CNN可以实现参数共享
上面讲的图片或者语言,都属于欧式空间的数据,因此才有维度的概念,欧式空间的数据的特点就是结构很规则。但是现实生活中,其实有很多很多不规则的数据结构,典型的就是图结构,或称拓扑结构,如社交网络、化学分子结构、知识图谱等等;即使是语言,实际上其内部也是复杂的树形结构,也是一种图结构;而像图片,在做目标识别的时候,我们关注的实际上只是二维图片上的部分关键点,这些点组成的也是一个图的结构。zhihu
图的结构一般来说是十分不规则的,可以认为是无限维的一种数据,所以它没有平移不变性。每一个节点的周围结构可能都是独一无二的,这种结构的数据,就让传统的CNN、RNN瞬间失效。所以很多学者从上个世纪就开始研究怎么处理这类数据了。这里涌现出了很多方法,例如GNN、DeepWalk、node2vec等等.
或许下面这幅图更加清晰
右侧则是一个普通的图。阴影部分代表卷积核,左侧是一个传统的卷积核,右侧则是一个图卷积核。卷积代表的含义我们会在后文详细叙述,这里读者可以将其理解为在局部范围内的特征抽取方法。
仔细观察两个图的结构,我们可以发现它们之间有2点非常不一样:
在图像为代表的欧式空间中,结点的邻居数量都是固定的。比如说绿色结点的邻居始终是8个(边缘上的点可以做Padding填充)。但在图这种非欧空间中,结点有多少邻居并不固定。目前绿色结点的邻居结点有2个,但其他结点也会有5个邻居的情况。
欧式空间中的卷积操作实际上是用固定大小可学习的卷积核来抽取像素的特征,比如这里就是抽取绿色结点对应像素及其相邻像素点的特征。但是因为图里的邻居结点不固定,所以传统的卷积核不能直接用于抽取图上结点的特征。
真正的难点聚焦于邻居结点数量不固定上。那么,研究者如何解决这个问题呢?其实说来也很简单,目前主流的研究从2条路来解决这件事:
提出一种方式把非欧空间的图转换成欧式空间。
找出一种可处理变长邻居结点的卷积核在图上抽取特征。
这两条实际上也是后续图卷积神经网络的设计原则,图卷积的本质是想找到适用于图的可学习卷积核。SivilTaram
GCN,图卷积神经网络,实际上跟CNN的作用一样,就是一个特征提取器,只不过它的对象是图数据。GCN精妙地设计了一种从图数据中提取特征的方法,从而让我们可以使用这些特征去对图数据进行节点分类(node classification)、图分类(graph classification)、边预测(link prediction),还可以顺便得到图的嵌入表示(graph embedding),可见用途广泛。
每个节点都有定义他的一个特征,在社交网络的案例中,这些特征可以是年龄,性别,居住国家,政治倾向,等。。每条边连接的节点都可能具有相似的特征,这体现了这些节点之间的某种相关性或者关系。
图神经网络的应用
1、Computer Vision
图形神经网络的最大应用领域之一是计算机视觉。研究人员在场景图生成、点云分类与分割、动作识别等多个方面探索了利用图结构的方法。
在场景图生成中,对象之间的语义关系有助于理解视觉场景背后的语义含义。给定一幅图像,场景图生成模型检测和识别对象,并预测对象对之间的语义关系。另一个应用程序通过生成给定场景图的真实图像来反转该过程。自然语言可以被解析为语义图,其中每个词代表一个对象,这是一个有希望的解决方案,以合成给定的文本描述图像。
在点云分类和分割中,点云是激光雷达扫描记录的一组三维点。此任务的解决方案使激光雷达设备能够看到周围的环境,这通常有利于无人驾驶车辆。为了识别点云所描绘的物体,将点云转换为k-最近邻图或叠加图,并利用图论进化网络来探索拓扑结构。
在动作识别中,识别视频中包含的人类动作有助于从机器方面更好地理解视频内容。一组解决方案检测视频剪辑中人体关节的位置。由骨骼连接的人体关节自然形成图表。给定人类关节位置的时间序列,应用时空神经网络来学习人类行为模式。
此外,图形神经网络在计算机视觉中应用的可能方向也在不断增加。这包括人-物交互、少镜头图像分类、语义分割、视觉推理和问答等。
2、Recommender Systems
基于图的推荐系统以项目和用户为节点。通过利用项目与项目、用户与用户、用户与项目之间的关系以及内容信息,基于图的推荐系统能够生成高质量的推荐。推荐系统的关键是评价一个项目对用户的重要性。因此,可以将其转换为一个链路预测问题。目标是预测用户和项目之间丢失的链接。为了解决这个问题,有学者提出了一种基于GCN的图形自动编码器。还有学者结合GCN和RNN,来学习用户对项目评分的隐藏步骤。
3、Traffic
交通拥堵已成为现代城市的一个热点社会问题。准确预测交通网络中的交通速度、交通量或道路密度,在路线规划和流量控制中至关重要。有学者采用基于图的时空神经网络方法来解决这些问题。他们模型的输入是一个时空图。在这个时空图中,节点由放置在道路上的传感器表示,边由阈值以上成对节点的距离表示,每个节点都包含一个时间序列作为特征。目标是预测一条道路在时间间隔内的平均速度。另一个有趣的应用是出租车需求预测。这有助于智能交通系统有效利用资源,节约能源。
4、Chemistry
在化学中,研究人员应用图神经网络研究分子的图结构。在分子图中,原子为图中的节点,化学键为图中的边。节点分类、图形分类和图形生成是分子图的三个主要任务,它们可以用来学习分子指纹、预测分子性质、推断蛋白质结构、合成化合物。
5、Others
除了以上四个领域外,图神经网络还已被探索可以应用于其他问题,如程序验证、程序推理、社会影响预测、对抗性攻击预防、电子健康记录建模、脑网络、事件检测和组合优化。