面向多语义关系的知识图谱表示学习方法
2021-01-20刘学军张伯君
周 航,刘学军+,张伯君
(1.南京工业大学 计算机科学与技术学院,江苏 南京 211816;2.南京锅炉压力容器检验研究院 产品监检中心,江苏 南京 210028)
0 引 言
大规模的数据具有异构性、多元性、结构性不强等特点,人们在获取有效信息和知识的过程中面临着巨大的挑战。知识图谱的提出为解决这些问题提供了新的思路。知识图谱旨在描述客观世界中存在的各种实体以及实体之间的相互关系,本质上是一种大型的语义网络,以实体作为节点,实体之间的关系作为边。它通常以资源描述框架(resource description framework,RDF)的形式进行存储。知识图谱以三元组(Triplet)为基本单元进行存储,三元组的表现形式为:(实体、关系、实体)。现已被广泛应用于专家系统[2]、web搜索[3,4]和问答[5-7]等领域。通常,将关系描述成许多关系数据,将其表示为一个由两个实体和它们之间的关系组成的三元事实。例如Freebase[8]、Wikidata[9]和WordNet[10]等。
近年来,研究者提出了若干知识图谱表示模型,其中包括结构表示模型[11]、单层神经网络模型[12]、隐变量模型[13,14]、翻译模型等。本文主要考虑基于翻译模型的知识图谱表示方法。
虽然这些传统的基于翻译的模型在很多情况下被证明是有效的,但是它们认为一个关系只对应一个翻译向量,因此不能解决存在多个语义关系的问题。例如has_part关系,(sichuan, HasPart, chengdu)表示的是地域关系,而(house, HasPart, door)则表示一种成分关系。此外,不同的关系具有不同的确定程度。例如三元组(YaoMing, place_of_birth, shanghai)和三元组(YaoMing, spouse, YeLi),显然,spouse关系比place_of_birth关系更能表示姚明的身份。
因此,本文提出一种基于云模型的知识图谱表示方法,目标是在关系向量存在多语义性的前提下,获取最能表达该关系向量语义的向量值,同时引入不确定性的思想,在新的评分函数中结合确定程度,使模型预测更加准确。
1 相关工作
知识表示学习通过将实体或关系投影到低维向量空间,实现实体和关系的语义信息的表示。本节将针对国内外对于知识表示中的翻译模型以进行分析。
为了训练知识库中的三元组(head,relation,tail),传统建模的方法参数特别多,极大程度上增加了模型的复杂性导致难以解释,并且计算代价花费较大,很容易出现过拟合或欠拟合问题。
Borders等[15]提出了TransE(基于翻译的嵌入式模型)模型。该模型认为,在向量空间中,关系向量r是头实体向量h到尾实体向量t的翻译操作,通过得分函数衡量实体与关系之间的关联性,并通过损失函数获取最优目标值。由于TransE模型处理复杂关系时效果并不显著,此后大多数翻译模型都是在TransE模型的基础上进行改进。
Miao Fan等[16]提出了TransM模型,认为不同的关系其抽取的比例应该不同,因此对不同类型的关系赋予不同的权值,以此提升了TransE模型在一对多和多对一关系的性能。
ZhenWang等[17]提出了TransH模型,该模型认为不同的关系下每个实体所使用的表示形式应该不同,它为每个关系r构建了特定的超平面,在超平面上进行翻译操作,提高了模型对复杂关系的处理能力。
以上翻译模型均是从几何平移的角度出发的,认为在向量空间中,头实体向量h, 关系向量r, 尾实体向量t构成了一种几何合成的关系,仅仅对一个关系赋予一种翻译向量,它并不能细分多关系语义,文献[18]提出TransG(基于产生式的嵌入模型)知识表示方式,他们提出关系向量具有多语言性。为了刻画关系的多语义性,一个关系应该有多种向量表示,不同的实体对在几何变换中应该采用不同的关系向量。因此,提出了一种基于贝叶斯非参的无限混合嵌入模型:认为关系向量由若干成分向量合成,模型会根据实体对自动选择一个关系向量,而多少个这样的关系向量还可以由模型自动选择。He等[19]在TransG的基础上提出KG2E,并引入了实体与关系之间不确定性的概念。
2 TransC知识表示方法
2.1 基于云模型的知识表示框架
基于云模型的知识图谱表示方法的任务是通过云模型的获取最能够表达该关系语义的坐标值以及确定程度。
首先,给定一个关系r, 将关系r划分为M个语义,对每个语义构建高斯模型,用高斯混合模型表示关系r。 其次,通过贝叶斯分类得到每个语义的权重值,将最能够表达该关系的称之为主语义m*, 主语义的语言值的确定程度则表示该关系的确定程度。同时,通过二维正态云发生器对主语义m*生成对应的云滴 (xm*,ym*,zm*), 其中, (xm*,ym*) 表示主语义的语言值的坐标,zm*表示这个语言值的确定程度。最后将主语义的语言值坐标和语言值的确定程度带入到新的评分函数中,采用差距的排序误差(margin-based ranking error)函数对评分函数进行优化。模型的基本表示框架如图1所示。
图1 基于云模型的知识表示框架
2.2 多语义的高斯分布表示
在TransE模型中,分别用h,r,t表示头实体、关系、尾实体在低维向量空间中的表示,最终的评分函数应该具有以下形式
(1)
因此,可以将这一过程看作头和尾的差向量 (t-h) 是以r为均值,σ为协方差的高斯分布
t-h|r~N(r,σ2)
(2)
(3)
其中,K表示归一化常数。
一个关系可能存在多条语义,因此,一个翻译向量无法对多个语义进行建模。采用高斯混合模型的思想,先将每条语义表示成其高斯分布,再将最终的关系表示为多个高斯分布的混合形式,得到如下的表示形式
(4)
(5)
其中,M表示一个关系包含的语义数量,Wr,m表示第m个语义的权重,ur,m表示第m个语义的关系的翻译向量。
2.3 基于云模型的知识表示方法
通过贝叶斯统计对测试数据进行统计,得到每个语义的权重值,其中,最能够表达该关系的称之为主语义m*, 定义如下
(6)
(7)
其中,arg max函数表示取最大值。
借鉴李德毅等提出的云模型[20]的思想,对于给定的三元组 (h,r,t) 的向量表示,得到主语义m*的数字特征期望(Ex,m*,Ey,m*)、 熵(Enx,m*,Eny,m*) 和超熵 (Hex,m*,Hey,m*), 通过以下算法生成云滴:
(1)产生一个以 (Enx,m*,Eny,m*) 为期望值, (Hex,m*,Hey,m*) 为均方差的二维正态随机熵 (E′nx,m*,E′ny,m*);
(2)产生一个以 (Ex,m*,Ey,m*) 为期望值, (E′nx,m*,E′ny,m*) 为均方差的二维正态随机数 (xm*,ym*);
(3)计算
(8)
(4)(xm*,ym*,zm*) 表示一个云滴,其中(xm*,ym*) 表示主语义m*的语言值的坐标,zm*表示 (xm*,ym*) 属于这个语言值的确定程度的量度;
因此,得到最能够表达主语义m*的坐标值
ur,m*=(xm*,ym*)
(9)
评分函数表示如下
(10)
模型训练中,训练模型的目标函数采用基于差距的排序误差(margin-based ranking error)函数进行优化
(11)
其中,正三元组的集合用S表示,负三元组集合用S′表示,边界超参数用γ表示, [x]+表示取整。
对于那些可能性非常低的三元组,应该将其忽略防止其对最终的实验结果产生影响。因此,训练算法应该满足以下约束条件
(12)
其中, (h,r,t)∈S, (h′,r′,t′)∈S′,β控制更新状态。
算法流程的伪代码如算法1所示。
算法1: 基于云模型的知识图谱表示算法
输入: 训练三元组T={(h,r,t)}, 实体集合E, 关系集合R, 边界γ, 嵌入维数k, 状态更新参数β
输出: 实体和关系的向量
(1)初始化 对于任意关系r∈R,e∈E
(5)生成主语义m*的云滴 (xm*,ym*,zm*)
(6)loop
(8)Sbatch←sample(S,b)/*抽取大小为b的小批次样本*/
(9)Tbatch←∅//初始化一组训练三元组
(10)for(h,r,t)∈Sbatchdo
(12)Tbatch←Tbatch∪{((h,r,t),(h′,r,t′))}
(13)endfor
(14)根据式(8)、式(10)、式(11)、式(12)更新高斯嵌入
(16)endloop
3 实 验
3.1 数据集
实验分别在WordNet和Freebase的4个公共基准数据集上进行。这些数据集的统计数据见表1。对链路预测和三元组分类两项任务进行了实验研究。
表1 数据集统计信息
3.2 链接预测
链路预测是指存在一个三元组 (h,r,t), 若该三元组丢失尾实体,则预测其头实体,即给定 (h,r) 预测t;若该三元组丢失头实体,则预测其尾实体,即给定 (r,t) 预测h。实验过程如下:对于任一测试三元组 (h,r,t), 用数据集中存在的任意实体e分别替换该三元组的头实体和尾实体,通过TransC模型的评分函数计算三元组 (e,r,t) 或 (h,r,e) 的得分。将这些“损坏”的三元组按照得分进行降序排序,得到原始三元组的排名。
使用之前研究中相同的评估协议中的两个指标:MeanRank和Hits@10,其中MeanRank表示正确三元组的平均排名,Hits@10表示正确三元组排序不大于10的比例。我们发现,实验时应该滤去存在于train,valid和test这3个数据集中已经存在的三元组,再考虑当前测试三元组的排名。过滤前称之为“Raw”设置,过滤后称之为“Filter”设置。两种设置中,较低的Mean Rank和较高的HIT@10都意味着更好的性能。
由于数据集相同,直接将模型与报告中的几个基线进行比较。在多次实验下获得了如下的最佳配置:在WN18上,学习速率α=0.001, 嵌入维数k=50, 边界参数γ=2, 状态更新参数β=0.2, 语义数量M=10; 在FB15K上,学习速率α=0.005, 嵌入维数k=500, 边界参数γ=1, 状态更新参数β=0.25, 语义数量M=10。
“Filter”设置的数据质量更高,因此实验结果取“Filter”设置的结果。链接预测的平均预测结果如图2所示,关于FB15K各类关系的Hits@10值如图3所示。实验结果表明,TransC明显优于其它基线,这一结果表明了TransC在多语义的情况下具有更大的优势。与TransG相比,TransC在WN18上提升了4.2%,在FB15K上提升了4.6%。这主要是因为TransC借鉴了云模型的思想,得到最能够表达这个语义的坐标值,这样增加了实验结果的准确性;同时,确定程度高的关系更能够推理出正确的结果,因此,给每个关系的确定程度定值也能够进一步提升模型的准确度,在实验结果中也进一步验证了这一做法的可行性。如图2所示,在WN18中,TransE等原始方法在Mean Rank这一度量上表现的比其它方法都好,最主要的原因是WN18只包含少量的关系,导致不同类型的关系将被忽略掉,平均排名因此较高;还有可能是因为平均秩被一些极端的低秩三元组所影响。而在关系复杂多样的FB15K中,TransC的各项指标是最好的,TransC在关系复杂多样的图谱中表现更加优异。
图2 链接预测的平均预测结果
图3 关于FB15K各类关系的Hits@10值
3.3 三元组分类
三元组分类的主要任务是将三元组进行“正确”和“错误”的二元分类。实验中,使用了WordNet的子集WN11和Freebase中的子集FB13。
本实验遵循了NTN模型所采用的评估标准。对于一个三元组 (h,r,t), 给定关系r的阈值设为σr,如果三元组的得分函数低于该阈值σr,则该三原组属于“正确三元组”,反之为“错误三元组”。
由于本实验所对比的方法使用的数据集均相同,因此实验结果来自参考文献。在多次实验下获得了如下的最佳配置:在WN11上,学习速率α=0.001, 嵌入维数k=50, 边界参数γ=1, 状态更新参数β=6.0, 语义数量M=10; 在FB15K上,学习速率α=0.002, 嵌入维数k=500, 边界参数γ=1, 状态更新参数β=0.2, 语义数量M=10。
不同模型的三元组分类精度如图4所示,TransH和TransC若干关系的Hits@10值如图5所示。在WN11和FB13中,TransC比其它方法更加出色。与传统的TransE和TransH等方法相比存在显著的提升,这一结果表明了将关系划分为多种语义能够取得较大的提升。与TransG相比,TransC在WN11上提高了1.4%,在FB13上提升了0.3%。NTN模型有非常多的参数,在关系较少的FB13上性能优于大多数的模型,然而在关系复杂多样的FB15K中性能较差,因此对于现今大规模的知识图谱,NTN模型显然不具备优势。本文提出的方法在FB15K上的表现优于其它模型。TransE、TransH和TransR模型的训练时间分别约为5分钟、30分钟和3小时,本文提出的方法计算复杂度相对较低,TransC需要大约55分钟的训练时间。
图4 不同模型的三元组分类精度
图5 TransH和TransC若干关系的Hits@10值
4 结束语
本文针对传统的知识表示方法存在的不足,提出一种面向多语义关系的知识图谱表示模型TransC。首先,本文考虑的关系存在多语义性的情况,对于不同的语义建立相应的云模型,得到最能够表达该语义的坐标值;然后引入不确定性的思想,对每个关系的确定程度进行定量,并带入到最终的评分函数中。实验结果表明,TransC在多项性能上都优于其它模型。
本文所做工作仅刻画了静态的知识信息,在现实世界中,知识往往带有时间标签的,且会随着时间发生显著变化。这样就导致了信息的遗漏和损失,会对后续的知识提取和挖掘产生负面影响。因此,一个更完善的知识图谱需要充分体现时间的作用。接下来的工作方向主要是在保证原三元组基本信息不变的情况下,引入第四维参量——时间,探究如何通过数学手段刻画知识演进具有的典型特征,并设计算法来对新产生的知识进行预测。