EvolveGCN (AAAI 2020) 分享
EvolveGCN汇报ppt版可通过关注公众号后回复关键词:EvolveGCN 来获得,供学习者使用!
背景知识
在上一篇CompGCN中讲解了异质知识图谱在处理复杂实体间多关系类型的方案。本篇分享知识图谱落地时另一重要场景:动态时序知识图谱,下面先给出动态时序知识图谱的基本概念,方便还不熟悉的同学有一个更好的理解。
首先知识图谱本质上就是一个语义网络,由节点Node和边Edge构成,每个Node表示现实世界中存在的实体Entity,而每条边表示实体与实体之间的关系。简单来说,知识图谱就是把所有不同种类的信息连接在一起而得到的关系网络,比如社交网络。由于这种关系网络会随着时间推移,实体以及实体间的关系会不断变化,为了全面获取知识,搭建动态知识图谱,在知识图谱数据中加入时间维度,利用时序分析技术和图相似性技术,分析图谱结构随时间的变化和趋势,从而掌握到关键信息。
上图展示了一下动态图谱,节点和边的颜色代表不同种类,可以看出图谱从时刻t到时刻t 1,图谱的结构有明显变化。比如金融动态知识图谱,学习到图谱间的时序信息便显得十分重要,本篇便介绍AAAI 2020的一篇解决动态图谱的模型EvolveGCN,EvolveGCN思路较为创新但不是目前SOTA的方案,之后会陆续分享TGAT此类解决动态时序图谱的方案。
Motivation
在介绍EvolveGCN之前,对于动态时序图谱,试想一下:我们是不是可以对每个时刻t的图谱用GCN进行建模学习得到Node Embedding,再使用RNN将不同时刻的Node Embedding串联起来学习动态特性,这貌似是一种较为直接简单的方案。但仔细思考,此方案会要求每个时刻node都必须存在,但在有些场景下,每个时刻的Node存在不同。因此EvolveGCN思路便是用RNN去演化每个时刻GCN模型的参数,而不是用RNN串联Node Embedding。
Method
下图便是EvolveGCN模型图,为了实现动态学习主要注意以下三点:
1、每个时间片单独学习一个GCN,每个GCN输入不同体现在图谱的邻接矩阵不同,但在代码实现时必须要求每个时刻的节点是保持一致的,而节点之间的关系存在变动;
2、为了考虑动态图谱联系,用RNN将每个时间片GCN模型参数串起来进行序列学习
3、RNN循环网络采用两种:GRU,LSTM
实现方案一:EvolveGCN-H
EvolveGCN-H版本使用GRU对参数进行串联学习,GUR模型的隐藏状态使用上一时刻的参数
,而GRU的输入当前时刻的节点表征
,更新公式为:
因此Node Embedding
和参数
的更新公式为:
实现方案二、EvolveGCN-O
EvolveGCN-O版本使用LSTM对参数进行串联学习,LSTM模型的隐藏状态使用上一时刻的参数
,同时其输入也是用上一时刻参数的
,更新公式为:
因此Node Embedding
和参数
的更新公式为:
EvolveGCN-H和EvolveGCN-O版本对比
1、串联参数使用的RNN模型不同,EvolveGCN-H使用的是GRU,而EvolveGCN-O使用的是LSTM;2、因为EvolveGCN-O在参数更新时没有使用,因此nodefeature是非常有用时例如人工处理得到的,那使用EvolveGCN-H版本,如果Node feature在图谱结构中不是很重要便可采用EvolveGCN-O版本。
Conclusion
1、实验结果(Link Prediction)
(1)对于数据集SBM、UCI和AS,至少有一个版本的EvolveGCN可以获得最佳结果;
(2)对于数据集BC-OTC和BC-Alpha,EvolveGCN优于GCN和GCN-GRU,但低于DynGEM和Dyngraph2vec