华南理工深度学习与神经网络期末考试_【深度学习】图神经网络与图卷积网络...

32132d2a26f2854cfcb4878f254d62a3.png

图神经网络与图卷积网络

本文主要参考了:

Graph Neural Networks: A Review of Methods and Applications​arxiv.org Deep Learning on Graphs: A Survey​arxiv.org

图神经网络(graph neural network,GNN)

CNN只适用于张量数据,例如二维图像或一维文本序列。然而,有许多数据及其关系是难以简单的用张量表示的,而是需要借助另一种常见的数据结构,即由顶点(vertex)和边(edge)表示的图。然而,像是卷积或者池化这样对于张量数据十分自然的操作,对于图结构却是难以直接定义的,这就是图网络所研究的主要问题:如何对图进行学习?

fe97886011636f641fd73da04be25fa6.png

要想对图进行学习,首先需要对图的顶点数据、边数据和子图数据进行降维,这就是图嵌入(graph embedding)。例如,DeepWalk[1]是一种基本的基于表示学习的图嵌入方法,它将SkipGram模型[2]与随机游走相结合。但是,这类方法也有计算量大和泛化能力弱等缺点。当增加一个新的节点时,DeepWalk需要重新进行训练,因而也就不适用于动态图。

e777e7b5134cac244336f8f1dbf0f083.png
Notations

[3]提出了一个基本的GNN模型。GNN的目标是学习一个包含每个顶点v的邻接信息的嵌入状态hv,

其中xv,xco[v]表示v及其边的特征,hne[v],xne[v]表示v的邻接的状态和特征。输出

拼接后写成矩阵形式:

,其中F和G分别表示转移函数和输出函数。根据巴拿赫不动点定理可以迭代解出第t+1次迭代后的H:
,上式对任意H0收敛。

假设目标信息为tv,则损失函数为 (回归问题中的MSE)

,其中p为有监督顶点的数量,或分类问题中的cross entropy,即loss=-sum_i^p t_i log o_i

64e6aa9add86845ffc9dcbf6bd749872.png
图网络,按照无监督方法和半监督方法分类

98231fe469faea1ceae437d1e288f1a2.png
图网络:按图的类型、训练方法或误差传播方法分类

图卷积网络(graph convolutional network,GCN)

传播过程对于图网络的训练是至关重要的,目前主流的方法是将卷积应用到图结构上,也就是图卷积网络(GCN),此外,还有将注意力机制(例如:graph attention network,GAT[7])、门机制(例如:gated graph neural network,GGNN[6])和残差机制(例如:highway-GCN[8])引入图网络的方法。

CNN的平移不变性在非欧结构数据上不适用,我们希望在拓扑图上提取空间特征来进行学习,GCN[37]主要工作是,引入可以优化的卷积参数。

图卷积网络的方法可以分为谱方法和非谱方法两大类。

回顾:CNN中的卷积

  • CNN中的离散卷积:共享参数的过滤器
  • CNN中的卷积操作:通过计算中心像素点以及相邻像素点的加权和构成feature map;加加权系数=卷积核的权重系数
  • CNN中的卷积目的:空间特征的提取
  • 确定卷积核的系数:随机化初值,训练中根据误差函数loss(例如回归问题中的MSE或分类问题中的cross entropy),通过反向传播+梯度下降进行迭代优化。

谱方法

在谱方法中,图卷积在频谱域上进行定义,它基于对图的拉普拉斯矩阵进行特征值分解的操作。

在图数据结构中常需要用到拉普拉斯矩阵,它的基本形式是

其中D表示度矩阵(degree matrix),即以每个顶点的度为对角元的对角矩阵,所谓度(degree)即由该点发出的边之数量。 A表示邻接矩阵(adjacency matrix)。

为什么拉普拉斯矩阵会这样定义?我们知道,例如,对于二元函数

,其拉普拉斯算子定义为
,将其离散化,例如,对于一维信号,拉普拉斯算子

类似地对于二维信号(图像、矩阵)

写成卷积核形式为

如果把

看做一个图的节点
的映射,那么
分别与
相邻,这样,拉普拉斯算子就可以用邻接矩阵和度矩阵的差来表达。在图论中,我们习惯用度矩阵减去邻接矩阵(这保证了拉普拉斯矩阵是半正定的),即

正则化的拉普拉斯矩阵(Symmetric normalized Laplacian)

,即
,这样就有

定义滤波器gθ=diag(θ),这个滤波器与输入信号x进行卷积,将其应用到图的拉普拉斯矩阵上,写作

根据[4],

可以通过展开为切比雪夫多项式Tk(x)来估计到k阶。

其中

是L的最大特征值。切比雪夫多项式定义为

对于(1)(2)式,基本的GCN假设

,且将切比雪夫多项式仅展开到一阶(k=1),那么

不妨令

,则
,使用重正则化技巧,也就是给图加上自环,这样新的邻接矩阵
,度矩阵
,且
,即
,加入激活函数后,也可以写成

Fourier Transform in Graph

傅里叶变换

将时域信号变换到频域,在时域信号中的卷积运算,变为频域信号中的相乘。对于图而言,与二维矩阵数据不同,其卷积是难以直接进行离散化的定义的,所以要将空间域(spatial domain)的卷积运算变换为频谱域(spectral domain)的矩阵相乘。因为
,即
是拉普拉斯算子的特征函数,我们可以发现如下对应关系:
  • 拉普拉斯矩阵 VS 离散拉普拉斯算子
  • 拉普拉斯矩阵的特征向量 VS 拉普拉斯算子的特征函数

所以,Graph上的傅里叶变换:

  • i为第i个顶点
  • λl为第l个特征值;ul为
    中U矩阵的第l个特征向量
  • f为待变换函数,
    为其对应的傅里叶变换,与顶点对应

而傅里叶逆变换

卷积核gθ(一个滤波器)的傅里叶变换是一个对角矩阵

,与信号x做卷积,x经过傅里叶变换变为
,与gθ相乘后再做傅里叶逆变换,即

非谱方法:GraphSAGE

谱方法(spectrum method)依赖于对拉普拉斯矩阵进行特征值分析,这就削弱了泛化能力。而非谱方法(空间域方法,spatial method)直接在图上定义卷积,其主要挑战是既要对不同大小的邻域定义卷积,又要保证CNN的局部不变性,最常用的方法是GraphSAGE(graph sampling and aggregating)[5],即对顶点的局部邻域进行采样和聚合来生成embedding.

通过一致性采样,[5]利用的是一个固定大小的邻接信息集合,并提出了三种融合器:

  • 均值融合:The mean aggregator simply computes the element-wise mean of neighbors' hidden states.
    ,它也可以看做一种残差连接。
  • LSTM融合:通过交换节点邻域,[5]引入LSTM操作这一无序集合。
  • 池化融合:隐藏状态通过全连接层后,进行max-pooling操作。

在无监督情形下,损失函数

GraphSAGE用可学习的融合函数代替了全图的拉普拉斯矩阵,既能够更好地体现图的信息,又能够加快运算速度。算法首先融合邻域embedding,拼接目标节点的embedding,然后传播到下一层。通过使用邻域采样,GraphSAGE抑制了感受野的增长。

如果我们对(4)式进行展开,就会发现,这一运算实际上也就是一个对邻域节点进行聚合、加和的过程。详细论述参见:

蝈蝈:GraphSAGE:我寻思GCN也没我牛逼​zhuanlan.zhihu.com
31142c6e81aa75c1d6b96a3f73648d9a.png

而GraphSAGE则是在此基础上扩宽了聚合器的种类,例如LSTM,max-pooling等。

FastGCN[9]进一步改进了采样算法,它不再对每一个顶点进行采样,而是对每一层的感受野进行重要性采样,重要性因子

图网络相关的库

在Python中,networkx是最常用的用于研究图和复杂网络的库。基于networkx和深度学习框架PyTorch,两个与图神经网络相关的库,即DGL(deep graph library)与PyG(pytorch geometric),已经得到广泛使用。这两个库包含了许多图神经网络中的常用算法,并为研究者进行进一步开发和改进提供了很大便利。

NetworkX - NetworkX​networkx.github.io PyTorch​pytorch.org
530f9626e70692c92ec225e095238560.png
Deep Graph Library​www.dgl.ai PyTorch Geometric Documentation​pytorch-geometric.readthedocs.io

图监督学习的统一分析框架

消息传递网络(message passing neural network,MPNN)可以作为分析图学习的一个统一框架。传播过程可以视作一个消息传递的过程,分为融合与更新两步

其中Mt, Ut为时变的函数,接着,读出(readout)过程给出一个输出向量,例如分类问题中的softmax

例如,基本的GCN

GraphSAGE

870282a63793ca993534153b830ac6c3.png

在DGL中,一个GCN层可以这样定义(完整代码参见:DGL at a Glance - DGL 0.4 documentation)

# Define the message & reduce function

也可以写为(完整代码参见:Graph Convolutional Network)

gcn_msg 

GraphSAGE可以写为(本文仅给出聚合器为mean与pooling时的情形,完整代码参见:https://github.com/dmlc/dgl/blob/master/python/dgl/nn/pytorch/conv.py)

class 

扩展

图自编码器(graph auto-encoder,GAE)

图自编码器[32]是将稀疏自编码器应用于图网络中的方法,是利用图进行无监督学习的典型方法,设P为传递矩阵(transition matrix)

,那么损失函数为

其过程是,首先用GCN对图节点进行编码,而后再用非线性环节进行解码。

Structure Deep Network Embedding (SDNE)[33]在以上loss的基础上加入了正则项

其中b为超参数。

图对抗训练

[35]将生成对抗网络应用于GAE中,其中D表示discriminator,G可以看做generator:

图循环网络

RMGCNN(recurrent multi-agent graph convolutional neural network)[34]将LSTM与GCN这两种结构相结合,解决长期依赖问题。

图强化学习

Graph convolutional policy network (GCPN)[36]将图的生成看做一个马尔可夫决策过程,将生成模型看做智能体的一个操作,将智能体的行动看做链路预测问题,使用GCN来学习节点的表示。

应用

  • 图像分类:[10-14]
  • 目标检测:[15,16]
  • 点云分割:[17-19]
  • 文本分类:[20-21]
  • 知识图谱:[22]
  • 机器翻译:[23,24]
  • 序列标记:[25]
  • 关系抽取:[26-28]
  • 事件抽取:[29,30]
  • 社交网络:[31]
  • ......

Reference

[1] B. Perozzi, R. Al-Rfou, and S. Skiena, “Deepwalk: Online learning of social representations,” in SIGKDD 2014. ACM, 2014, pp. 701–710

[2] T. Mikolov, K. Chen, G. Corrado, and J. Dean, “Efficient estimation of word representations in vector space,” arXiv preprint arXiv:1301.3781, 2013.

[3] F. Scarselli, M. Gori, A. C. Tsoi, M. Hagenbuchner, and G. Monfardini, “The graph neural network model,” IEEE TNN 2009, vol. 20, no. 1, pp. 61–80, 2009.

[4] D. K. Hammond, P. Vandergheynst, and R. Gribonval, “Wavelets on graphs via spectral graph theory,” Applied and Computational Harmonic Analysis, vol. 30, no. 2, pp. 129–150, 2011.

[5] W. L. Hamilton, Z. Ying, and J. Leskovec, “Inductive representation learning on large graphs,” NIPS 2017, pp. 1024–1034, 2017

[6] Y. Li, D. Tarlow, M. Brockschmidt, and R. S. Zemel, “Gated graph sequence neural networks,” arXiv: Learning, 2016.

[7] P. Velickovic, G. Cucurull, A. Casanova, A. Romero, P. Lio, and Y. Bengio, “Graph attention networks,” ICLR 2018, 2018.

[8] J. G. Zilly, R. K. Srivastava, J. Koutnik, and J. Schmidhuber,“Recurrent highway networks.” ICML 2016, pp. 4189–4198, 2016.

[9] J. Chen, T. Ma, and C. Xiao, “Fastgcn: fast learning with graph convolutional networks via importance sampling,” arXiv preprint arXiv:1801.10247, 2018.

[10] M. Kampffmeyer, Y. Chen, X. Liang, H. Wang, Y. Zhang, and E. P.Xing, “Rethinking knowledge graph propagation for zero-shot learning,” arXiv preprint arXiv:1805.11724, 2018.

[11] X. Wang, Y. Ye, and A. Gupta, “Zero-shot recognition via semantic embeddings and knowledge graphs,” in CVPR 2018, 2018, pp.6857–6866.

[12] V. Garcia and J. Bruna, “Few-shot learning with graph neural networks,” arXiv preprint arXiv:1711.04043, 2017.

[13] C.-W. Lee, W. Fang, C.-K. Yeh, and Y.-C. F. Wang, “Multi-label zero-shot learning with structured knowledge graphs,” arXiv preprint arXiv:1711.06526, 2017.

[14] K. Marino, R. Salakhutdinov, and A. Gupta, “The more youknow: Using knowledge graphs for image classification,” arXiv preprint arXiv:1612.04844, 2016.

[15] H. Hu, J. Gu, Z. Zhang, J. Dai, and Y. Wei, “Relation networks for object detection,” in CVPR 2018, vol. 2, no. 3, 2018.

[16] J. Gu, H. Hu, L. Wang, Y. Wei, and J. Dai, “Learning region features for object detection,” arXiv preprint arXiv:1803.07066,2018

[17] L. Landrieu and M. Simonovsky, “Large-scale point cloud semantic segmentation with superpoint graphs,” arXiv preprint arXiv:1711.09869, 2017.

[18] Y. Wang, Y. Sun, Z. Liu, S. E. Sarma, M. M. Bronstein, and J. M.Solomon, “Dynamic graph cnn for learning on point clouds,” arXiv preprint arXiv:1801.07829, 2018.

[19] X. Qi, R. Liao, J. Jia, S. Fidler, and R. Urtasun, “3d graph neural networks for rgbd semantic segmentation,” in CVPR 2017, 2017,pp. 5199–5208.

[20] H. Peng, J. Li, Y. He, Y. Liu, M. Bao, L. Wang, Y. Song, and Q. Yang, “Large-scale hierarchical text classification with recursively regularized deep graph-cnn,” in WWW 2018, 2018, pp.1063–1072.

[21] L. Yao, C. Mao, and Y. Luo,“Graph convolutional networks for text classification,” arXiv preprint arXiv:1809.05679, 2018.

[22] Z. Wang, Q. Lv, X. Lan, and Y. Zhang, “Cross-lingual knowledge graph alignment via graph convolutional networks,” in EMNLP 2018, 2018, pp. 349–357.

[23] J. Bastings, I. Titov, W. Aziz, D. Marcheggiani, and K. Simaan, “Graph convolutional encoders for syntax-aware neural machine translation,” EMNLP 2017, pp. 1957–1967, 2017.

[24] D. Marcheggiani, J. Bastings, and I. Titov, “Exploiting semantics in neural machine translation with graph convolutional networks,” arXiv preprint arXiv:1804.08313, 2018.

[25] D. Marcheggiani and I. Titov, “Encoding sentences with graph convolutional networks for semantic role labeling,” in EMNLP 2017, September 2017, pp. 1506–1515

[26] M. Miwa and M. Bansal, “End-to-end relation extraction using lstms on sequences and tree structures,” arXiv preprint arXiv:1601.00770, 2016.

[27] L. Song, Y. Zhang, Z. Wang, and D. Gildea, “N-ary relation extraction using graph state lstm,” arXiv preprint arXiv:1808.09101,2018.

[28] Y. Zhang, P. Qi, and C. D. Manning, “Graph convolution over pruned dependency trees improves relation extraction,” arXiv preprint arXiv:1809.10185, 2018.

[29] T. H. Nguyen and R. Grishman, “Graph convolutional networks with argument-aware pooling for event detection,” 2018.

[30] X. Liu, Z. Luo, and H. Huang, “Jointly multiple events extraction via attention-based graph information aggregation,” arXiv preprint arXiv:1809.09078, 2018

[31] Z. Wang, T. Chen, J. Ren, W. Yu, H. Cheng, and L. Lin, “Deep reasoning with knowledge graph for social relationship understanding,” arXiv preprint arXiv:1807.00504, 2018

[32] F. Tian, B. Gao, Q. Cui, E. Chen, and T.-Y. Liu, “Learning deep representations for graph clustering.” in Proceedings of the TwentyEighth AAAI Conference on Artificial Intelligence, 2014.

[33] J. Tang, M. Qu, M. Wang, M. Zhang, J. Yan, and Q. Mei, “Line: Large-scale information network embedding,” in Proceedings of the 24th International Conference on World Wide Web. International World Wide Web Conferences Steering Committee, 2015, pp. 1067–1077.

[34] F. Monti, M. Bronstein, and X. Bresson, “Geometric matrix completion with recurrent multi-graph neural networks,” in Advances in Neural Information Processing Systems, 2017, pp. 3697–3707.

[35] S. Pan, R. Hu, G. Long, J. Jiang, L. Yao, and C. Zhang, “Adversarially regularized graph autoencoder for graph embedding.” in Proceedings of the Twenty-Seventh International Joint Conference on Artificial Intelligence, 2018, pp. 2609–2615.

[36] J. You, B. Liu, R. Ying, V. Pande, and J. Leskovec, “Graph convolutional policy network for goal-directed molecular graph generation,” in Advances in Neural Information Processing Systems, 2018.

[37] T.Kipf, M.Welling, "Semi-supervised classification with graph convolution network", in ICLR 2017

更多图网络领域相关论文可以参见清华大学NLP实验室和加拿大MILA实验室的图网络研究组在GitHub上的repository.

thunlp/GNNPapers​github.com
95cd004d83cc23a14478d26ee65f6649.png
DeepGraphLearning/LiteratureDL4Graph​github.com
a9887371d00063af77ce9da045ef6a77.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值