作者:CHEONG
公众号:AI机器学习与知识图谱
研究方向:自然语言处理与知识图谱
EvolveGCN (AAAI 2020) 分享
EvolveGCN汇报ppt版可通过关注公众号【AI机器学习与知识图谱】,回复关键词:EvolveGCN 来获得,供学习者使用!可添加微信号【17865190919】进学习交流群,加好友时备注来自CSDN。原创不易,转载请告知并注明出处!
一、背景知识
在上一篇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模型的隐藏状态使用上一时刻的参数 W t − 1 l W_{t-1}^l Wt−1l,而GRU的输入当前时刻的节点表征 H t l H_t^l Htl,更新公式为:
因此Node Embedding H t l H_t^l Htl和参数 W t l W_{t}^l Wtl的更新公式为
实现方案二、EvolveGCN-O
EvolveGCN-O版本使用LSTM对参数进行串联学习,LSTM模型的隐藏状态使用上一时刻的参数 W t − 1 l W_{t-1}^l Wt−1l,同时其输入也是用上一时刻参数的 W t − 1 l W_{t-1}^l Wt−1l,更新公式为:
因此Node Embedding H t l H_t^l Htl和参数 W t l W_{t}^l Wtl的更新公式为
EvolveGCN-H和EvolveGCN-O版本对比
1、串联参数使用的RNN模型不同,EvolveGCN-H使用的是GRU,而EvolveGCN-O使用的是LSTM;
2、因为EvolveGCN-O在参数更新时没有使用 H t l H_t^l Htl,因此node feature是非常有用时例如人工处理得到的,那使用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