知识图谱-KGE-模型:概述【翻译模型:Trans系列】【双线性模型:DisMult、ComplEx】【神经网络模型:ConvE、CapsE】【双曲几何模型:MuRP】【旋转模型:RotatE】

一、KGE简介

目前(2020.03)知识图谱嵌入研究方法众多,本文将对其中的主流方法进行简要介绍,如翻译、双线性、神经网络、双曲几何、旋转等。各方法细节请看原论文,文中错误欢迎指出,谢谢。
知识图谱嵌入(Knowledge Graph Embedding, KGE)学习知识库中的实体和关系的Embedding表示,是语义检索、知识问答、推荐等众多应⽤的基础研究。在具体了解KGE之前,我们先来看知识图谱是什么,为什么又要做知识图谱嵌入呢。

如下图所示,知识图谱是由大量的事实三元组组成,如(英国, 首都, 伦敦)便是真实世界中的知识,可用 (h, r, t) 进行表示,其中 h, t 表示头尾实体, r 表示关系。但我们知道,真实世界中知识是无限增长的,而知识图谱却不能包含真实世界中的所有知识,因此需在知识库中进行知识补全,或者称为链接预测。

如何进行链接预测呢?一个可行的方法便是将实体和关系进行Embedding表示,类似于Word2Vec,将字或词表示成Embedding信息。然后根据实体和关系的Embedding信息进行预测,比如利用头实体和关系去预测尾实体,或者利用尾实体和关系去预测头实体。当然,Embedding信息也可应用到其他领域,比如知识问答、文本信息增强、语义检索等。

  1. KGE模型
    通过上面介绍,我们知道KGE是将知识库中的实体和关系进行Embedding表示,但具体有哪些方法呢?根据我个人的理解,将模型规划为翻译(TransE, TransH, TransR, etc)、双线性(RESCAL, DisMult, ComplEx, etc)、双曲几何(Poincare, MuRE, etc)、神经网络(ConvE, CapsE, etc)、旋转(RotatE, QuatE, DihEdral, etc)类别,下面逐一进行介绍。

2.1 翻译模型
翻译模型是把关系当作头实体和尾实体之间的翻译,包括TransE, TransH, TransD等模型。
TransE认为 h + r \approx t ,即r是头尾实体之间的翻译关系,并定义评分函数为 f_r(h, t) = ||h + r - t||_{2}^{2} ,优化目标是最小化评分函数。TransE能够解决1-1类别的关系,但不能够很好的解决1-N, N-1, N-N关系。比如(流浪地球,演员,吴京)、(流浪地球,演员,吴孟达)两个三元组,当头实体 h 和关系 r 相同时,TransE认为所有尾实体 t 具有相同的Embedding信息,但实际情况并非如此。

针对TransE存在的问题,TransH把头实体h和尾实体t投影到关系所在的超平面中,并定义评分函数为 f_r(h,t) = ||h{\perp} + r - t_{\perp}||{2}^{2} ,其中 h{\perp} = h - w_{r}^{T}hw_{r}, t_{\perp} = t - w_{r}^{T}tw_{r} 。经过投影后,尽管头实体h和关系r相同,尾实体t的Embedding信息也会不同,TransH能够一定程度上解决多对多的关系。

TransR认为TransE和TransH均是把实体和关系放在同一空间中进行考虑,但实体可能具有多个不同方面的属性,不同的关系也关注着实体的不同属性,因此把实体和关系放在同一空间中考虑是不准确的。因此,TransR构建实体空间和关系空间,并定义评分函数为 f_{r}(h, t) = ||h_{\perp} + r - t_{\perp}||{2}^{2} ,其中 h{\perp} = hM_{r}, t_{\perp} = t M_{r} , h_{\perp}, t_{\perp} 属于实体空间, r 属于关系空间。

如下图所示,除了TransE, TransH, TransR以外,还有其他Trans模型,考虑实体和关系的概率性、稀疏性等问题,此处不再赘述。但总体上,Trans模型均是把关系当作头尾实体之间的翻译,解决知识库中所存在的多对多问题。

2.2 双线性模型
双线性模型计算实体和关系在向量空间中潜在语义的可信度,包括RESCAL、DisMult、ComplEx等模型。
RESCAL把关系利用满秩矩阵表示,并定义评分函数为 f_r(h, t) = h^TM_rt 。能够看到,RESCAL的实体和关系之间全是矩阵运算,因此实体和关系的信息可以进行深层次交互,非常具有表现力。但同时,RESCAL容易过拟合,并且随着关系矩阵维度的增加,复杂度会很高,很难应用到大规模知识图谱。

针对RESCAL存在的问题,DisMult放松对关系矩阵的约束,把关系矩阵M_r利用对角矩阵表示,并定义损失函数为 f_{r}(h,t) = h^Tdiag(M_r)t 。但DisMult过分简化了RESCAL模型,导致只能够解决知识库中存在的对称关系,不能够解决知识图谱中其他类型的关系。

针对DisMult存在的问题,ComplEx把DisMult扩展到复数空间表示,并定义评分函数为 f_{r}(h,t) = Re(h^Tdiag(M_r)\bar{t}) ,其中 h, t 均用复数表示, \bar{t} 表示 t 的共轭复数,Re(\cdot) 表示取得复数的实部。ComplEx对DisMult扩展后,能够同时解决对称和非对称关系。ComplEx首次在KGE中引入复数方法,后面我们还能看到其他模型利用复数空间解决问题,并且可解决除对称、非对称外更复杂的对称类型。

如下图所示,除RESCAL, DisMult, ComplEx外,还有其他双线性模型,考虑实体和关系的潜在语义信息,获取实体和关系的深层次交互信息。

2.3 神经网络模型
多数翻译模型和双线性模型是16年之前模型,最近几年随着神经网络的兴起,也有利用神经网络解决KGE问题的模型,包括ConvE、CapsE等。
如下图所示,ConvE首先把头实体和关系转换为二维向量,接下来利用卷积层和全连接层获取交互信息,然后与矩阵W和尾实体进行计算,判断当前三元组的可信度。ConvE评分函数为 f(vec(f([\bar{h}, \bar{r}] * w ))W) t , \bar{h}, \bar{r} 表示二维向量,w 表示卷积核, W 表示矩阵。ConvE模型上没什么新颖之处,只不过是比较早的利用卷积神经网络来对KGE进行建模。

如下图所示,CapsE采用胶囊神经网络模型,首先把头实体、关系、尾实体表示称 k\times 3 的矩阵,接下来通过卷积层获取其特征信息,然后对特征信息进行压缩,并进行动态路由,最后计算三元组的可信度,胶囊网络资料可参考苏神博客。CapsE只是胶囊网络在KGE问题上的简单应用,也没有特别新颖之处。

如下图所示,KG-BERT模型利用BERT进行fine-tuning,获取头实体、关系、尾实体信息,然后取CLS信息进行二分类,判断当前三元组可信度。

KGE除了利用卷积神经网络、胶囊网络、BERT模型外,也有模型利用深度神经网络、图注意力网络等方法,但均没有进行深层次扩展。个人认为,普通的神经网络模型不是特别适合解决KGE问题,不能够对知识图谱中实体的层次性、关系的多样性问题建模,仅仅只是获取实体和关系的深层次交互信息,没有可解释性。但可以多尝试图神经网络在KGE上的应用,比较符合图谱结构。

2.4 双曲几何模型
上面多次提到实体间具有层次性,比如爷爷–父亲–儿子关系,类似于树状结构。此时,可以利用双曲空间性质,在双曲空间中对实体的层次性建模,包括Poincare, MuRP等模型。
Poincare采用双曲几何中的庞加莱圆盘进行建模,其空间曲率为负。通过下图我们可以简单了解庞加莱圆盘性质,如下图(1)所示,是庞加莱圆盘中的测地线,可看作直线在双曲空间中的推广。如图(2)所示,图中每两个点之间线代表的长度是相同的。也就是说,离中心越远, 单位欧几里得空间的线段所代表的长度越长。如图(3)所示,当 和 趋近于1时,距离会变得无限大。双曲空间中两点之间距离计算方法为

因为庞加莱圆盘性质,能够对实体间的层次性建模,学习图谱间的层次性信息。Poincare模型评分函数为 ,其中 为负样本,其目标是让相关联的三元组在庞加莱圆盘中具有更小的距离。但Poincare模型没有考虑到关系性质,而且不能够在庞加莱圆盘中进行复杂操作。另外,双曲空间需要黎曼优化方法,建议自行去了解相关数学知识,包括黎曼曲率张量、黎曼流形、黎曼优化等概念。

MuRP相对于Poincare而言更加完善,MuRP同时在双曲空间和欧式空间中建模,结合关系向量,能够处理图谱中所存在的多类型关系。MuRP首先将实体向量定义在庞加莱圆盘中,接下来将实体映射到欧式空间,并和关系进行操作,然后再将实体映射回庞加莱圆盘中进行距离计算,并用黎曼方法优化。MuRP评分函数为 ,其中 表示在庞加莱圆盘中计算距离, 表示将庞加莱圆盘中的点映射到欧式空间, 表示对角矩阵, 表示将欧式空间中的点转移到庞加莱圆盘中, 是莫比乌斯加法,为庞加莱空间中两向量相加, 表示曲率。另外, 表示头尾实体的偏置,如下图(2)所示,距离在 内均为正确的三元组。

通过Poincare和MuRP模型能够看出,双曲空间对于数学要求比较高,但双曲几何确实能够对图谱进行层次性信息建模,解决实体间的多类型关系。除了利用双曲空间中的庞加莱圆盘外,还有的模型利用李群、李代数等知识,此处不再赘述。数学较好的同学,可以深层次的研究双曲空间在KGE问题上的应用。

2.5 旋转模型
旋转模型把关系当作头实体和尾实体之间的旋转,包括RotatE、QuatE、DihEdral等模型。
RotatE认为知识库中存在多种类型的关系,如symmetry(e.g., marriage), antisymmetry(e.g., filiation), inversion(e.g., hypernym and hyponym), composition(e.g., my mother’s husband is my father)关系,但以往的TransE, RESCAL, ConvE等模型均不能够解决上述关系。因此,如下图(2)所示,RotatE提出在复数空间中建模,把关系当作头尾实体之间的旋转,并定义评分函数为 ,其中 ,RotatE从理论上证明能够解决对称/反对称、翻转、组合关系。另外,RotatE认为在训练过程中,很多三元组明显是错误的,因此RotatE提出自对抗的负采样方法,让错误样本更加明显,负采样和损失函数公式如下所示。

\mathbb{L} = -log\sigma(\gamma - f_r(h, t)) - \sum_{i=1}^{n} p(h_{i}^{‘}, r, t_{i}^{’})log \sigma(f_r(h_{i}‘, t_{i}’) - \gamma) \

RotatE是在二维复平面空间中进行操作,那么很自然的可以推广到三维复平面空间中。三维情况下旋转可以利用欧拉角和四元数等方法,但欧拉角存在死锁问题,因此QuatE采用四元数进行旋转,四元数可表示为 Q = a + bi + cj + dk 。QuatE定义评分函数为 f_{r}(h, t) = h \otimes r^{\triangleleft} \cdot t ,其中 h, r, t 均为四元数, r^{\triangleleft} 表示 r 的norm值, \otimes 表示Hamilton product, \cdot 表示内积。当然,继续推广,可以利用8元数进行旋转,但此时复杂度升高,结果并没有提升太多。再往上推广,有16元数,但16元数的乘法不满足交换律和结合律,因此不再考虑。

除了RotatE和QuatE利用复数空间解决对称/反对称、翻转、组合关系,DihEdral利用群论知识来解决上述关系。DihEdral采用二面体群进行旋转,如下图所示,二面体群具有两种性质,即旋转和对称操作。DihEdral将多个二面体群组成对角矩阵,并定义评分函数为 f_r(h, t) = ||R^Th - t||_{2}^{2} ,其中R是二面体群组成的对角矩阵,具体构建方法可以看原论文。同样,DihEdral能够从理论上解决对称/反对称、翻转、组合(Abelian, Non-Abelian)关系,如果对群论比较熟悉的同学,可以继续扩展,从群论+旋转+多类型关系的角度来解决KGE问题。

通过RotatE、QuatE、DihEdral模型能够看出,均是利用旋转特性来解决知识库中存在的对称/反对称、翻转、组合关系,但知识库中不仅仅存在这几种关系,还可以继续挖掘其他关系。同时,还可以继续研究其他旋转方法来解决KGE问题,比如群论方向,因为图谱完美符合群论的四个性质。

2.6 其他模型
除了上述介绍的翻译、双线性、神经网络、双曲几何、旋转模型外,还有的模型从路径、距离度量等角度去解决KGE问题,此处不再赘述。

3.总结
从上面介绍的模型可以看出,KGE问题可首先关注如下方面: 1. 关系的多样性,如1-1, 1-N, N-1, N-N关系,对称/反对称、翻转、组合等信息。如翻译、旋转模型。 2. 实体的层次性,实体之间的上下位关系。如双曲空间模型。 3. 实体和关系的深层次交互信息。如双线性和神经网络模型。

除此之外,个人认为可深入研究的点包括图神经网络、欧式或双曲空间中实体的层次性问题、旋转模型解决关系多样性(群论角度)。同时,还需要重点关注负采样方法、损失函数、数据增强问题(比如(h, r, t)可扩展增加(t, r_inverse, h))。

文中所介绍到的论文如下所示,多数模型的代码都可在原论文中找到。如果想要使用已训练好的Wikidata, Freebase的Embedding信息,可以从清华OpenKE网站下载,个人训练的话可以使用OpenKE项目。




参考资料:
知识图谱嵌入(KGE)主流模型简介
知识图谱嵌入(KGE):方法和应用的综述

[1]: Translating Embeddings for Modeling Multi-relational Data “TransE”

[2]: Knowledge Graph Embedding by Translating on Hyperplanes “TransH”

[3]: Learning Entity and Relation Embeddings for Knowledge Graph Completion “TransR”

[4]: A Three-Way Model for Collective Learning on Multi-Relational Data “RESCAL”

[5]:Embedding entities and relations for learning and inference in knowledge bases “DisMult”

[6]: Complex embeddings for simple link prediction “ComplEx”

[7]: Convolutional 2D Knowledge Graph Embeddings “ConvE”

[8]: A Capsule Network-based Embedding Model for Knowledge Graph Completion and Search Personalization “CapsE”

[9]: KG-BERT: BERT for Knowledge Graph Completion “KG-BERT”

[10]: Poincare Embeddings for Learning Hierarchical Representations “Poincare”

[11]: Multi-relational Poincaré Graph Embeddings “MuRP”

[12]: ROTATE: KNOWLEDGE GRAPH EMBEDDING BY RELATIONAL ROTATION IN COMPLEX SPACE “RotatE”

[13]: Quaternion Knowledge Graph Embeddings “QuatE”

[14]: Relation Embedding with Dihedral Group in Knowledge Graph “DihEdral”

你可能感兴趣的:(#,知识图谱,神经网络,人工智能)