图嵌入(graph embedding)、网络嵌入(network embedding)、网络表示学习(network representation learning),这三个概念从原理上来说其实表达的是同一件事,核心思想就是“通过深度学习技术将图中的节点(或边)映射为向量空间中的点,进而可以对向量空间中的点进行聚类、分类等处理”。而接下来讲的图卷积神经网络就属于图嵌入技术的一种。
GNN 论文:https://github.com/thunlp/GNNPapers
GNN是Graph Neural Network的简称,是用于学习包含大量连接的图的联结主义模型。当信息在图的节点之间传播时GNN会捕捉到图的独立性。与标准神经网络不同的是,GNN会保持一种状态,这个状态可以代表来源于人为指定的深度上的信息。
图神经网络处理的数据就是图(Graph),而图是一种对节点和节点间关系建模的数据结构,是机器学习中唯一的非欧几里得数据,由顶点 (vertices) 和 边 (edges) 两个部件组成的一种数据结构,图分析可用于节点分类、链接预测和聚类。一个图 G 可以用它包含的 顶点 V 和边 E(有向或无向) 的集合来描述。
GNN的目标是学习到每个节点的邻居的状态嵌入,这个状态嵌入是向量且可以用来产生输出。GNN就是一种在图域上操作的深度学习方法。
图神经网络(Graph NNs)可能解决图灵奖得主Judea Pearl指出的深度学习无法做因果推理的核心问题。
基于CNN与graph embedding两种思想
GNN会在图结构上聚合信息,因此可以对输入/输出的元素及元素间的独立性进行建模。GNN还可以同时使用RNN核对图上的扩散过程进行建模。GNN也需要防止过拟合和欠拟合,由于图数据通常过大,所以可以采用随机游走的方式,来获取图的特征。
原始的图神经网络在训练和优化步骤有缺陷,它需要完整的图拉普拉斯,对大图而言计算力消耗大。更多的,层L上的节点嵌入是递归计算的,通过嵌入它的所有L-1层的邻居。因此,单层节点是成倍增长的,因此对节点的计算消耗巨大。且GCN是对每个固定图进行独立训练的,因此泛化能力不好。
使用不同训练方法的图变体
以下是几种改善方式:
对GNN而言,传播步骤是非常重要的,它可以获得节点(边)的隐藏状态。传播步骤使用的方法通常是不同的聚合函数(在每个节点的邻居收集信息)和特定的更新函数(更新节点隐藏状态)。
卷积操作
Gate闸门机制
Attention注意力机制
Skip connection
框架的目的是集合不同的模型。
有论文提出message passing neural network(MPNN),可以同一化多种图神经网络和图卷积网络方法。
non-local neural network(NLNN)则同一化了几个自注意方法。
graph network(GN)统一了MPNN和NLNN
还有其他的Interaction Networks,Neural Phsics Engine,CommNet, structure2vec,GGNN,Relation Network,Deep Sets和Point Net。
MPNN
J. Gilmer等人(J. Gilmer et. al. 2017)提出了消息传递神经网络(message passing neural network, MPNN),统一了各种图神经网络和图卷积网络方法。
MPNN是监督学习的框架,它抽象了几个最流行的用于处理图结构数据的模型的相似性。模型包括两个阶段,信息传递阶段和读出阶段。
NLNN
X. Wang等人(X. Wang et. al. 2017)提出了非局部神经网络(non-local neural network, NLNN),它结合了几种“self-attention”风格的方法。
NLNN是用来对深度神经网络的长范围的独立性。non-local操作来源于经典non-local mean操作在计算机视觉上的应用。non-local操作会在一个位置上计算响应,同时加权了的特征和在所有点上。这些位置可以是空间、时间或者空间时间。因此NLNN可以看做是不同的自注意方法的统一。
一般的,non-local操作被如下定义:
h i ′ = 1 C ( h ) ∑ ∀ j f ( h i , h j ) g ( h j ) \mathbf{h}_i' = \frac{1}{ \mathcal{C}(\mathbf{h})} \sum_{\forall_j}f(\mathbf{h}_i,\mathbf{h}_j)g(\mathbf{h}_j) hi′=C(h)1∀j∑f(hi,hj)g(hj)
其中,i是输出位置的索引,j是指出所有可能位置的索引,f函数计算i和j之间的缩放值,这可以代表他们之间的联系,g函数代表了输入的变换以及公式的系数用于正则化结果。当使用不同的f和g函数时,将得到不同的non-local操作实例,最简单的g函数就是线性变换了。以下是一些可能选择的f函数:
P. W. Battaglia等人(P. W. Battaglia et. al. 2018)提出了图网络(graph network, GN),它统一了统一了MPNN和NLNN方法以及许多其他变体,如交互网络(Interaction Networks),神经物理引擎(Neural Physics Engine),CommNet,structure2vec,GGNN,关系网络(Relation Network),Deep Sets和Point Net。
GN
首先是图的定义然后是GN块,核心GN计算单元,计算步骤,最后是GN的基本设计原则。
GNN的应用场景非常多,因为GNN是应用于图信息的,而多种多样的数据都可以划分为图数据。以下是GNN的应用场景:
社交网络;
知识图谱;
推荐系统;
文字分类;
神经网络翻译;
关系提取;
图分类;
…
GNN 在对图形中节点间的依赖关系进行建模方面能力强大,使得图分析相关的研究领域取得了突破性进展。
在这里我们对GNN的应用进行简单的介绍,首先我们将其划分为三种场景的应用:
启发
在我们的日常生活中,图是无处不在的。而图结构数据具有一定的复杂性,因为图结构的数据节点通常具有是具有不同的类型的,因此对普通的神经网络而言处理起来具有一定的难度。
鸣谢:
如何理解 Graph Convolutional Network(GCN):https://www.zhihu.com/question/54504471/answer/332657604
https://blog.csdn.net/qq_34911465/article/details/88524599