GNN图神经网络(1)

一、图

传统的欧几里得空间数据:文本、图像、视频等【LSTM、CNN可训练】

非欧几里得空间数据:图结构(包含对象和关系,如社交网络、电商网络、生物网络和交通网络等)【图卷积等技术可训练】

1、欧几里得空间

也称欧式空间,二维、三维空间的一般化。将距离、长度和角度等概念转化成任意维度的坐标系。

常见的欧几里得结构化数据:

  • 1D:声音,时间序列等;
  • 2D:图像等;
  • 3D:视频,高光谱图像等;

2、非欧几里得空间

像社交网络、信息网络等数据不能转化到欧几里得空间中,则为非欧几里得结构化数据。

常见的非欧几里得结构化数据:

  • 1D:社交网络(eg:Facebook,Twitter等)等;
  • 2D:生物网络(基因,分子,大脑连接)等;
  • 3D:基础设施网络(eg:能源,交通,互联网,通信等)等;

针对非欧几里得结构化数据表示问题,研究者们引入了图论中抽象意义上的图(Graph)来表示非欧几里得结构化数据。

3、图Graph

表现形式----邻接矩阵

 表现形式---度矩阵

 表现形式---领域

4、图的学习任务

  • 节点分类 ——预测一个给定节点的类型【 GCN、GraphSAGE、GAT模型】
  • 链接预测 ——预测两个节点是否连接
  • 社群检测 ——识别密集连接的节点群
  • 网络相似度 ——两个子网络有多相似
  • 图分类(图的同构)——将图中节点的特征聚合起来作为图的特征,再进行分类

例子:

从图数据中节点间的关系以及特征,我们可以进行反欺诈以及商品推荐的操作。

1、节点分类—反欺诈:因为图中每个节点都拥有自己的特征信息。通过该特征信息,我们可以构建一个风控系统,如果交易节点所关联的用户 IP 和收货地址与用户注册 IP 和注册地址不匹配,那么系统将有可能认为该用户存在欺诈风险。

2、边结构预测—商品推荐:图中每个节点都具有结构信息。如果用户频繁购买某种类别商品或对某种类别商品评分较高,那么系统就可以认定该用户对该类商品比较感兴趣,所以就可以向该用户推荐更多该类别的商品。

二、GNN起源 

起源1:CNN(基于邻居汇聚)

CNN能够提取出多尺度的局部空间特征,并将它们进行组合来构建更加高级的表示(expressive representations)。

如果深入研究CNN和图结构的特点,可以发现CNN的核心特点在于:局部连接(local connection),权重共享(shared weights)和多层叠加(multi-layer)。

这些同样在图问题中非常试用,因为图结构是最典型的局部连接结构,其次,共享权重可以减少计算量,另外,多层结构是处理分级模式(hierarchical patterns)的关键。

然而,CNN只能在欧几里得数据(Euclidean data),比如二维图片和一维文本数据上进行处理,而这些数据只是图结构的特例而已,对于一般的图结构,可以发现很难将CNN中的卷积核(convolutional filters)和池化操作(pooling operators)迁移到图的操作上。

如下图,左图为图像,是比较明显的Euclidean数据,而右图为普通的graph结构。

 起源2:graph embedding(基于随机游走)

另一种动机来源于图嵌入(embedding),所谓嵌入,就是对图的节点、边或者子图(subgraph)学习得到一个低维的向量表示,

传统的机器学习方法通常基于人工特征工程来构建特征,但是这种方法受限于灵活性不足、表达能力不足以及工程量过大的问题,

词嵌入常见的模型有Skip-gram,CBOW等,

图嵌入常见模型有DeepWalk,Node2Vec等,

然而,这些方法有两种严重的缺点,

  • 首先就是节点编码中权重未共享,导致权重数量随着节点增多而线性增大,
  • 另外就是直接嵌入方法缺乏泛化能力,意味着无法处理动态图以及泛化到新的图。

如何将图节点转化为embedding?

特征工程:将每个样本表示为向量,图中Node embedding带有节点信息,如相似节点离得近。

特征工程难点:

    • 图的结构可以任意变化【一个图可以具备各种形状,尽管它们的节点位置不一样,但是连接关系没变,所以图完全一样。】
    • 节点可以以任意顺序标记【同样一个5个节点的图,节点可以标记为1、2、3、4、5,也可以标记为4、2、1、3、5,节点编号变了,尽管图完全没变。】

解决思路:

  •  (一维)Node2vec:通过图(graph)结构里的遍历,生成节点的序列,来创造“句子”语料,如以下方法:

  • (二维)图神经网络方法:用周围节点来编码中心节点,相当于通过训练一个虚拟网络(Network),把每个节点周围的结构信息储存在了这个虚拟网络(Network)里,而输入周围节点后这个网络输出的向量,正是这个中心节点的embedding。如以下方法:

三、GNN与传统NN的区别

首先,标准的神经网络比如CNN和RNN不能够适当地处理图结构输入,因为它们都需要节点的特征按照一定的顺序进行排列,但是,对于图结构而言,并没有天然的顺序而言,如果使用顺序来完整地表达图的话,那么就需要将图分解成所有可能的序列,然后对序列进行建模,显然,这种方式非常的冗余以及计算量非常大,与此相反,GNN采用在每个节点上分别传播(propagate)的方式进行学习,由此忽略了节点的顺序,相当于GNN的输出会随着输入的不同而不同。

另外,图结构的边表示节点之间的依存关系,然而,传统的神经网络中,依存关系是通过节点特征表达出来的,也就是说,传统的神经网络不是显式地表达中这种依存关系,而是通过不同节点特征来间接地表达节点之间的关系。通常来说,GNN通过邻居节点的加权求和来更新节点的隐藏状态。

最后,就是对于高级的人工智能来说,推理是一个非常重要的研究主题,人类大脑的推理过程基本上都是基于图的方式,这个图是从日常的生活经历中学习得到的。GNN尝试从非结构化数据比如情景图片和故事文本中产生结构化的图,并通过这些图来生成更高级的AI系统。

四、GNN分类

论文对GNN的模型分类如下:

  • 图卷积网络(Graph convolutional networks)和图注意力网络(graph attention networks),因为涉及到传播步骤(propagation step)。
  • 图的空域网络(spatial-temporal networks),因为该模型通常用在动态图(dynamic graph)上。
  • 图的自编码(auto-encoder),因为该模型通常使用无监督学习(unsupervised)的方式。
  • 图生成网络(generative networks),因为是生成式网络。

 

参考文献:

GNN 系列:Graph 基础知识介绍

图表示学习入门1——导言

GNN综述:Review of Methods and Applications

原文地址:https://www.cnblogs.com/Lee-yl/p/12650731.html