1. KGE简介
目前(2020.03)知识图谱嵌入研究方法众多,本文将对其中的主流方法进行简要介绍,如翻译、双线性、神经网络、双曲几何、旋转等。各方法细节请看原论文,文中错误欢迎指出,谢谢。
知识图谱嵌入(Knowledge Graph Embedding, KGE)学习知识库中的实体和关系的Embedding表示,是语义检索、知识问答、推荐等众多应⽤的基础研究。在具体了解KGE之前,我们先来看知识图谱是什么,为什么又要做知识图谱嵌入呢。
如下图所示,知识图谱是由大量的事实三元组组成,如(英国, 首都, 伦敦)便是真实世界中的知识,可用 (h,r,t) 进行表示,其中 h,t 表示头尾实体, r 表示关系。但我们知道,真实世界中知识是无限增长的,而知识图谱却不能包含真实世界中的所有知识,因此需在知识库中进行知识补全,或者称为链接预测。
如何进行链接预测呢?一个可行的方法便是将实体和关系进行Embedding表示,类似于Word2Vec,将字或词表示成Embedding信息。然后根据实体和关系的Embedding信息进行预测,比如利用头实体和关系去预测尾实体,或者利用尾实体和关系去预测头实体。当然,Embedding信息也可应用到其他领域,比如知识问答、文本信息增强、语义检索等。
2. 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≈t ,即r是头尾实体之间的翻译关系,并定义评分函数为 fr(h,t)=||h+r−t||22 ,优化目标是最小化评分函数。TransE能够解决1-1类别的关系,但不能够很好的解决1-N, N-1, N-N关系。比如(流浪地球,演员,吴京)、(流浪地球,演员,吴孟达)两个三元组,当头实体 h 和关系 r 相同时,TransE认为所有尾实体 t 具有相同的Embedding信息,但实际情况并非如此。
针对TransE存在的问题,TransH把头实体h和尾实体t投影到关系所在的超平面中,并定义评分函数为 fr(h,t)=||h⊥+r−t⊥||22 ,其中 h⊥=h−wrThwr,t⊥=t−wrTtwr 。经过投影后,尽管头实体h和关系r相同,尾实体t的Embedding信息也会不同,TransH能够一定程度上解决多对多的关系。
TransR认为TransE和TransH均是把实体和关系放在同一空间中进行考虑,但实体可能具有多个不同方面的属性,不同的关系也关注着实体的不同属性,因此把实体和关系放在同一空间中考虑是不准确的。因此,TransR构建实体空间和关系空间,并定义评分函数为 fr(h,t)=||h⊥+r−t⊥||22 ,其中 h⊥=hMr,t⊥=tMr , h⊥,t⊥ 属于实体空间, r 属于关系空间。
如下图所示,除了TransE, TransH, TransR以外,还有其他Trans模型,考虑实体和关系的概率性、稀疏性等问题,此处不再赘述。但总体上,Trans模型均是把关系当作头尾实体之间的翻译,解决知识库中所存在的多对多问题。
2.2 双线性模型
双线性模型计算实体和关系在向量空间中潜在语义的可信度,包括RESCAL、DisMult、ComplEx等模型。
RESCAL把关系利用满秩矩阵表示,并定义评分函数为 fr(h,t)=hTMrt 。能够看到,RESCAL的实体和关系之间全是矩阵运算,因此实体和关系的信息可以进行深层次交互,非常具有表现力。但同时,RESCAL容易过拟合,并且随着关系矩阵维度的增加,复杂度会很高,很难应用到大规模知识图谱。
针对RESCAL存在的问题,DisMult放松对关系矩阵的约束,把关系矩阵M_r利用对角矩阵表示,并定义损失函数为 fr(h,t)=hTdiag(Mr)t 。但DisMult过分简化了RESCAL模型,导致只能够解决知识库中存在的对称关系,不能够解决知识图谱中其他类型的关系。
针对DisMult存在的问题,ComplEx把DisMult扩展到复数空间表示,并定义评分函数为 fr(h,t)=Re(hTdiag(Mr)t¯) ,其中 h,t 均用复数表示, t¯ 表示 t 的共轭复数,Re(⋅) 表示取得复数的实部。ComplEx对DisMult扩展后,能够同时解决对称和非对称关系。ComplEx首次在KGE中引入复数方法,后面我们还能看到其他模型利用复数空间解决问题,并且可解决除对称、非对称外更复杂的对称类型。
如下图所示,除RESCAL, DisMult, ComplEx外,还有其他双线性模型,考虑实体和关系的潜在语义信息,获取实体和关系的深层次交互信息。
2.3 神经网络模型
多数翻译模型和双线性模型是16年之前模型,最近几年随着神经网络的兴起,也有利用神经网络解决KGE问题的模型,包括ConvE、CapsE等。
如下图所示,ConvE首先把头实体和关系转换为二维向量,接下来利用卷积层和全连接层获取交互信息,然后与矩阵W和尾实体进行计算,判断当前三元组的可信度。ConvE评分函数为 f(vec(f([h¯,r¯]∗w))W)t , h¯,r¯ 表示二维向量,w 表示卷积核, W 表示矩阵。ConvE模型上没什么新颖之处,只不过是比较早的利用卷积神经网络来对KGE进行建模。
如下图所示,CapsE采用胶囊神经网络模型,首先把头实体、关系、尾实体表示称 k×3 的矩阵,接下来通过卷积层获取其特征信息,然后对特征信息进行压缩,并进行动态路由,最后计算三元组的可信度,胶囊网络资料可参考苏神博客。CapsE只是胶囊网络在KGE问题上的简单应用,也没有特别新颖之处。
如下图所示,KG-BERT模型利用BERT进行fine-tuning,获取头实体、关系、尾实体信息,然后取CLS信息进行二分类,判断当前三元组可信度。
KGE除了利用卷积神经网络、胶囊网络、BERT模型外,也有模型利用深度神经网络、图注意力网络等方法,但均没有进行深层次扩展。个人认为,普通的神经网络模型不是特别适合解决KGE问题,不能够对知识图谱中实体的层次性、关系的多样性问题建模,仅仅只是获取实体和关系的深层次交互信息,没有可解释性。但可以多尝试图神经网络在KGE上的应用,比较符合图谱结构。
2.4 双曲几何模型
上面多次提到实体间具有层次性,比如爷爷--父亲--儿子关系,类似于树状结构。此时,可以利用双曲空间性质,在双曲空间中对实体的层次性建模,包括Poincare, MuRP等模型。
Poincare采用双曲几何中的庞加莱圆盘进行建模,其空间曲率为负。通过下图我们可以简单了解庞加莱圆盘性质,如下图(1)所示,是庞加莱圆盘中的测地线,可看作直线在双曲空间中的推广。如图(2)所示,图中每两个点之间线代表的长度是相同的。也就是说,离中心越远, 单位欧几里得空间的线段所代表的长度越长。如图(3)所示,当 ||u||2 和 ||v||2 趋近于1时,距离会变得无限大。双曲空间中两点之间距离计算方法为
d(h,t)=arcosh(1+2||h−t||22(1−||h||22)(1−||t|22|))
因为庞加莱圆盘性质,能够对实体间的层次性建模,学习图谱间的层次性信息。Poincare模型评分函数为 fr(h,t)=∑(h,t)∈Dloge−d(h,t)∑t′e−d(h,t′) ,其中 (h,t′) 为负样本,其目标是让相关联的三元组在庞加莱圆盘中具有更小的距离。但Poincare模型没有考虑到关系性质,而且不能够在庞加莱圆盘中进行复杂操作。另外,双曲空间需要黎曼优化方法,建议自行去了解相关数学知识,包括黎曼曲率张量、黎曼流形、黎曼优化等概念。
MuRP相对于Poincare而言更加完善,MuRP同时在双曲空间和欧式空间中建模,结合关系向量,能够处理图谱中所存在的多类型关系。MuRP首先将实体向量定义在庞加莱圆盘中,接下来将实体映射到欧式空间,并和关系进行操作,然后再将实体映射回庞加莱圆盘中进行距离计算,并用黎曼方法优化。MuRP评分函数为fr(h,t)=−dB(exp0c(Rlog0c(h)),r⊕ct)2+bh+bt ,其中 dB 表示在庞加莱圆盘中计算距离, log0c(⋅) 表示将庞加莱圆盘中的点映射到欧式空间, R 表示对角矩阵, exp0c(⋅) 表示将欧式空间中的点转移到庞加莱圆盘中, ⊕c 是莫比乌斯加法,为庞加莱空间中两向量相加, c 表示曲率。另外, bh,bt 表示头尾实体的偏置,如下图(2)所示,距离在 (bh+bt) 内均为正确的三元组。
dB=2ctanh−1(c||−x⊕cy||)
x⊕cy=(1+2c+c||y||2)x+(1−c||x||2)y1+2c+c2||x||2||y||2
expxc(v)=x⊕c(tanh(cλxc||v||2)vc||v||)
logxc(y)=2cλxctanh−1(c||−x⊕cy||)−x⊕cy−x⊕cy
通过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提出在复数空间中建模,把关系当作头尾实体之间的旋转,并定义评分函数为 fr(h,t)=||h∘r−t|| ,其中 {h,r,t}=eiθ=cosθ+isinθ ,RotatE从理论上证明能够解决对称/反对称、翻转、组合关系。另外,RotatE认为在训练过程中,很多三元组明显是错误的,因此RotatE提出自对抗的负采样方法,让错误样本更加明显,负采样和损失函数公式如下所示。
p(hj′,r,tj′|(hi′,r,ti′))=exp(α∗fr(hj′,tj′))∑iexp(α∗fr(hi′,ti′))
L=−logσ(γ−fr(h,t))−∑i=1np(hi′,r,ti′)logσ(fr(hi′,ti′)−γ)
RotatE是在二维复平面空间中进行操作,那么很自然的可以推广到三维复平面空间中。三维情况下旋转可以利用欧拉角和四元数等方法,但欧拉角存在死锁问题,因此QuatE采用四元数进行旋转,四元数可表示为 Q=a+bi+cj+dk 。QuatE定义评分函数为 fr(h,t)=h⊗r◃⋅t ,其中 h,r,t 均为四元数, r◃ 表示 r 的norm值, ⊗ 表示Hamilton product, ⋅ 表示内积。当然,继续推广,可以利用8元数进行旋转,但此时复杂度升高,结果并没有提升太多。再往上推广,有16元数,但16元数的乘法不满足交换律和结合律,因此不再考虑。
除了RotatE和QuatE利用复数空间解决对称/反对称、翻转、组合关系,DihEdral利用群论知识来解决上述关系。DihEdral采用二面体群进行旋转,如下图所示,二面体群具有两种性质,即旋转和对称操作。DihEdral将多个二面体群组成对角矩阵,并定义评分函数为 fr(h,t)=||RTh−t||22 ,其中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项目。
[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"
转载:https://blog.csdn.net/u013250861/article/details/128016926