GNNs的研究和graph embedding/network embedding(将网络节点表示为低维向量表示)有着密切的关系,GNN强调使用端到端方式开展图相关任务,GNNs是用于解决各种各样任务的一组神经网络模型。另一方面,网络嵌入还包括其他非深度学习方法:matrix factorization(矩阵分解),随机游动(random walks)。
graph kernel 是用于解决图分类问题的主要技术
gnn直接基于图表示进行图分类,比图核方法更加高效。
它们假设图中的一个节点不断地与它的邻居交换信息/消息,直到到达一个稳定的平衡状态,
堆叠多个图卷积层以提取高层的节点特征表示,有基于节点的分类和基于图的分类:
这里的池化操作是将图粗化为子图使得在粗化后的子图上的节点表示更高层次的特征,
学习网络的嵌入表示和Graph generative distributions,网络嵌入涉及到通过重构图的邻接矩阵来学习latent node的表示
压缩和重构的是图的邻接矩阵
学习spatial-temporal graphs的隐模式(hidden patterns),同时考虑空间依赖性和时间依赖性,和CNN或者RNN结合获取时间和空间信息。
用于节点回归和分类任务,代表网络:RecGNNs,ConvGNNs首先提取节点的high-level表示,然后使用一个MLP或者softmax实现端到端训练。
用于edge的分类和link预测,利用GNNs提取的节点的hidden表示作为输入,使用相似性函数或者神经网络来预测edge的标签/连接强度
用于图分类任务,经常与pooling和readout操作结合在一起
针对单个网络中部分节点被标记而其余节点未标记的情况,通过叠加GC layers并后面跟着一个softmax层实现多类别分类。
利用GC layers 池化和/或读出层实现图的端到端学习,网络框架可以参考graph-level 的图卷积。
两种类型:
[15] G N N ∗ GNN^* GNN∗->[16]GraphESN(改进不明显)->[17]Gated Graph Neural Network (GGNN)
仅用于有向无环图
由于计算能力受限。
无环图、循环图、有向图和无向图
基于information diffusion mechanism,迭代直到达到稳定状态。
h v ( t ) = ∑ u ∈ N ( v ) f ( x v , x e ( v , u ) , x u , h u ( t − 1 ) ) \mathbf{h}_{v}^{(t)}=\sum_{u \in N(v)} f\left(\mathbf{x}_{v}, \mathbf{x}^{\mathbf{e}}(v, u), \mathbf{x}_{u}, \mathbf{h}_{u}^{(t-1)}\right) hv(t)=u∈N(v)∑f(xv,xe(v,u),xu,hu(t−1))
对参数方程 f f f的要求是收缩映射,当f(·)为神经网络时,参数的雅可比矩阵必须加一个惩罚项(正则化项)。当满足收敛准则时,将最后一步节点隐藏状态转发到读出层。节点的状态传播(直到稳定)和计算参数梯度(一次梯度)是交替进行的。
在GraphESN中,由一个编码层和一个输出层组成,这里使用编码层代替压缩状态函数来递归地更新节点状态(编码器不需要训练)最终得到一个不动点,接着作为输入进行训练。
在Gated Graph Neural Network (GGNN) 中,使用GRU作为递归函数,解决了 f f f收缩映射的条件,节点状态更新方程:使用当前节点和邻居节点的状态更新。并且使用BPTT进行参数的训练,但是对于大型图来说是一个问题。
h v ( t ) = G R U ( h v ( t − 1 ) , ∑ u ∈ N ( v ) W h u ( t − 1 ) ) \mathbf{h}_{v}^{(t)}=G R U\left(\mathbf{h}_{v}^{(t-1)}, \sum_{u \in N(v)} \mathbf{W h}_{u}^{(t-1)}\right) hv(t)=GRU⎝⎛hv(t−1),u∈N(v)∑Whu(t−1)⎠⎞
在SSE中提出了一种可以扩展到large graphs的思路:它交替抽取一批节点进行状态更新,抽取一批节点进行梯度计算。为了保证收敛性,SSE是对历史状态和新状态的一个加权平均。
h v ( t ) = ( 1 − α ) h v ( t − 1 ) + α W 1 σ ( W 2 [ x v , ∑ u ∈ N ( v ) [ h u ( t − 1 ) , x u ] ] ) \mathbf{h}_{v}^{(t)}=(1-\alpha) \mathbf{h}_{v}^{(t-1)}+\alpha \mathbf{W}_{1} \sigma\left(\mathbf{W}_{2}\left[\mathbf{x}_{v}, \sum_{u \in N(v)}\left[\mathbf{h}_{u}^{(t-1)}, \mathbf{x}_{u}\right]\right]\right) hv(t)=(1−α)hv(t−1)+αW1σ⎝⎛W2⎣⎡xv,u∈N(v)∑[hu(t−1),xu]⎦⎤⎠⎞
基于频谱的方法从Graph信号处理的角度通过引入滤波器来定义Graph卷积[82],其中,Graph卷积操作被解释为从Graph信号中去除噪声。
基于空间的方法继承了RecGNNs的思想,通过信息传播(Aggregation邻居信息)来定义图形卷积。
基于空间的方法由于其具有吸引力的效率、灵活性和通用性,最近得到了迅速发展。
Spectral Convolutional Neural Network (Spectral CNN)[19] ->ChebNet[21]->GCN[22]->CayleyNet[23] ->GCN[22]->Adaptive Graph Convolutional Network (AGCN) [40] -> Dual Graph Convolutional Network(DGCN)[41]->Mixture Model Network (MoNet) [44]
H : , j ( k ) = σ ( ∑ i = 1 f k − 1 U Θ i , j ( k ) U T H : , i ( k − 1 ) ) ( j = 1 , 2 , ⋯ , f k ) \mathbf{H}_{:, j}^{(k)}=\sigma\left(\sum_{i=1}^{f_{k-1}} \mathbf{U} \Theta_{i, j}^{(k)} \mathbf{U}^{T} \mathbf{H}_{:, i}^{(k-1)}\right) \quad\left(j=1,2, \cdots, f_{k}\right) H:,j(k)=σ(i=1∑fk−1UΘi,j(k)UTH:,i(k−1))(j=1,2,⋯,fk)
由于公式比较复杂,这里我们做详细地说明:
( k ) {(k)} (k)是GCL层的索引号,这里图的隐状态是 H ( k ) ∈ R n ∗ f k \mathbf{H}^{(k)}\in R^{n*f_k} H(k)∈Rn∗fk, n n n表示节点数, f k f_k fk表示通道数,在前向计算时,通道数会发生改变。 H ( 0 ) = X ∈ R n ∗ d \mathbf{H}^{(0)} = X \in R^{n*d} H(0)=X∈Rn∗d是图的初始状态,计算 H ( k ) \mathbf{H}^{(k)} H(k)的一个通道的状态时,使用了前一层所有通道的状态都做了一次图卷积并求和,这里不清楚的一点就是 g θ = Θ i , j ( k ) g_\theta = \Theta_{i, j}^{(k)} gθ=Θi,j(k)是一个矩阵的话,那么每一层是否是有很多的 Θ i , j ( k ) \Theta_{i, j}^{(k)} Θi,j(k)( f k − 1 ∗ f k f_{k-1}*f_k fk−1∗fk个 n ∗ n n*n n∗n的矩阵)呢?
上述方法存在的问题是:
1. 对图的任何扰动都会导致特征基$U$的变化.
T i ( x ) = 2 x T i − 1 ( x ) − T i − 2 ( x ) T_{i}(\mathbf{x})=2 \mathbf{x} T_{i-1}(\mathbf{x})-T_{i-2}(\mathbf{x}) Ti(x)=2xTi−1(x)−Ti−2(x)
并且 T 0 ( x ) = 1 , T 1 ( x ) = x T_{0}(\mathbf{x})=1,T_{1}(\mathbf{x})=x T0(x)=1,T1(x)=x,又由于 T i ( L ~ ) = U T i ( Λ ~ ) U T T_{i}(\tilde{\mathbf{L}})=\mathbf{U} T_{i}(\tilde{\boldsymbol{\Lambda}}) \mathbf{U}^{T} Ti(L~)=UTi(Λ~)UT,其中 L ~ = 2 L / λ max − I n \tilde{\mathbf{L}}=2 \mathbf{L} / \lambda_{\max }-\mathbf{I}_{\mathbf{n}} L~=2L/λmax−In,可以将图卷积的式子进行化简,从而得到:
x ∗ G g θ = ∑ i = 0 K θ i T i ( L ~ ) x \mathbf{x} *_{G} \mathbf{g}_{\theta}=\sum_{i=0}^{K} \theta_{i} T_{i}(\tilde{\mathbf{L}}) \mathbf{x} x∗Ggθ=i=0∑KθiTi(L~)x
这样的修改使得卷积仅仅是在局部定义,意味着滤波器可以独立了于图的大小提取局部特征
CayleyNet
使用Cayley多项式,是参数化的有理复函数,可以捕获窄带信号其卷积的定义为:
x ∗ G g θ = c 0 x + 2 Re { ∑ j = 1 r c j ( h L − i I ) j ( h L + i I ) − j x } \mathbf{x} *_{G} \mathbf{g}_{\theta}=c_{0} \mathbf{x}+2 \operatorname{Re}\left\{\sum_{j=1}^{r} c_{j}(h \mathbf{L}-i \mathbf{I})^{j}(h \mathbf{L}+i \mathbf{I})^{-j} \mathbf{x}\right\} x∗Ggθ=c0x+2Re{j=1∑rcj(hL−iI)j(hL+iI)−jx}
ChebNet可以看作是CayleyNet的一种特殊情况。
Graph Convolutional Network (GCN)
GCN对ChebNet进行简化,假定 K = 1 , λ m a x = 2 K = 1,\lambda_{max} = 2 K=1,λmax=2,这样的话,卷积公式简化为:
x ∗ G g θ = θ 0 x − θ 1 D − 1 2 A D − 1 2 x \mathbf{x} *_{G} \mathbf{g}_{\theta}=\theta_{0} \mathbf{x}-\theta_{1} \mathbf{D}^{-\frac{1}{2}} \mathbf{A} \mathbf{D}^{-\frac{1}{2}} \mathbf{x} x∗Ggθ=θ0x−θ1D−21AD−21x
同时为了限制参数数量同时便面过拟合,假设 θ = θ 0 = − θ 1 \theta = \theta_0 = -\theta_1 θ=θ0=−θ1,从而推导出接下来的卷积式:
x ∗ G g θ = θ ( I n + D − 1 2 A D − 1 2 ) x \mathbf{x} *_{G} \mathbf{g}_{\theta}=\theta\left(\mathbf{I}_{\mathbf{n}}+\mathbf{D}^{-\frac{1}{2}} \mathbf{A} \mathbf{D}^{-\frac{1}{2}}\right) \mathbf{x} x∗Ggθ=θ(In+D−21AD−21)x
输入信号为矩阵 X X X时,将上述式整理为:
H = X ∗ G g Θ = f ( A ‾ X Θ ) \mathbf{H}=\mathbf{X} *_{G} \mathbf{g}_{\Theta}=f(\overline{\mathbf{A}} \mathbf{X} \Theta) H=X∗GgΘ=f(AXΘ)
但是不清楚这个 Θ \Theta Θ的表达式是什么,其中 A ‾ = I n + D − 1 2 A D − 1 2 \overline{\mathbf{A}}=\mathbf{I}_{\mathbf{n}}+\mathbf{D}^{-\frac{1}{2}} \mathbf{A} \mathbf{D}^{-\frac{1}{2}} A=In+D−21AD−21,不过这个式子很容易造成GCN的不稳定,使用normalization技巧取代替 A ‾ \overline{\mathbf{A}} A,其中$ \overline{\mathbf{A}}=\tilde{\mathbf{D}}^{-\frac{1}{2}} \tilde{\mathbf{A}} \tilde{\mathbf{D}}^{-\frac{1}{2}} , , ,\tilde{\mathbf{A}}=\mathbf{A}+\mathbf{I}{\mathbf{n}} , , ,\tilde{\mathbf{D}}{i i}=\sum_{i} \tilde{\mathbf{A}}_{i j}$,将上式表示为空间形式为:
h v = f ( Θ T ( ∑ u ∈ { N ( v ) ∪ v } A ˉ v , u x u ) ) ∀ v ∈ V \mathbf{h}_{v}=f\left(\mathbf{\Theta}^{T}\left(\sum_{u \in\{N(v) \cup v\}} \bar{A}_{v, u} \mathbf{x}_{u}\right)\right) \quad \forall v \in V hv=f⎝⎛ΘT⎝⎛u∈{N(v)∪v}∑Aˉv,uxu⎠⎞⎠⎞∀v∈V
The spatial graph convolutional operation essentially propagates node information along edges.(空间卷积操作实质上是沿着edge传递节点信息)
GCN -> Neural Network for Graphs (NN4G) [24]->Contextual Graph Markov Model (CGMM)[24]->DCNN[25]-DGC[72]-> PGC-DGCNN[46]->Partition Graph Convolution (PGC) [75] ->Message Passing Neural Network (MPNN) [27]->Graph Isomorphism Network (GIN)[57]->GrapphSage[42]->Graph Attention Network (GA T) [43]->Mixture Model Network (MoNet) [44]->PA TCHY -SAN [26] -> Large-
scale Graph Convolutional Network (LGCN) [45] -》Fast Learning with Graph Convolutional Network (Fast-GCN) [49]->Huang et al. [51] ->Stochastic Training of Graph Convolutional Networks (StoGCN) [50]
Neural Network for Graphs (NN4G) [24]
在文中使用了residual connections和skip connections
h v ( k ) = f ( W ( k ) T x v + ∑ i = 1 k − 1 ∑ u ∈ N ( v ) Θ ( k ) T h u ( k − 1 ) ) \mathbf{h}_{v}^{(k)}=f\left(\mathbf{W}^{(k)^{T}} \mathbf{x}_{v}+\sum_{i=1}^{k-1} \sum_{u \in N(v)} \Theta^{(k)^{T}} \mathbf{h}_{u}^{(k-1)}\right) hv(k)=f⎝⎛W(k)Txv+i=1∑k−1u∈N(v)∑Θ(k)Thu(k−1)⎠⎞
其中 h v ( 0 ) = 0 \mathbf{h}_{v}^{(0)}=\mathbf{0} hv(0)=0,将等式写成矩阵形式为:
H ( k ) = f ( X W ( k ) + ∑ i = 1 k − 1 A H ( k − 1 ) Θ ( k ) ) \mathbf{H}^{(k)}=f\left(\mathbf{X} \mathbf{W}^{(k)}+\sum_{i=1}^{k-1} \mathbf{A} \mathbf{H}^{(k-1)} \mathbf{\Theta}^{(k)}\right) H(k)=f(XW(k)+i=1∑k−1AH(k−1)Θ(k))
其中A是使用的是非规范化的邻接矩阵
Contextual Graph Markov Model (CGMM)具有概率可解释性的优点
Diffusion Convolutional Neural Network (DCNN)
将图卷积看作是一个扩散过程,假设信息以一定概率从一个节点转移到相邻节点,并最终达到均衡,文中定义的扩散图卷积为:
H ( k ) = f ( W ( k ) ⊙ P k X ) \mathbf{H}^{(k)}=f\left(\mathbf{W}^{(k)} \odot \mathbf{P}^{k} \mathbf{X}\right) H(k)=f(W(k)⊙PkX)
其中 f ( ⋅ ) f(\cdot) f(⋅)是一个激活函数, P ∈ R n × n \mathbf{P} \in \mathbf{R}^{n \times n} P∈Rn×n, P = D − 1 A \mathbf{P}=\mathbf{D}^{-1} \mathbf{A} P=D−1A,从上式中可以看出 H ( k ) \mathbf{H}^{(k)} H(k)是和 H ( k − 1 ) \mathbf{H}^{(k-1)} H(k−1)没有关系的,DCNN中将 H ( 1 ) H^{(1)} H(1),…, H ( K ) H^{(K)} H(K)连接到一起作为输出。
Diffusion Graph Convolution(DCG)将每一步扩散输出做了一个求和(这样做的原理是:扩散过程的平稳分布是概率转移矩阵的幂级数的和)
H = ∑ k = 0 K f ( P k X W ( k ) ) \mathbf{H}=\sum_{k=0}^{K} f\left(\mathbf{P}^{k} \mathbf{X} \mathbf{W}^{(k)}\right) H=k=0∑Kf(PkXW(k))
使用转移概率矩阵的幂意味着遥远的邻居对中心节点贡献很少的信息
PGC-DGCNN
基于最短路径增加遥远邻居的贡献。增加了一个shortest path
adjacency matrix S ( j ) S^{(j)} S(j)。计算最短路径复杂度为 O ( n 3 ) O(n^3) O(n3),如果u节点到v节点最短距离为j,则 S u , v ( j ) = 1 S^{(j)}_{u,v}=1 Su,v(j)=1,否则为0.同时引入超参数
H ( k ) = ∥ j = 0 r f ( ( D ~ ( j ) ) − 1 S ( j ) H ( k − 1 ) W ( j , k ] ) , \mathbf{H}^{(k)}=\|_{j=0}^{r} f\left(\left(\tilde{\mathbf{D}}^{(j)}\right)^{-1} \mathbf{S}^{(j)} \mathbf{H}^{(k-1)} \mathbf{W}^{(j, k]}\right), H(k)=∥j=0rf((D~(j))−1S(j)H(k−1)W(j,k]),
Partition Graph Convolution (PGC) [75]
根据特定的标准将节点的邻居划分为Q组,每一组使用不同的邻接矩阵,接着使用不同的参数矩阵,并将最终得到的结果相加。
H ( k ) = ∑ j = 1 Q A ‾ ( j ) H ( k − 1 ) W ( j , k ) \mathbf{H}^{(k)}=\sum_{j=1}^{Q} \overline{\mathbf{A}}^{(j)} \mathbf{H}^{(k-1)} \mathbf{W}^{(j, k)} H(k)=j=1∑QA(j)H(k−1)W(j,k)
H ( 0 ) = X , A ‾ ( j ) = ( D ~ ( j ) ) − 1 2 A ~ ( j ) ( D ~ ( j ) ) − 1 2 \mathbf{H}^{(0)}=\mathbf{X}, \overline{\mathbf{A}}^{(j)}=\left(\tilde{\mathbf{D}}^{(j)}\right)^{-\frac{1}{2}} \tilde{\mathbf{A}}^{(j)}\left(\tilde{\mathbf{D}}^{(j)}\right)^{-\frac{1}{2}} H(0)=X,A(j)=(D~(j))−21A~(j)(D~(j))−21, A ~ ( j ) = A ( j ) + I \tilde{\mathbf{A}}^{(j)} = {\mathbf{A}}^{(j)}+\mathbf{I} A~(j)=A(j)+I
Message Passing Neural Network (MPNN)
将谱域的卷积看成是空间域的消息传递,因此这边消息传递的函数为:
h v ( k ) = U k ( h v ( k − 1 ) , ∑ u ∈ N ( v ) M k ( h v ( k − 1 ) , h u ( k − 1 ) , x v u e ) ) \mathbf{h}_{v}^{(k)}=U_{k}\left(\mathbf{h}_{v}^{(k-1)}, \sum_{u \in N(v)} M_{k}\left(\mathbf{h}_{v}^{(k-1)}, \mathbf{h}_{u}^{(k-1)}, \mathbf{x}_{v u}^{e}\right)\right) hv(k)=Uk(hv(k−1),∑u∈N(v)Mk(hv(k−1),hu(k−1),xvue)),
其中 h v ( 0 ) = x v , U k ( ⋅ ) , M k ( ⋅ ) \mathbf{h}_{v}^{(0)}=\mathbf{x}_{v}, U_{k}(\cdot), M_{k}(\cdot) hv(0)=xv,Uk(⋅),Mk(⋅)都是要学习的参数,读出(readout)函数 h G = R ( h v ( K ) ∣ v ∈ G ) \mathbf{h}_{G}=R\left(\mathbf{h}_{v}^{(K)} \mid v \in G\right) hG=R(hv(K)∣v∈G),是关于最后一层节点的函数
Graph Isomorphism Network (GIN)解决无法使用他们产生的图嵌入来区分不同结构的图
中心节点的权值由一个可学习参数 ϵ ( k ) \epsilon^{(k)} ϵ(k),得到图卷积/消息传递表达为:
h v ( k ) = M L P ( ( 1 + ϵ ( k ) ) h v ( k − 1 ) + ∑ u ∈ N ( v ) h u ( k − 1 ) ) \mathbf{h}_{v}^{(k)}=M L P\left(\left(1+\epsilon^{(k)}\right) \mathbf{h}_{v}^{(k-1)}+\sum_{u \in N(v)} \mathbf{h}_{u}^{(k-1)}\right) hv(k)=MLP⎝⎛(1+ϵ(k))hv(k−1)+u∈N(v)∑hu(k−1)⎠⎞
GraphSage不使用所有的邻域节点,而是对于每一个节点采样固定数量的邻居
h v ( k ) = σ ( W ( k ) ⋅ f k ( h v ( k − 1 ) , { h u ( k − 1 ) , ∀ u ∈ S N ( v ) } ) ) \mathbf{h}_{v}^{(k)}=\sigma\left(\mathbf{W}^{(k)} \cdot f_{k}\left(\mathbf{h}_{v}^{(k-1)},\left\{\mathbf{h}_{u}^{(k-1)}, \forall u \in S_{\mathcal{N}(v)}\right\}\right)\right) hv(k)=σ(W(k)⋅fk(hv(k−1),{hu(k−1),∀u∈SN(v)}))
f k f_{k} fk是节点的Aggregation函数,要求具有不变性,为什么那?
Graph Attention Network (GA T) [43]
假设相邻节点对于邻居节点的贡献是不相同的,因此学习两个连接节点之间的相对权值,GAT的图卷积/消息传递定义为:
h v ( k ) = σ ( ∑ u ∈ N ( v ) ∪ v α v u ( k ) W ( k ) h u ( k − 1 ) ) \mathbf{h}_{v}^{(k)}=\sigma\left(\sum_{u \in \mathcal{N}(v) \cup v} \alpha_{v u}^{(k)} \mathbf{W}^{(k)} \mathbf{h}_{u}^{(k-1)}\right) hv(k)=σ⎝⎛u∈N(v)∪v∑αvu(k)W(k)hu(k−1)⎠⎞
h v ( 0 ) = x v \mathbf{h}_{v}^{(0)}=\mathbf{x}_{v} hv(0)=xv,其中注意力系数的计算为:
α v u ( k ) = softmax ( g ( a T [ W ( k ) h v ( k − 1 ) ∥ W ( k ) h u ( k − 1 ) ) ) \alpha_{v u}^{(k)}=\operatorname{softmax}\left(g\left(\mathbf{a}^{T}\left[\mathbf{W}^{(k)} \mathbf{h}_{v}^{(k-1)} \| \mathbf{W}^{(k)} \mathbf{h}_{u}^{(k-1)}\right)\right)\right. αvu(k)=softmax(g(aT[W(k)hv(k−1)∥W(k)hu(k−1)))
同时,使用了multi-head attention,提高了模型的表达能力
此外:图注意力模型有:GeniePath [55]
Mixture Model Network (MoNet) [44]
引入节点的伪坐标,并将两节点的相对位置映射为两节点之间的权重,实现不同位置参数的共享,使用带有可学习参数的高斯核来自适应学习权重函数。
PA TCHY -SAN [26]
PA TCHY -SAN[26]根据每个节点的图标签对其邻居进行排序,并选择顶部的q邻居。图标签本质上是节点评分,可以通过节点度、中心性和Weisfeiler-Lehman 来推导.
使用标准的1-D卷积聚合邻域信息,在图的数据处理上需要花费大量的时间。
Largescale Graph Convolutional Network (LGCN) [45]
采用不同的方法对邻域进行排序
GraphSage [42]
提出了一种a batch-training algorithm for ConvGNNs.
Fast Learning with Graph Convolutional Network (Fast-GCN) [49]
为每个图的卷积层采样固定数量的节点,并不处理所有的节点。它将图的卷积解释为节点嵌入函数在概率测度下的积分变换。
Huang et al. [51]
自适应的层采样方法,底层节点的采样是条件在高层节点的采样上的,具有更高的精度比Fasst-GCN
Stochastic Training of Graph Convolutional Networks (StoGCN) [50]
利用历史节点表示作为控制变量,将图卷积的接受野减小到任意小的规模,但是,StoGCN仍然需要保存所有节点的中间状态,这对于大型图来说是消耗内存的。
Cluster-GCN [58]
ConvGCNs训练算法的时间和内存复杂度比较([58]总结)。n是节点的总数。m是边的总数。K是层数。s为批大小。r是每个节点采样的邻居的数量.Cluster-GCN具有最小的内存消耗。
两种策略
[23]使用Graclus algorithm 算法来对图节点聚类,从而实现图的粗化。
[17],[27],[46]使用注意力机制来增强mean/sum池化
set2set[101]->ChebNet->DGCNN->differentiable pooling (DiffPool) [54] ->SAGPool[102]
图粗化算法使用特征分解来根据图的拓扑结构进行粗化。问题:时间复杂度太高
Graclus algorithm对原始图进行聚类得到粗化后的图
对得到的最后一层节点的隐特征,求统计特征(mean/max/sum)
h G = mean / max / sum ( h 1 ( K ) , h 2 ( K ) , … , h n ( K ) ) \mathbf{h}_{G}=\operatorname{mean} / \max / \operatorname{sum}\left(\mathbf{h}_{1}^{(K)}, \mathbf{h}_{2}^{(K)}, \ldots, \mathbf{h}_{n}^{(K)}\right) hG=mean/max/sum(h1(K),h2(K),…,hn(K))
[17],[27],[46]使用注意力机制来增强mean/sum池化
Set2Set在reduction之前增加新的信息。
Defferrard et al. [21],提出了更加高效的pooling策略:Craclus algorithm+balanced binary tree
DGCNN中提出SortPooling。
differentiable pooling (DiffPool) [54] 生成图的分层表示,不是直接对节点进行聚类,而是学习一个cluster assignment matrix S S S.
S ( k ) ∈ R n k × n k + 1 \mathbf{S}^{(k)} \in \mathbf{R}^{n_{k} \times n_{k+1}} S(k)∈Rnk×nk+1,其中 n k n_{k} nk是第 k k k层节点数。
S ( k ) = softmax ( Conv G N N k ( A ( k ) , H ( k ) ) ) \mathbf{S}^{(k)}=\operatorname{softmax}\left(\operatorname{Conv} G N N_{k}\left(\mathbf{A}^{(k)}, \mathbf{H}^{(k)}\right)\right) S(k)=softmax(ConvGNNk(A(k),H(k)))
缺点是计算复杂度会变成 O ( n 3 ) O(n^3) O(n3),
SAGPool[102]既考虑节点特征,又考虑图拓扑,学习以一个self-attention的方式学习池化。
节点的接收野是最后一层节点能够接收到的所有节点的信息,就和CNN相同,
Micheli证明有限层的空间图卷积层可以cover图中的所有节点
什么是VC维?衡量研究对象(数据集与学习模型)可学习的指标,一个假设空间H的VC dimension,是这个H最多能够shatter掉的点的数量,记为dvc(H):翻译成人话是,不管数据是怎样分布的,H最多能区分多少个数据。我们可以想像,越是复杂的H能够区分的数据点就越多,VC维也就越大。
GNN VC维的分析
如果使用sigmoid或正切双曲激活, G N N ∗ GNN^* GNN∗的VC维为 O ( p 4 n 2 ) O(p^4n^2) O(p4n2)
如果使用分段多项式激活函数,VC维为 O ( p 2 n ) O(p^2n) O(p2n)
GNN将两个不同的Graph映射到不同的Embeddings,可以通过Weisfeiler-Lehman (WL) test两个图的非同构性。
为了实现等方差或不变性,GNN的组成部分必须对节点顺序保持不变。
执行节点级任务时,GNN必须是等变函数;执行图形级任务时,GNN必须是不变函数。
众所周知,具有一隐层的多感知器前馈神经网络可以近似任何Borel可测函数.
Maron等[104]证明了不变图网络可以近似定义在图上的任意不变函数
DNGR[59]->SDNE[60]->Graph Autoencoder( G A E ∗ GAE^* GAE∗)[61]->Varia-
tional Graph Autoencoder (VGAE) [61]
DNGR
利用多层感知器,堆叠降噪自编码器来对PPMI矩阵进行编码和解码
SDNE
在encode和decode上分别使用了两个loss函数:
第一损失函数使已学习的网络嵌入通过最小化节点嵌入网络之间的距离来保持节点的一阶邻近性: L 1 s t = ∑ ( v , u ) ∈ E A v , u ∥ enc ( x v ) − enc ( x u ) ∥ 2 L_{1 s t}=\sum_{(v, u) \in E} A_{v, u}\left\|\operatorname{enc}\left(\mathbf{x}_{v}\right)-\operatorname{enc}\left(\mathbf{x}_{u}\right)\right\|^{2} L1st=∑(v,u)∈EAv,u∥enc(xv)−enc(xu)∥2
其中$\mathbf{x}{v} =A{v, :} $,相当于是在对邻接矩阵进行encode
第二损失函数使学习到的网络嵌入通过最小化节点的输入与其重构输出之间的距离来保持节点的二阶接近性
上述的DNGR和SDNE仅仅考虑节点的结构信息,而没有考虑节点包含的特征信息(feature information),
G A E ∗ GAE^* GAE∗同时encode节点的结构信息和特征信息,并且由两个图卷积层构成:
Z = enc ( X , A ) = Gconv ( f ( Gconv ( A , X ; Θ 1 ) ) ; Θ 2 ) \mathbf{Z}=\operatorname{enc}(\mathbf{X}, \mathbf{A})=\operatorname{Gconv}\left(f\left(\operatorname{Gconv}\left(\mathbf{A}, \mathbf{X} ; \mathbf{\Theta}_{1}\right)\right) ; \mathbf{\Theta}_{2}\right) Z=enc(X,A)=Gconv(f(Gconv(A,X;Θ1));Θ2)
Z \mathbf{Z} Z就是 图的Embedding表示, f ( ⋅ ) f( \cdot ) f(⋅)表示ReLU激活函数
解码器:再现图的邻接矩阵 A ^ v , u = dec ( z v , z u ) = σ ( z v T z u ) \hat{\mathbf{A}}_{v, u}=\operatorname{dec}\left(\mathbf{z}_{v}, \mathbf{z}_{u}\right)=\sigma\left(\mathbf{z}_{v}^{T} \mathbf{z}_{u}\right) A^v,u=dec(zv,zu)=σ(zvTzu),
训练目标:最小化真实邻接矩阵和重构邻接矩阵的negative cross entropy,
不过简单重构图的邻接矩阵很容易造成过拟合,由于自编码器的容量(过大还是过小?)
Variational Graph Autoencoder (VGAE) [61]
变分自编码器:优化变分下界:
L = E q ( Z ∣ X , A ) [ log p ( A ∣ Z ) ] − K L [ q ( Z ∣ X , A ) ∥ p ( Z ) ] L=E_{q(\mathbf{Z} \mid \mathbf{X}, \mathbf{A})}[\log p(\mathbf{A} \mid \mathbf{Z})]-K L[q(\mathbf{Z} \mid \mathbf{X}, \mathbf{A}) \| p(\mathbf{Z})] L=Eq(Z∣X,A)[logp(A∣Z)]−KL[q(Z∣X,A)∥p(Z)]
假定经验分布 q ( Z ∣ X , A ) q(\mathbf{Z} \mid \mathbf{X},\mathbf{A}) q(Z∣X,A)和先验分布 p ( Z ) p(\mathbf{Z}) p(Z)接近
Adversarially Regularized V ariational Graph Autoencoder (ARVGA) [62],
采用GAN的方式,生成器生成经验分布 q ( Z ∣ X , A ) q(\mathbf{Z} \mid \mathbf{X},\mathbf{A}) q(Z∣X,A),判别器要努力将生成器生成的分布和真实的先验分布 p ( Z ) p(\mathbf{Z}) p(Z)区别开来。
GraphSage[42]
定义loss函数的思路:强制接近的节点具有相似的表示,而距离较远的节点具有不同的表示
L ( z v ) = − log ( dec ( z v , z u ) ) − Q E v n ∼ P n ( v ) log ( − dec ( z v , z v n ) ) L\left(\mathbf{z}_{v}\right)=-\log \left(\operatorname{dec}\left(\mathbf{z}_{v}, \mathbf{z}_{u}\right)\right)-Q E_{v_{n} \sim P_{n}(v)} \log \left(-\operatorname{dec}\left(\mathbf{z}_{v}, \mathbf{z}_{v_{n}}\right)\right) L(zv)=−log(dec(zv,zu))−QEvn∼Pn(v)log(−dec(zv,zvn))
对于节点 v v v来说,他的Embedding表示 z v \mathbf{z}_{v} zv, u u u是 v v v的近邻节点, v n v_n vn是远离 v v v节点的,并且是通过negative sampling distribution得到的
DGI[56]利用网络嵌入通过最大化局部互信息来实现全局结构信息的捕获
Deep Recursive Network Embedding (DRNE)
假设节点的network embedding 近似其邻居节点网络嵌入的Aggregation,集成方法采用LSTM:
L = ∑ v ∈ V ∥ z v − L S T M ( { z u ∣ u ∈ N ( v ) } ) ∥ 2 L=\sum_{v \in V}\left\|\mathbf{z}_{v}-L S T M\left(\left\{\mathbf{z}_{u} \mid u \in N(v)\right\}\right)\right\|^{2} L=v∈V∑∥zv−LSTM({zu∣u∈N(v)})∥2
LSTM网络采用节点v的邻居按节点度排序的随机序列作为输入
Network Representations with Adversarially Regularized Autoencoders (NetRA) [64]
NetRA的编码器和解码器为LSTM网络,每个节点 v v v∈ V V V作为随机游动的起点,将游动结果输出到LSTM中。同时采用对抗训练的方法
思想:通过GAE编码,解码过程来学习图的生成过程,
研究前景:解决分子图生成问题,这在药物发现中具有很高的实用价值
生成图的方式:全局方式/序列方式(sequential manner)
序列方法:Gomez et al. [111], Kusner et al. [112],and Dai et al. [113] ,Deep Generative Model of Graphs (DeepGMG) [65],GraphRNN
全局方法:Graph V ariational Autoencoder (GraphV AE) [67] ,(RGV AE) [68],(MolGAN) [69] ,NetGAN [70]
Gomez et al. [111], Kusner et al. [112],and Dai et al. [113] 使用CNN和RNN作为编码器和解码器生成分子图的string representation
选择的方法适用于一般的图,迭代地向图中增加节点和边
Deep Generative Model of Graphs (DeepGMG) [65]
假定图的概率是所有可能的节点排列的和,通过一系列决策来生成图,即是否添加节点,添加哪个节点,是否添加一条边,以及哪个节点连接到新节点。
GraphRNN
一个graph-level神经网络(在节点序列中添加一个新节点)和一个edge-level神经网络(生成二进制序列表示新节点与之前生成节点之间的连接)来建模节点和边的生成过程。
Graph Variational Autoencoder (Graph VAE) [67]
将节点和边建模成独立的随机变量。优化变分下界
L ( ϕ , θ ; G ) = E q ϕ ( z ∣ G ) [ − log p θ ( G ∣ z ) ] + K L [ q ϕ ( z ∣ G ) ∥ p ( z ) ] L(\phi, \theta ; G)=E_{q_{\phi}(z \mid G)}\left[-\log p_{\theta}(G \mid \mathbf{z})\right]+K L\left[q_{\phi}(\mathbf{z} \mid G) \| p(\mathbf{z})\right] L(ϕ,θ;G)=Eqϕ(z∣G)[−logpθ(G∣z)]+KL[qϕ(z∣G)∥p(z)]
使用ConvGNN作为编码器,MLP作为解码器,输出生成图的邻接矩阵,节点分布和边分布
Regularized Graph V ariational Autoencoder (RGV AE) [68]
对图变分自编码器施加有效性约束,以规范解码器的输出分布。
Molecular Generative Adversarial Network (MolGAN) [69]
集成convGNNs[114]、GANs[115]和强化学习目标,来生成期望的Graph
MolGAN由一个生成器和一个鉴别器组成,相互竞争以提高生成器的真实性。
生成器试图提出一个伪图及其特征矩阵,而鉴别器则试图从经验数据中区分出伪样本。此外,在鉴别器的基础上,还引入了一个奖励网络,以鼓励生成的图具有一定的属性。
NetGAN [70]
将LSTMs [7]和Wasserstein GANs [116] 结合to generate graphs。然后利用判别器识别fake random walks
Sequential VS global
在许多实际应用中的Graph在Graph structure和Graph input方面都是动态的,Spatial-temporal graph neural networks (STGNNs)用于捕获图的动态特性(同时捕获图的时间和空间依赖),
方法思路:对图的动态输入进行建模,同时假设连接节点之间的依赖关系
实现方法:RNN-based,CNN-based
实现任务: 预测未来节点值或标签,预测时空图形标签
标准的RNN:
H ( t ) = σ ( W X ( t ) + U H ( t − 1 ) + b ) \mathbf{H}^{(t)}=\sigma\left(\mathbf{W} \mathbf{X}^{(t)}+\mathbf{U H}^{(t-1)}+\mathbf{b}\right) H(t)=σ(WX(t)+UH(t−1)+b)
使用图卷积:
H ( t ) = σ ( Gconv ( X ( t ) , A ; W ) + Gconv ( H ( t − 1 ) , A ; U ) + b ) \mathbf{H}^{(t)}=\sigma\left(\operatorname{Gconv}\left(\mathbf{X}^{(t)}, \mathbf{A} ; \mathbf{W}\right)+\operatorname{Gconv}\left(\mathbf{H}^{(t-1)}, \mathbf{A} ; \mathbf{U}\right)+\mathbf{b}\right) H(t)=σ(Gconv(X(t),A;W)+Gconv(H(t−1),A;U)+b)
由于基于RNN的方法存在耗时的迭代传播和梯度爆炸/消失问题
基于CNN的方法:非递归处理,可并行计算、能稳定梯度、低内存需求
网络的输入为: X ∈ R T × n × d \mathcal{X} \in R^{T \times n \times d} X∈RT×n×d,图卷积层聚合在每一个时间步的空间信息( X [ i , : , : ] \mathcal{X}_{[i, :,:]} X[i,:,:]),1D-CNN延时间轴滑动 X [ : , i , : ] \mathcal{X}_{[:, i,:]} X[:,i,:]聚合时间信息。
预先定义的图结构
CGCN [74]
交叉ChebNet和1D-CNN,搭建spatial-temporal块(1D convolutional layer, a graph convolutional layer and another gated 1D convolutional layer ),
ST-GCN [75]
使用一维卷积层和PGC层组成spatial-temporal块
利用时空图的snapshots(快照,相当于动态图的某些时刻的图)学习latent静态图结构
Graph WaveNet [76]
提出自适应邻接矩阵(self-adaptive adjacency matrix)定义:
A a d p = SoftMax ( ReLU ( E 1 E 2 T ) ) \mathbf{A}_{a d p}=\operatorname{SoftMax}\left(\operatorname{ReLU}\left(\mathbf{E}_{1} \mathbf{E}_{2}^{T}\right)\right) Aadp=SoftMax(ReLU(E1E2T))
SoftMax函数是沿着行维计算的, E 1 E_1 E1表示源节点嵌入, E 2 E_2 E2表示带有可学习参数的目标节点嵌入。通过将 E 1 E_1 E1与 E 2 E_2 E2相乘,可以得到源节点与目标节点之间的依赖权值,在没有给出邻接矩阵的情况下表现也相当不错
学习潜在的动态空间依赖关系可以进一步提高模型的精度
GaAN [48] RNN-based
注意力机制学习动态空间依赖关系,在给定当前节点输入的情况下,使用注意力函数更新两个连接节点之间的边权值。
ASTGCN [77] CNN-based
更进一步,空间注意函数和时间注意函数,学习潜在的动态空间依赖和时间依赖
不过学习节点的空间依赖,需要计算每对节点的权重,时间复杂度为 O ( n 2 ) O(n^2) O(n2).
As graph-structured data are ubiquitous, GNNs have a wide variety of applications.
为了更公平的比较,参考:Shchur et al. [131].
scene graph generation, (图像解析为由对象及其语义关系组成的语义图)
论文: [137], [138], [139].
论文: [140]给定场景图,生成真实图,利用文本描述生成场景图,接着生成真实图
point clouds classification, and
[141], [142],[143] 将点云转化为k近邻图或者超点图,利用图卷积研究其拓扑结构
action recognition
识别视频中包含的人类动作,一些解决方案可以检测视频剪辑中人体关节的位置,[73], [75] 使用 STGNNs学习人类的动作模式。
人-物交互[144]、少镜头图像分类[145]、[146]、[147]、语义分割[148]、[149]、视觉推理[150]、问题回答[151]。
在智能交通系统中,预测交通网络中的交通速度、交通量或道路密度是至关重要的。[48],[72],[74]使用STGNNs解决流量预测问题。
出租车需求预测。根据历史出租车需求、位置信息、天气数据和事件特征,从而预测某一时段内某一位置的出租车需求数量。
以项目和用户为节点,通过利用项目与项目、用户与用户、用户与项目以及内容信息之间的关系。关键是给物品对用户重要性进行打分,将其转换为一个edge预测问题。
V an et al. [161] and Ying et al. [162] propose a GAE 。Monti et al. [163] 。
Model depth
由于图卷积将相邻节点的表示法推得更近,理论上,在无限个图卷积层的情况下,所有节点的表示法都将收敛于一个单点。这就提出了一个问题:对于学习图表数据来说,深入学习是否仍然是一个很好的策略。
Scalability trade-off
破坏图的完整性为代价,获得的GNN的可扩展性,无论是抽样还是聚类,模型都会丢失部分图的信息:抽样,一个节点可能会错过它的有影响的邻居;聚类,一个图可能被剥夺了一个独特的结构模式。、
Heterogenity异构性
当前大多数GNN采取同构图,很难将当前的GNNs应用到异构图中,需要开发新的方法来发展解决异构图处理。
动态图
STGNNs可以解决部分的图的动态性,但是很少考虑在动态空间关系下进行图卷积.