目录
最近图神经网络有点火。。先mark一下:
github链接:https://github.com/thunlp/GNNPapers
综述Graph Neural Networks: A Review of Methods and Applications
又一篇综述:图神经网络概述第三弹:来自IEEE Fellow的GNN综述
又一个文献合集https://github.com/DeepGraphLearning/LiteratureDL4Graph
图是一种数据结构,它对一组对象 (节点) 及其关系 (边) 进行建模。图神经网络(GNN)是一类基于深度学习的处理图域信息的方法。由于其较好的性能和可解释性,GNN 最近已成为一种广泛应用的图分析方法。
GNN的第一个动机源于卷积神经网络(CNN):CNN只能在规则的Euclidean数据上运行,如图像(2维网格)和文本(1维序列)。如何将CNN应用于图结构这一非欧几里德空间,成为GNN模型重点解决的问题。
GNN的另一个动机来自图嵌入(Graph Embedding),它学习图中节点、边或子图的低维向量空间表示。DeepWalk、node2vec、LINE、SDNE等方法在网络表示学习领域取得了很大的成功。然而,这些方法在计算上较为复杂并且在大规模上的图上并不是最优的,GNN旨在解决这些问题。
2009年的第一篇GNN的文章The graph neural network model。GNN的target是要学习包括了每个节点的邻居的信息的state embedding \(h_v\in R^s\)
。这里的state embedding \(h_v\)
是节点\(v\)
的一个\(s\)
维的向量,能用来产生输出\(o_v\)
,例如节点的label。\(f\)
是一个带有参数的函数,称为local transition function,被所有的节点共享,能根据输入的邻居来更新节点状态。\(g\)
是local output function,表示如何产生output。所以:
\[
\begin{matrix}
h_v=f(x_v,x_{co[v]},h_{ne[v]},x_{ne[v]})\\
o_v=g(h_v,x_v)\\
\end{matrix}
\]
其中,
\(x_v\)
:节点\(v\)
的特征。\(x_{co[v]}\)
:节点\(v\)
的边的特征。\(h_{ne[v]}\)
:节点\(v\)
的邻居节点的state。\(x_{ne[v]}\)
:节点\(v\)
的邻居节点的特征。把所有状态、输出、特征、所有节点的特征stack到一起,就有了向量\(X\)
、\(O\)
、\(X\)
和\(X_N\)
。所以有:
\[
\begin{matrix}
H=F(H,X)\\
O=G(H,X_N)\\
\end{matrix}
\]
使用如下方式对状态进行迭代:
\[
H^{t+1}=F(H^t,X)
\]
其中的\(f\)
和\(g\)
都可以用神经网络来表示。loss如下:
\[
loss=\sum ^p_{i=1}(t_i-o_i)
\]
有向图。如图中的ADGPM【Rethinking knowledge graph propagation for zero-shot learning】,有两种权重矩阵\(W_p\)
和\(W_c\)
\[H^t=\sigma(D^{-1}_pA_p\sigma(D^{-1}_cA_cH^{t-1}W_c)W_p)\]
其中的\(D^{-1}_pA_p\)
和\(D^{-1}_cA_c\)
分别是parent和children的normalized adjacency matrix。
异构图。如图中的GraphInception。
边带有信息的图,如图中的G2S以及R-GCN。
propagation step和output step这两部是很重要的,主要分为以下类别:
信息传递函数主要包括信息收集(agggregation)和节点信息更新(update)两个部分,公式见:
譬如GraphSAGE从附近的邻居收集信息,并且能够应用于inductive learning领域;FastGCN使用了importance sampling的方法,使用采样替代使用节点所有的邻居信息,加快了训练过程。
图神经网络通用框架主要包括MPNN(Message Passing Neural Network)、NLNN(Non-local Neural Network)以及 Deepmind 的 GN(Graph Network)。
MPNN将模型总结为信息传递阶段和节点更新阶段,概括了多种图神经网络和图卷积神经网络方法。
NLNN总结了很多种基于自注意力机制的方法。
GN提出了更加通用的模型,能够总结概括几乎所有文中提到的框架,并且拥有更加灵活的表示能力、易于配置的块内结构以及易于组合的多模块架构。
应用见:
GNN 被广泛应用在社交网络、推荐系统、物理系统、化学分子预测、知识图谱等领域。
在图像和文本中的应用
图生成模型以及使用GNN来解决组合优化问题的场景。