林栋,李永强,仇翔,冯远静,谢碧峰
(1.浙江工业大学 信息工程学院,浙江 杭州 310012;2.杭州峰景科技有限公司,浙江 杭州 310000)
知识图谱是广泛用于现实世界事实知识表示的资源,它支持信息检索领域的无数知识驱动任务[1].知识图谱是图结构的知识库以及储存事实信息的普遍方法构建三元组 (h,r,t) ,其中h、r、t分别为头实体、关系和尾实体.头实体和尾实体构成知识图谱中的节点,头、尾实体间的关系则用来连接对应的节点.知识图谱往往是不完整的,其中部分知识是缺失的,因此提出利用知识图谱来推理缺失的知识.知识图谱推理是根据已知三元组中的2 个元素,推理出剩下的元素,这样可以有效填充知识图谱不足的信息,大多数知识图模型都假设底层图为静态.在现实世界中,事实和知识可以随着时间的推移而改变.例如(奥巴马,访问,中国)这个三元组因为没有具体的时间信息,无法确定奥巴马哪一次访问中国.为了适应时间变化的多关系数据,引入动态知识图谱,它通过在静态三元组增加时间戳 τ 以构成四元组(h,r,t,τ)[2],如通过(奥巴马,访问,中国,2009)这一四元组便可以清晰的知道是在2009 年奥巴马访问了中国.
动态知识图谱推理是根据过去的事件来推断未来的事件.本研究重点专注于预测动态知识图谱,通过预测动态知识图谱中缺失的知识可以改善大量的下游应用程序,如金融中的决策支持.在动态知识图谱中存在大量的不随时间变化的静态知识信息,提取这些信息特征对动态知识图谱推理有很大的帮助.现实中大量历史事实是重复发生的,如金融危机、外交事件,然而目前的方法都无法对重复历史进行筛选以及对历史重复度大的时序知识进行更好的预测,这使得它们不太适合用于许多现实世界的应用程序.
为了更好地利用静态事实和重复历史事实,本研究结合静态事实,获取动态知识图谱中事实的静态信息,挖掘实体之间更深层次的联系.结合重复历史事实,通过历史词表对历史事实进行筛选,对历史中未出现的事实做出历史惩罚,提高重复事实的预测概率.在2 个公开数据集上进行动态知识图谱推理,验证所提方法在动态知识图谱推理准确性上的表现.
目前静态知识图谱推理已有深入的研究.最初Bordes 等[3]提出先将关系视为嵌入空间中实体之间转换的静态知识图谱推理,随后设计几个变体.Wang 等[4]在一个关系特定的超平面上添加投影.Dai 等[5]将实体映射到较低级别的关系特定空间,但是基于翻译方法不能建立对称模型.Trouillon 等[6]通过学习一个双线性目标解决了这个问题.Socher 等[7]则将关系视为复杂向量空间中的旋转.Schlichtkrull 等[8]将事实放入图中,通过图卷积神经网络(graph convolution network, GCN)[9]建模多种关系类型.传统知识图谱只有静态的事实,缺乏时间信息.随着数据的快速发展,现在的知识图谱展现出复杂的时间动态,静态知识图谱无法满足现实要求,因此需要新的方法为这种事实进行时序建模.
近年来,通过在知识图谱中加入时间信息来构成动态知识图谱,这已经成为知识图谱推理的重要分支.Leblay 等[10]把时间戳与实体和关系一样作为嵌入,同时改变TransE[3]的评分.Dasgupta 等[11]将实体和关系的表征映射到时间戳的超平面上.上述方法没有考虑到现实中的时间也会影响实体的状态以及对应关系.为了改善时间范围推理,Trivedi 等[12]通过深度进化知识网络,研究实体在动态知识图谱中的演化以及它们演化之后的关系.为了捕捉实体间的交互,Jin 等[13]基于邻居聚合器和循环神经网络(recurrent neural network,RNN)来构建包含一跳事实的子图序列,使用逻辑规则进行动态知识图谱推理.Li 等[14]使用长度感知卷积神经网络,通过易于学习的课程学习策略来处理不同长度的进化模式.Li 等[15]通过对动态知识图谱的循环建模来学习每个时间戳上实体和关系的进化表示,并利用静态实体嵌入来限制动态知识图谱推理.Zhu 等[16]通过复制模式和生成模式,分别对重复出现历史事实和未曾出现的历史事实进行学习和预测.重复历史事实过于繁琐且绝对,无法很好地利用知识图谱中的静态事实,因此Zhu 等[16]提出结合静态事实和重复历史事实的动态知识图谱网络(static-historical network,Sta-HisNet)进行推理.Li 等[15]只是将静态事实作为动态知识图谱的限制.Sta-HisNet 模型通过挖掘知识图谱中的静态事实信息,协助实现对动态知识图谱的推理,同时改进历史模式,对重复历史事实进行更好的学习和利用.
为了更好地利用历史事实对动态知识图谱推理的帮助,提出结合静态事实和重复历史事实的动态知识图谱.如图1 所示,从静态知识图谱中获取不随时间变化的静态事实,通过关系图卷积神经网络(relation graph convolution network, RGCN)[8]提取实体的内在特征并得到静态嵌入.从动态知识图谱中抽取事件四元组,并且生成基于时间序列的实体嵌入、关系嵌入和时间嵌入,然后将4 个嵌入拼接后经过历史模式来训练模型,其中通过二维卷积提取嵌入特征,再通过长短期记忆网络预测未来事实特征;通过历史惩罚降低历史中没有出现过事实的预测得分,最后利用实体预测完成动态知识图谱推理,得到实体预测概率.
动态知识图谱在传统的知识图谱上添加了时间信息.在动态知识图谱中,每个事实是在时间戳 τ 中获得头实体、尾实体和其对应的关系.将动态知识图谱中的事实定义成四元组的形式: (h,r,t,τ).一般动态知识图谱的推理基于四元组的形式,在已知时间戳下,给定任意3 个元素推测另一个元素.根据动态知识图谱推理方法,分为实体预测和关系预测.其中实体预测又可分为头实体预测和尾实体预测,尾实体预测是在已知h、r和τ 的情况下来预测t;而头实体预测是在已知r、t和τ 的情况下来预测h.
由于实体随着时间的变化,含义将会发生变化,同时实体也有着时不变的特性.为了同时满足实体嵌入的时变和时不变特征,本研究的实体嵌入hτ计算式为
式中:e为时常嵌入,它捕获时常特征和对动态知识图谱的全局依赖性;O为e的嵌入维度; || 为拼接操作; Φ(τ) 为捕获实体之间的时间依赖性的时间编码,采用正弦的形式使得实体与每个时间戳相结合,可以更好地让实体嵌入学习到时间信息;D为 Φ(τ) 的嵌入维度.Φ(τ) 的表达式为
式中:d为时间序列长度, ω 和φ为可学习的参数.
实体中包含有大量的静态属性,将这些属性组成一个静态知识图谱,可以看作是动态知识图谱的背景知识,有助于模型学习到更准确的实体信息.在ICEWS18[17]数据集中的实体有(公民)菲律宾、(政府)菲律宾、(城市)菲律宾、菲律宾、(公民)美国、(公民)俄罗斯、公民,他们之间存在一定的关系,可以构成这样的事实三元组——((公民)菲律宾,隶属,菲律宾)、((政府)菲律宾,隶属,菲律宾)、((城市)菲律宾,隶属,菲律宾)、((公民)菲律宾,是,公民)、((公民)美国,是,公民)、((公民)俄罗斯,是,公民),如图2 所示.
图2 ICEWS18 数据集的部分静态知识图谱Fig.2 Partial static knowledge graph of ICEWS18 data set
若直接将公民(菲律宾)视为一个嵌入,则会丢失其与公民和菲律宾之间的联系,因此通过挖掘实体间隐藏的联系构成新的静态事实,从而构建成新的静态知识图谱.由于获得的静态知识图谱是多关系图,R-GCN[8]采用一层没有自循环的R-GCN 来获得静态知识图谱中实体的静态嵌入,这样可以在建立多关系图时,不需要额外的关系嵌入.R-GCN 的更新规则定义为
式中:hs、hj分别为输出和随机初始化的输入嵌入矩阵;ci为归一化常数,是与实体i连接的实体数量;N为所有实体的数量;Wr为关系r的可训练矩阵; σ(·) 为ReLu 激活函数.
在特定的数据集中有许多历史事实是重复的,一个模型可能会从历史上出现的已知事实中学到很多东西.历史模式旨在识别重复的事实,并通过惩罚历史上未知的事实来预测未来的事实.历史模式的流程如下:传统的一维卷积可以提取的特征信息十分有限,因此采用卷积的方式提取特征.为了更好地提取实体、关系、时间和静态嵌入特征,采用基于卷积神经网络嵌入(convolution embedding, ConvE)[18]模型中的二维卷积方法,利用长短期记忆(long short-term memory,LSTM)[19]网络捕获时序信息,经过一层神经网络改变维度得到实体预测结果.通过历史事实构建历史词表,利用历史词表筛选出历史中未出现过的事实并对其进行惩罚,经过softmax 函数得到历史模式的最终预测概率,流程如图3 所示.
图3 Sta-HisNet 的历史模式流程图Fig.3 Historical pattern flow chart for Sta-HisNet
假设给定头实体、关系、时间戳和预测尾实体 (h,r,?,τ) ,将基于时间序列的头实体嵌入、关系嵌入、时间戳嵌入和静态嵌入丢弃部分信息防止过拟合,再重塑成三维矩阵mτ,然后将矩阵做卷积核为k×k的二维卷积得到特征图Mτ,将其二维卷积后的特征图重塑成一维向量可得
式中: Re 为把嵌入形状改成1 ×m×n三维矩阵的运算符号; concat 为拼接操作;mτ为重塑后的三维矩阵,mτ∈R4×m×n; C onv2d 为二维卷积函数,输入的通道为1;k为卷积核大小;f为卷积核个数;Mτ为卷积后的特征图,Mτ∈Rf×i×j, 其中i=4m-k+1,j=n-k+1; R e′为把特征图Mτ的形状改为向量的运算符号;Vτ为重塑后的特征向量,Vτ∈Rl;l为Vτ特征向量的长度,l=f×i×j.
将向量Vτ送入长短期记忆网络中捕获时间序列信息得到Fτ,随后经过一层神经网络输出长度为实体总个数的向量:
式中:Fτ为经过长短期记忆网络训练后的时序特征向量,Sτ为 尾实体得分,Wτ和bτ均为可训练参数.
为了惩罚一些没有与历史中的头实体和关系形成已知事实的尾实体,通过历史词表判断历史中是否存在过三元组,如果历史中存在过三元组,历史词表向量为.最后用softmax 函数来估计历史词表中预测尾实体的概率.
式中:Hτ为Mτ经过历史词表惩罚后,在不感兴趣的尾实体上赋予的较小数,Hτ∈RN; α 为控制惩罚力度的超参数; abs 为绝对值函数;Pτ为历史模式的预测概率,Pτ∈RN.
实体预测的损失函数使用多分类的交叉熵损失函数来表示.尾实体预测损失函数为
式中:T为所有的时间戳;D为全部训练集的四元组;P(yn|h,r,τ) 为当第n个被预测尾实体为正确尾实体tn,τ时,被预测为尾实体的概率.
利用实体预测对Sta-HisNet 进行评估,选用ConvE[17]、RE-NET[13]、CEN[14]、RE-GCN[15]和CyGNET[16]模型作为基准方法来进行对比.
实验性能分析中采用ICEWS18 系统(integrated crisis early warning system)[17]和GDELT(global database of events, language, and tone)[20]作为对比实验数据集,这2 个数据集是动态知识图谱领域通用的数据集.其中ICEWS18 是从2018-1-1—2018-10-31 发生的所有政治事件,每个事件之间都是以24 h 的间隔作为时间戳;GDELT 是从新闻媒体中提取的人类社会规模行为和信念的目录,实验数据集的时间跨度为2018-1-1—2018-1-31,每个事件之间都是以15 min 的间隔作为时间戳.数据集都按照8∶1∶1 的比例划分.数据集的详细统计情况如表1 所示.
表1 不同知识图谱在公开数据集中的数量统计Tab.1 Statistical information on number of publicly available datasets by different knowledge graphs
使用知识图谱推理中常用的2 个指标[2]即平均倒数排名(mean reciprocal rank, MRR) 和Hits@1、Hits@3、Hits@10 来评价模型.对于每个缺少头实体或尾实体的测试三元组,计算出所有候选实体的概率并按降序排列.其中,MRR 为预测正确实体的平均倒数排名,Hits@1、Hits@3、Hits@10 分别为在测试集中正确预测实体在排名第1、前3、前10 中所占的比例.计算式为
式中: rank 为预测正确实体的排名位置.
式中:Nr为预计正确实体中排名在前n的个数.
在实体预测上对比了现有的静态推理方法中的ConvE 模型和基于动态推理方法的RE-NET、CEN、RE-GCN 和CyGNET 模型,分别在ICEWS18、GDELT 这2 个数据集上进行实验.本研究的Sta-HisNet 模型参数设置为:批训练大小为1 024,学习率为0.001,嵌入向量维度为200,丢弃系数为0.2,重塑成3m×n 的二维矩阵,其中m=10 ,n=20 ,二维卷积核大小为9×9,二维卷积核个数为200,长短期记忆网络的隐藏层维度为600,神经网络层数为2 层, α=0.6 ,所有可训练的参数都随机初始化,并使用AMSGrad 优化器进行优化.实验结果如表2、3 所示.
表2 不同模型在ICEWS18 数据集上的实体预测结果Tab.2 Entity prediction results of different models on ICEWS18 dataset
表3 不同模型在GDELT 数据集上的实体预测结果Tab.3 Entity prediction results of different models on GDELT dataset
表2、3 展示了利用Sta-HisNet 和基线方法对2 个动态知识图谱数据集的链接进行预测的结果,其中ConvE、RE-NET 和CyGNET 的实验结果来源于文献[17],CEN 和RE-GCN 的实验结果来源于实验.从实验结果可以看出,与静态知识图谱推理方法ConvE 相比,利用时间信息进行推理的动态知识图谱方法能够进一步提升预测任务的精确度.与动态知识图谱推理且基准效果最好的CEN 模型,Sta-HisNet 在MRR 指标上提高了1.65%和1.37%,在Hits@1 指标上提高了1.08%和1.79%,在Hits@3 指标上提高了0.92%和1.04%,在 Hits@10指标上提高了0.96%和0.42%.
为了帮助理解Sta-HisNet 的不同模型成分,开展消融实验.通过调整Sta-HisNet 模型的组件来创造变体,比较在ICEWS18、GDELT 数据集上的性能.实验结果如表4、5 所示.
表4 各模块在 ICEWS18 数据集上的消融实验结果Tab.4 Ablation experiment results of different modules on ICEWS18 dataset
表5 各模块在 GDELT 数据集上的消融实验结果Tab.5 Ablation experiment results of different modules on GDELT dataset
表4、5 中的Sta-HisNet-NON-EMB、Sta-HisNet-NON-STA、Sta-HisNet-NON-CONV、Sta-HisNet-NON-LSTM、Sta-HisNet-NON-PUN 分别为Sta-His-Net 模型将基于时间序列的实体嵌入更改为常规嵌入、去除静态嵌入、去除二维卷积、将长短期记忆网络更改为一层神经网络和去除历史惩罚.可以看出,在所有数据集上相比于 Sta-HisNet 模型,通过更改实体嵌入, 在 MRR 指标上提高了1.03%和0.42%,在 Hits@10 指标上提高了1.52% 和0.53%, 这说明通过实体随时间进化的嵌入能够有效地提升预测结果.通过增加静态嵌入, 在MRR 指标上提高了0.69%和1.19%,在 Hits@10指标上提高了1.06%和1.26%,这说明通过挖掘实体之间的静态联系能有效提高动态知识图谱推理的准确性.通过增加二维卷积,在 MRR 指标上提高了1.66% 和0.73%,在Hits@10 指标上提高了1.74%和0.60%,这说明通过二维卷积可以聚合嵌入特征.通过更改成长短期记忆网络,在 MRR 指标上提高了2.52%和1.60%,在Hits@10 指标上提高了1.45%和1.53%,这说明通过长短期记忆网络的历史记忆可以较好地捕获时序信息,更好地处理动态知识图谱.通过增加历史惩罚,在MRR 指标上提高了3.02%和2.13%,在 Hits@10 指标上提高了2.95%和2.66%,这说明历史事实中存在大量重复的三元组,且在预测未来时,这些三元组仍会频繁出现.历史惩罚可以在预测未来时,对历史中未出现过的实体做出惩罚,从而提高实体预测的准确性.
为了更具体描述使用的历史惩罚与不使用的历史惩罚,对比Sta-HisNet 模型和 Sta-HisNet-NON-PUN 模型的拟合速率.在相同的实验设备上分别计算 Sta-HisNet 模型与Sta-HisNet-NON-PUN模型的拟合轮数.2 种方法训练参数设置相同,批训练大小都设置为1 024,学习率为0.001,嵌入向量维度相同,训练数据集为 ICEWS18、GDELT.为了更充分、全面地对比,在训练轮数分别取 0、5、10、20、30、40、50 时,以MRR 评分指数作为评判指标,具体实验结果如图4 所示.图4 中E为训练轮数.可以看出,增加历史惩罚的Sta-HisNet 达到最佳模型的运行轮数明显小于没有增加的,历史惩罚的筛选能够帮助模型去掉部分错误答案,在较小的数据集ICEWS18 上更为明显,这也进一步表明Sta-HisNet 在动态知识图谱推理上的快速拟合优势.
图4 2 种方法在2 个数据集上的最佳轮数对比Fig.4 Comparison of optimal number of rounds between two methods on two datasets
考虑到动态知识图谱推理是难度较大的多分类问题,因此本研究的Sta-HisNet 算法通过较复杂的特征处理以挖掘事实间更深层的联系.为了探索复杂特征处理对实际运行时间所造成的影响,本研究在相同的实验设备、相同数据集上分别测试目前实验效果较好的CyGNET、RE-GCN和Sta-HisNet 方法在一个回合内的所需时间,这2 种方法的批训练大小都设置为1 024,学习率为0.001,嵌入向量维度相同,且数据集都为 ICEWS18、GDELT.
如图5 所示,Tm为模型运行一个回合所需的时间.从图中可以看出,Sta-HisNet 采用更加复杂的特征处理和计算,使得模型训练时间变长.由于历史惩罚导致模型收敛速度变快,使得总体运行时间相差不大.RE-GCN 的一个进化单元就包含有GCN、GRU 运算模块,运行一回合所需时间也远远超过CyGNET 模型和Sta-HisNet 模型.
图5 3 种方法在2 个数据集上的运行一个回合的所需时间Fig.5 Time required for three methods to run one round on two datasets
在动态知识图谱中实体往往随着时间而进化,简单的向量嵌入无法满足事实需求.知识图谱存在大量的静态事实,挖掘这些事实信息可以有效地协助动态知识图谱推理.历史事实往往是不断重复的,未来发生的事实可能在过去发生过,运用重复历史事实对动态知识图谱推理大有帮助,因此提出结合静态事实和重复历史事实的动态知识图谱推理.通过在实体嵌入中采用正弦函数,使得实体嵌入结合时间信息.使用R-GCN对静态事实提取更深层次的特征,并在历史模式中使用历史惩罚,对历史中未发生过的事实进行惩罚,提高重复事实的预测概率.实验结果表明,Sta-HisNet 在预测动态知识图谱的未来事实方面具有良好的性能.在未来的工作中,考虑加入外部动态知识图谱信息如实体类型来增强模型的学习能力.