舰船科学技术  2023, Vol. 45 Issue (24): 166-170    DOI: 10.3404/j.issn.1672-7649.2023.24.030   PDF    
基于神经网络和改进TuckER分解的链路预测模型张量网络
李壮, 丛洋, 梁君, 刘鹏, 张佳豪     
中国舰船研究院,北京 100101
摘要: 知识图谱是指知识库中存储大量的三元组,通过三元组(头实体、关系实体、尾实体)描述物质之间的联系,从而提供大量真实和有价值的信息。在一般情况下,由于信息的不完全性,它的建立只能依靠全部事实中的一小部分,而大量的实体间隐性关联却没有得到充分利用。可以利用预测中缺失的部分信息进行处理。所有的知识图谱,都需要不断地完善,甚至推论出新的知识。基于此,本文提出一种基于神经张量网络的改进 TuckER分解算法。
关键词: 知识图谱     神经张量网络     TuckER     链接预测    
Tensor network of link prediction model based on neural networkand improved TuckER decomposition
LI Zhuang, CONG Yang, LIANG Jun, LIU Peng, ZHANG Jia-hao     
China Ship Research and Development Academy, Beijing 100101, China
Abstract: Knowledge map usually refers to a knowledge base that stores a large number of triples. It uses triples (head entity, relationship, tail entity) to represent the relationship between entities, thus providing practical and valuable information. Generally, they are incomplete, because their construction may be based on only a small part of all facts, and the implicit relationship between a large number of entities has not been fully utilized. We can solve this problem by predicting the missing parts.Any existing knowledge map needs to constantly improve knowledge itself, or even infer new knowledge through completion. In this paper, a new link prediction algorithm, called improved TuckER NTN (ImTu NTN), is proposed by combining the improved TuckER decomposition algorithm and neural tensor network (NTN), which can effectively improve the accuracy of knowledge map link prediction.
Key words: knowledge graph     NTN     TuckER     link forecast    
0 引 言

人类社会经过长期的发展和积累,积累了大量宝贵的知识财富。近年来,随着互联网、人工智能技术的不断进步,计算机技术与人类知识的大规模融合,使得自动导航系统、机器翻译系统、智能推荐系统、知识问答系统都得到了极大发展。机器能够储存、学习和使用知识,人类知识和经验可以得到更有效的利用。

知识图谱是以节点代表实物,边代表实体图形组成的知识库[1]。从三元组进行分析,它是一种实体以及实体关系之间的关联。这是一种能够用符号的形式来表达真实世界中各种观念及其相互关系的高级语义知识。知识图谱通常把一种信息作为一组相关的数据进行表示,并将其表现为(头部,关联,尾部)。目前,诸如 YAGO[2]、Freebase[3]、DBpedia[4]和 NELL[5]等许多领域都已建立并获得了广泛应用,这些知识图谱可以提供丰富且有效的信息,其中包含推荐系统、信息检索及知识问答等。另外,这种方法也可应用到诸如自然语言处理和信息提取等方面[6]。尽管目前的知识图谱在很多方面都得到了广泛运用,但是诸如 Freebase、DBpedia等的大规模的知识库仍然存在着一些问题。

许多实体的隐性联系还没有被完全发掘[7]。如71%的人不了解自己的生日,75%的人不了解自己的国家。由于知识库资料的稀缺,可以通过预测将三元组加入到知识库中进行补充[8]。现有的一些张量分解方法,如RESCAL[9]和DistMult[10]等,用以表达知识图中的实体和关联。在此基础上,提出一种基于张量分析的新的知识库模型,并将三元组加入到知识图谱中,以提高知识库的质量。

该知识图谱可用三阶二元张量来表达,每个三元组都有对应的一元,1是已知的三元组,0是不可知的(错或缺少)。对这些问题进行深入分析,并给出了几种基于RESCAL、DistMult、ComplEx[11]和SimplE[12]等多种线性分解方法。它们都属于TuckER分解的特殊情况,然而其表现形式受到限制。

深度学习方法表达能力强,但代价较大,训练参数太多,容易出现过拟合。本文所用的NTN模型采用简单划分的神经网络设计思想,采用3个权值分别控制头部实体、尾部实体以及关系信息。其具有很强的表现力,但是也有缺点,因为它使用不同的权重矩阵来建立关系,所以其参数数量会随着图的增长而增加,从而产生大量的训练和过拟合问题。

1 研究现状 1.1 线性算法

利用张量分解的表达式将高阶张量降阶,并将其视为一个元素。当三元组是正确时,三元组的数值是1,不是为0。此外,RESCAL方法中的参数比较多,且有可能存在过拟合的问题,所以产生了 DistMult方法。DistMult方法相信每种关系都有相应的对角阵。该方法利用三元组数进行简单的运算,并进行相应的知识图谱补全操作。DistMult算法是通过对头-尾的物体进行对称化的培训,所以 DistMult只能建立对称的模型。ComplEx是复数领域中 DistMult的一个延伸,通过对三元组分的向量点积来求出三元组得分,并通过概率算法求出三元组值的正确与否。另外,ComplEx方法还可以建立不对称的关系模型。

Kazemi[12]提出一种利用一阶逻辑规则学习知识图谱关系的可微分线性规则学习算法。Yang[13]提出一种线性算法,该算法使用CP [14]分解SimplE。同一实体的头部和尾部实体在CP分解过程中相互独立。为了解决这一问题,SimplE通过修改CP分解的方法对打分函数进行修改,使嵌入向量的头尾实体相互依赖。另外,该算法对多个基准数据集进行实验,取得了较好的结果。

1.2 非线性算法

Schlichtkrull等[15]介绍了关系图卷积网络(R-GCNs)对2种标准知识图谱进行链接预测(即主题-谓词-对象三元组)和实体分类(恢复丢失的实体属性)。R-GCNs专门处理现实世界知识图谱,这些图谱具有高度的多重关系。Das等[16]提出神经强化学习算法MINERVA,该算法通过输入查询图来找到所需路径,可有效地解决已知实体和关系存在而缺少另一实体的问题。

对7种不同类型的知识库进行了比较,结果显示MINERVA比已有的方法更好。ConvE[17]利用卷积网络对头部实体和关系矢量进行二维卷积运算,再将其重组为矩阵,并串联在一起,形成一个特征向量,用于对各个尾部实体进行点乘操作,从而得出各个三元组的最后分数,以供三元组的准确识别。虽然ConvE在链路预报试验中取得了很好的效果,但很多方法都不具有很高的透明度,且缺少相关的理论依据和数学知识。

与 ConvE方法和以前的其他方法相比,本文提出的方法在处理多个参考资料时表现出了较好的效果。在此基础上,在卷积中加入稀疏和约束的参数,可以把该方法看成是一个非线性的张量分解。HypER方法通常使用一种基于硬正则化的学习方法,它把大多数的核心张量都设置成0。参数对该方法的有效性有一定的影响。目前已有大量的研究将 TuckER分析方法用于解决知识图谱的问题,将其分解为核心张量与三因子矩阵的乘积形式,并将其结果转化,通过判断三元组的正确与否来实现问题的解决。TwckER等[18]对初始的张量进行分解,将其表达为各维的中心和因数矩的乘积。基于这一思想,通过 TuckER分析,实现了稀疏知识图谱。首先将三元张量视为初始三元张量,将三元组合进行分解,并由矩阵乘积算出全部三元组合的正确机率,由概率判定三元组合是否正确,最后将三元组合加入到知识图中,形成完整的知识库。

2 算法设计

重点介绍TuckER[19]分解算法、改进的TuckER分解算法、神经张量网络NTN[20]和改进的TuckER-NTN (ImTu-NTN) 模型,以及选择什么样的评分函数训练ImTu-NTN模型。

2.1 TuckER分解算法

TuckER分解(见图1)可以将一个三阶张量分解为3个因子矩阵和一个核心张量,定义一个原始张量$ \mathit{{X}}\in R^{I\times J\times K} $,通过 TuckER分解,得到一个核心张量$ G\in{\mathit{R}}^{P\times Q\times R} $和三因子矩阵 $ A \in R^{I \times P} $$B \times R^{J \times Q},C\in R^{K\times R}$,如下式:

图 1 TuckER分解算法 Fig. 1 TuckER decomposition algorithm
$ X\approx G{x}_{1}{Ax}_{2}{Bx}_{3}C=\sum _{p=1}^{P}\sum _{q=1}^{Q}\sum _{r=1}^{R}{g}_{pqr}{a}_{p}\otimes {b}_{q}\otimes {c}_{r}。$ (1)

式中:x代表n阶张量积,$\otimes $代表向量内积。当3个因子矩阵正交时,可以认为是核心张量G在各模态的主成分因子,而核心张量中的元素则反映了各个要素的交互作用。如果核心张量的维数相同且为对角,则TuckER分解退化为CP分解,即CP分解是TuckER分解的特例。而且,TuckER分解并非唯一。

2.2 改进的TuckER分解算法

知识图谱定义为:KG = (E, R, T),其中E是实体集,R是关系集,T是所有数据集,包括训练集、测试集和验证集。其中实体集$ {E}=\{{{e}}_{1},{{e}}_{2},\dots ,{{e}}_{{n}}\} $ , 关系集$ {R}=\{{{r}}_{1},{{r}}_{2},\dots ,{{r}}_{{n}}\} $, 所有三元组集合$ {T}=\{{(h}_{{i}},{{r}}_{{k}},{{t}}_{{j}})|{h}_{{i}}, {{t}}_{{j}}\in {E};{{r}}_{{k}}\in {R}\} $。实体和关系的嵌入维度分别为$ {k}_{e} $$ {{k}}_{{r}} $。知识图谱可以表示为三阶二进制张量。改进后的TuckER分解(见图2)可以将三阶张量表示的知识图谱分解为每个模态上的核心张量和因子矩阵的乘积。其中,实体嵌入矩阵$ {E}={A}={C}\in {{R}}^{{{n}}_{{e}}\times {{k}}_{{e}}} $,关系嵌入矩阵$ {R}={B}\in {{R}}^{{{n}}_{{r}}\times {{k}}_{{r}}} $, $ {{n}}_{{e}} $, $ {{n}}_{{r}} $。实体和关系的嵌入维度分别为$ {k}_{e} $$ {{k}}_{{r}} $

图 2 改进的TuckER分解算法 Fig. 2 Improved TuckER decomposition algorithm

修改后的 TuckER算法模型的评分函数如下:

$ \begin{array}{c}f\left(h,r,t\right)=T{x}_{1}{v}_{h}{x}_{2}{{v}_{r}^{{\mathrm{T}}}x}_{3}{v}_{t}。\end{array} $ (2)

其中,$ {v}_{h} $,$ {{v}}_{{t}}\in {E} $分别表示头部实体嵌入和尾部实体嵌入,是实体矩阵E的一行。$ {{v}}_{{r}}\in {R} $表示关系嵌入,是关系矩阵的一行。$ {{v}}_{{r}}^{{{\mathrm{T}}}} $$ {{v}}_{{r}} $的转置,表示$ {T}\in {{R}}^{{k}_{e}\times {{k}}_{{r}}\times {{k}}_{{e}}} $的转置操作是核心张量,$ {{x}}_{{n}} $是核心张量的每个模态的张量积。在实验中,将核心张量T重新组合成一个矩阵,头实体嵌入$ {{v}}_{{h}} $为矩阵乘积,得到乘积关系的转置矩阵,最后与嵌入的尾部实体$ {{v}}_{{t}} $相乘得到3。通过改变矩阵乘法的顺序来获得最优的三元组分数。

2.3 神经张量网络 (NTN)

NTN神经网络计算模型将评分函数设计为3部分:头实体的信息、尾实体的信息、与实体关联的关系信息计算部分。

NTN的评分函数如下:

$ \begin{array}{c}\varnothing_{NTN}\left(h,r,t\right)=w_r^{\mathrm{T}}\cdot f_{act}\left(\mathcal{W}_rx_1e_hx_3e_t\right)\end{array}。$ (3)

式中:$ {\mathcal{W}}_{{r}}\in {\mathbb{R}}^{{d}\times {d}\times {k}} $为一个关系特定张量;·表示点积;$ {{f}}_{{act}} $为非线性标量激活函数,如 ReLU 或 tanh。

观察到NTN可被看作是TuckER的非线性版本(尽管每个关系的核心张量都不同)。通过比较式(3)和式(6),TuckER的评分函数可写成NTN的非线性评分函数:

$ {{\varnothing }}_{tuckER}\left(h,r,t\right)=W{x}_{1}{e}_{h}{{x}_{2}{w}_{r}x}_{3}{e}_{t},$ (4)
${{\varnothing }}_{tuckER}\left(h,r,t\right) =W{x}_{1}{e}_{h}{{x}_{3}{e}_{t}x}_{2}{w}_{r} ,$ (5)
${{\varnothing }}_{tuckER}\left(h,r,t\right) =w_r^{\mathrm{T}}\cdot\left(\mathcal{W}x_1e_hx_3e_t\right)。$ (6)

其中,式(5)为N模乘法的重排性质,式(6)为点积和N模乘法的重排性质。在TuckER分解的上下文中查看NTN,为跨关系定义单个共享的核心张量奠定了基础。同样地,也可重写改进后的Tucker分解的评分函数,如下式:

$ \varnothing_{Tucker}\left(h,r,t\right)=Tx_1v_hx_2v_r^{\mathrm{T}}x_3v_t ,$ (7)
$ \varnothing_{Tucker}\left(h,r,t\right)=Tx_1v_hx_3v_tx_2v_r^{\mathrm{T}},$ (8)
$\varnothing_{Tucker}\left(h,r,t\right) ={v}_{r}\cdot \left(T{x}_{1}{v}_{h}{x}_{3}{v}_{t}\right) 。$ (9)
2.4 ImTu-NTN 模型

本文提出ImTu-NTN模型的评分函数如下:

$ \varnothing_{NePITuNe}\left(h,r,t\right)=v_t^{\mathrm{T}}\cdot\left(Tx_1v_hx_2v_r^{\mathrm{T}}\right)。$ (10)

与NTN类似,ImTu-NTN使用了一个非线性激活函数。但与NTN的不同之处在于,不同关系$ {r}\in \mathcal{R} $的NTN对应不同的核心张量$ {\mathcal{W}}_{{r}} $,而ImTu-NTN模型对所有关系都使用共享的核心张量T。受益于此,困扰NTN的问题不仅解决了过拟合问题,而且还加快了训练速度。

2.5 训 练

为了提高算法的训练速度和准确性,本文采用1-N评分标准,即对于缺失尾实体的3组,使用评分函数对所有实体进行评分。采用1-N评分标准,避免一次只能计算一个实体,即1-1次评分,显著提高了算法的训练速度。把以下损失函数最小化,作为该算法的最终训练目标,其损失函数为:

$ L=-\sum_{i=1}^{\left|\epsilon\right|}\left[y_i\mathit{log}\left(p_i\right)+\left(1-y_i\right)\mathit{log}\left(1-p_i\right)\right]。$ (11)

其中,$ {{p}}_{{i}}={sigmoid}\left({{\varnothing }}_{{NePITuNe}}\right({h},{r},{t}\left)\right) $$ {{y}}_{{i}} $的取值取决于三元组是否正确。当尾实体建立时,$ {{y}}_{{i}} $= 1,否则,$ {{y}}_{{i}} $= 0。在原三元组的基础上,构造一个负三元组,即将正确三元组的头尾实体分别替换为数据集中的所有实体:

$ T'=\left\{\left(h',r,t\right)|h'\in E\right\}\cup\left\{\left(h,r,t'\right)|t'\in E\right\}。$ (12)
3 实 验

详细介绍本实验所用到的数据集、评价指标、实验参数设置,最后列出实验结果及结论。

3.1 数据集

由于WN18与FB15k数据集之间存在着一定的倒置关系,如上位词和下位词,这2种数据集之间存在着一定的倒置关系。因此,将WN18数据集中具有相反关系的三元组过滤掉,生成新数据集WN18RR。再一次,把FB15k中的倒置关系进行筛选,得出FB15K-237。

数据集WN18RR包括11个关系、实体40943个、三元组93003个,分为训练集、验证集和测试集3个部分,其比例大约是28∶1∶1。数据集FB15K-237包括14541个实体、237个关系和310116个三元组。训练集、校验集和测试集的比例大约是14∶1∶1。

3.2 评估指标

使用以下3项指标作为衡量链接预测实验的标准:1)正确实体排名第一的百分比为 Hits@1,指标越大越好。2)前三名或前十名的正确实体百分比分别是 Hits@3和Hits@10,分数越高越好。3)正确实体的平均倒数秩MRR(Mean Reciprocal Rank)。此外,在知识图谱中,可能存在一些错误的三元组。因此,采用文献标准对数据集中的错误三元组进行筛选,过滤后的设置称为Filter,而原来的称为Raw。

3.3 参数设置

使用随机搜索算法在验证集上选择最优超参数。其中,嵌入维度设置为:$ {k}\in \{20,30, 50, 100,200\} $,初始学习率设置为 $ {\gamma }\in \{0.005,0.0001,0.003, 0.005,0.01\} $。根据文献[19],将学习率和学习率衰减的最佳组合设置为:WN18RR上的最佳组合为(0.01, 0.99),FB15K-237上的最佳组合为(0.005,1.0)。采用损失函数所示的式 (11),设置batch size为128。

3.4 结果分析

在链路预报试验中,采用一种基于随机搜索的方法,对该模式进行1000次的训练,在此期间,监测每100个训练周期的 Hits@10分数以选择MRR和Hits@10最优超参数。

在WN18RR和FB15K-237数据集中,TheImTu-NTN模型的链路预测结果见表1

表 1 数据集FB15K-237和WN18RR的算法性能比较 Tab.1 Comparison of algorithm performance between dataset FB15K-237 and WN18RR

可知,ImTu-NTN在FB15K-237数据集和WN18RR数据集的性能均优于目前最先进的线性模型TuckER分解。同时,虽然RoTH专门设计用于WN18RR这样的分层数据集,但是在WN18RR数据集中,ImTu-NTN的Hits@1度量上也远优于RoTH模型,说明ImTu NTN模型在提高链路预测精度方面是有效的。

4 结 语

最近几年,三元组的动态变化使知识图的动态变化更加明显。在大量的知识库中,新的知识会不断地出现,并且会对原有的知识进行更新,尤其是一些所确定的或者是不确定的,这些东西在未来会被证实是不准确的,必须加以改正。在原有基础上,还必须对现有的知识进行修改、更正,使得知识图谱的升级变得更为繁琐。

本文提出一种基于ImTu-NTN的模型,该模型具有线性预测速度和鲁棒性以及非线性链路预测的表现力,有效地提高了链路预测的准确性。例如,在军事领域中,能够预测各种武器装备之间的有益组合,从而对军事任务做出更好的反应;在情报分析中,能够识别各种看似无关的情报之间的潜在联系。在其他领域,本文的研究结果也取得了一定的效果。

参考文献
[1]
陈恒,祁瑞华,朱毅,等.球坐标建模语义分层的知识图谱补全方法[J]. 计算机工程与应用,2020,57(15):101−108.
CHEN Heng, QI Ruihua, ZHU Yi, et al. A knowledge graph completion method for semantic layering in spherical coordinate modeling [J] Computer Engineering and Applications, 2020, 57 (15): 101−108
[2]
SUCHANEK F M, et al. Yago: a core of semantic knowledge[C] //Proceedings of the 16th International World Wide Web Conference, 2007: 697–706.
[3]
BOLLACKER K D, et al. Freebase: a collaboratively created graph database for structuring human knowledge[C] //SIGMOD Conference, 2008: 1247–1250.
[4]
LEHMANN JD B. A Nucleus for a Web of Open Data[C]//Semantic Web, International Semantic Web Conference, Asian Semantic Web Conference, Iswc + Aswc, Busan, Korea, November, 2007.
[5]
CARLSON A, BETTERIDGE J, KISIEL B, et al. Toward an architecture for never-ending language learning[C]// Proceedings of the AAAI Conference on Artificial Intelligence, 2010, 24(1), 1306−1313.
[6]
YANG B, MITCHELL T. Leveraging knowledge bases in LSTMs for improving machine reading [C]//Proceedings of the 55th Annual Meeting of the Association for Computational Linguistics, 2017.
[7]
DONG X, GABRILOVICH E, HEITZ G, et al. Knowledge vault:A web-scale approach to probabilistic knowledge fusion[C]//Proceedings of the 20th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, 2014: 601−610.
[8]
陈恒, 李冠宇, 祁瑞华, 等. 改进的Tucker分解知识图谱补全算法[J]. 数学的实践与认识,2020, 50 (16) :164−176.
[9]
NICKEL M, TRESP V, KRIEGEL H P.A Three-way model for collective learning on multi-relational data[C]//ICML, 2011, 11: 809-816.
[10]
YANG B, YIH W, HE X, et al. Embedding entities and relations for learning and inference in knowledge bases[J].arXiv preprint arXiv:1412.6575,2014.
[11]
Théo Trouillon, WELBL J, RIEDEL S, et al. Complex embeddings for simple link prediction[C]//ICML,2016:2071−2080.
[12]
KAZEMI SEYED M, DAVID L. Poole. SimplE embedding for link prediction in knowledge graphs[J]. NeurIPS, 2018.
[13]
YANG FAN, et al. Differentiable learning of logical rules for knowledge base reasoning[J]. NIPS, 2017.
[14]
HITCHCOCK FRANK LAUREN. The expression of a tensor or a polyadic as a sum of products[J]. Journal of Mathematics and Physics 6: 164–189.
[15]
SCHILICHTKRULL M, et al. Modeling relational data with graph convolutional networks[J]. ArXiv abs/1703.06103, 2018.
[16]
DAS RAJARSNI, et al. Go for a walk and arrive at the answer: reasoning over paths in knowledge bases using reinforcement learning[J]. ArXiv abs/1711.05851, 2018.
[17]
DETTMERS TIM, et al. Convolutional 2D knowledge graph embeddings[C]//AAAI , 2018.
[18]
TUCKER, LEDYARD R. Some mathematical notes on three-mode factor analysis[J]. Psychometrika, 1966, 31(3): 279–311.
[19]
BSLAZEVIC IVANA, et al. TuckER: Tensor Factorization for Knowledge Graph Completion[J]. EMNLP , 2019.
[20]
SOCHER RICHARD, et al. Reasoning with neural tensor networks for knowledge base completion[J]. NIPS, 2013.