在科学研究中,从方法论上来讲,都应“先见森林,再见树木”。当前,人工智能学术研究方兴未艾,技术迅猛发展,可谓万木争荣,日新月异。对于AI从业者来说,在广袤的知识森林中,系统梳理脉络,才能更好地把握趋势。为此,我们精选国内外优秀的综述文章,开辟“综述专栏”,敬请关注。
作者:黄海兵
地址:https://www.zhihu.com/people/huang-hai-bing-27
图神经网络是最近AI领域最热门的话题之一,所以参加了北京邮电大学的博士生纪厚业 @Houye[1] 大神的「异质图神经网络:模型和应用」的主题分享[2]。文中图片源自作者的PPT[3],密码hqtw,写点笔记督促自己学习呀。
01
图神经网络介绍
CNN跟RNN在解决欧式空间数据上取得了很大成功(比如图像跟文本),但是现实世界中很多图结构的数据它们却不能很好的解决(比如社交网络、用户购物网络),然后图神经网络的出现让这些图结构的数据也能得到较好的建模。
数据结构及算法中常用节点V跟边E进行图G结构的表示。G=(V,E),而神经网络的兴起(万物皆可embedded),将图表示转换为低维向量表示了。
图神经网络(Graph Neural Network,GNN):图神经网络是一种直接作用于图结构上的神经网络。
异质图(Heterogeneous Graphs,HetG):包括多种类型的图结构,相应的同质图中只有一种类型的节点和边。异质图说白了就是将不同属性的数据合到一起,加入更多的语义信息数据。下图1给出了一个异质图的示例(左一:演员-电影-导演图 中间图:学术会议图 右一:用户-商品图)。
图1:异构图示例
一般处理步骤:第一步:节点级别聚合,第二步:语意级别聚合。如下图2中,为了得到Zi的表示,我们先获取Zi相邻节点
、
与
的节点聚合表示,然后在融合这些邻居节点的表示得到更为全面的表示。
图2:异质图网络处理方法
爱思考的同学会发现图神经网络跟知识图谱很像,那他们有什么联系呢?
图神经网络跟知识图谱都是以图的形式进行表示,都是为了得到节点的分布式表示。但是他们的原理方法上有点不一样:图神经网络受到word2vec中由中心词预测上下文的启发,图神经网络的表示学习通常有两个基本目标。一是在低维空间中学习到的表征可以重构出原有网络结构。第二个目标是学习到的表征可以有效地支持网络推断。在应用上主要侧重度量图结构信息,为具体任务提供输入信息,比如节点分类、链路预测,这里以DeepWalk为代表。
而知识图谱是受到word2vec能自动发现implicit relation的启发(king-man=quene-women),重点在学习图数据时强调的是节点跟关系的表示,这里以trans系列(TransE,TransR,TransH)为代表。知识图谱在应用更关注于关系建模。但是两中方法也可以互相借鉴的。
这里给出四种典型的图神经网络的结构:
图3:图神经网络分类
GraphSAGE[4]:这个网络是Stanford的SNAP的成果,引用原文
GraphSAGE is a framework for inductive representation learning on large graphs. GraphSAGE is used to generate low-dimensional vector representations for nodes, and is especially useful for graphs that have rich node attribute information.
GCN[5]:图卷积神经网络:我们知道CNN很适合处理图像数据,其实还有很多数据跟图像很相似,比如社交网络。所以想要借鉴CNN的思想对拓扑图进行表示。GCN的本质目的就是用来提取拓扑图的空间特征。这里推荐这个博客[6],讲GCN比较通俗易懂。
GAT[7]: GRAPH ATTENTION NETWORKS,用Attention的思想对图进行表示,这里可以看一下用GAT思想做推荐的一个模型KGAT[8]。
PPNP[9]:personalized propagation of neural predictions
02
介绍几种比较典型的异质图网络
- HAN:19'WWW Heterogeneous Graph Attention Network
如作者 @Houye 所述,HAN也遵循经典的异质图神经网络架构(节点级别聚合与语义级别聚合),为了更好的实现层次聚合函数,HAN利用语义级别注意力和节点级别注意力来同时学习元路径与节点邻居的重要性,,并通过相应地聚合操作得到最终的节点表示。这是一个很自然的想法,因为节点邻居的重要性或者是元路径的重要性肯定是有所差异的。如果能捕获这种差异性应该能带来一定的提升. 模型整体架构如下图4所示:
图4:HAN模型整体架构
节点级别注意力:
图4.1:HAN模型节点聚合
语意级别注意力:
图4.2:HAN模型语意聚合
HAN模型监督训练及预测:
图4.3:HAN模型监督训练与预测
HAN模型在节点分类任务下的实验结果:
图4.4:HAN模型分类实验结果
图4.5:HAN模型聚合实验结果
数据及代码:https://github.com/Jhy1993/HAN
- HetGNN:19'KDD Heterogeneous Graph Neural Network
如作者 @Houye 所述,与HAN不同, 本文的HetGNN没有考虑节点级别的注意力,而是用了LSTM作为来聚合某种关系下的节点邻居并更新节点表示。这里的邻居选择也有所不同:通过random walk with restart来选择固定数量的邻居。
图5:HetGNND模型结构
HetGNN的实验结果
图5.1:HetGNN实验结果
代码及数据:https://github.com/chuxuzhang/KDD2019_HetGNN
03
应用
- Short Text Classification:Heterogeneous Graph Attention Networks for Semi-supervised Short Text Classification(HGAT)
- Recommendation:Metapath-guided Heterogeneous Graph Neural Network for Intent Recommendation(MEIRec)
- Spam Review Detection:GCN-based Anti-Spam (GAS)
04
总结一下
参考文献:
[1] https://www.zhihu.com/people/Jhy1993 [2] https://zhuanlan.zhihu.com/p/103074430 [3] https://pan.baidu.com/s/1YQ7tIU28ms9zzkiyeoD1_Q 提取码:hqtw [4] http://snap.stanford.edu/graphsage/ [5] https://arxiv.org/abs/1609.02907 [6] https://blog.csdn.net/liuweiyuxiang/article/details/98957612 [7] https://arxiv.org/pdf/1710.10903.pdf [8] https://zhuanlan.zhihu.com/p/113241238 [8] https://www.kdd.in.tum.de/ppnp [9] https://zhuanlan.zhihu.com/p/95933043
本文目的在于学术交流,并不代表本公众号赞同其观点或对其内容真实性负责,版权归原作者所有,如有侵权请告知删除。