引入

嵌入模型是将知识图谱映射到向量空间的模型。正如在TransE中所提到的,用已知的三元组实体关系来构造映射,再用该映射预测未知的三元组实体关系。

自从TransE被提出以来,相继衍生了不同的变种,如TransH,TransR,TransG,pTransE。另外还有基于双线性的模型RESCAL,DistMult,HolE,ComplEx,和基于李群的TorusE。

回顾TransE及其缺陷

在TransE的模型训练算法中,有三条基本原则。第一,h+r=t。第二,负抽样得到损失三元组。第三,在计算实体距离之前,对所有的实体和关系向量都进行了归一化(正则化)。这是由于向量空间可以无限扩张导致的,为了使其有界才使用了归一化,也就是在每一步计算之前将向量大小都规范到1。然而,这种规范化虽然避免了向量空间的无限扩张,但导致了新的矛盾产生。

首先从平面直观的向量和出发,在等腰三角形ΔABC中,有向量公式AB+BC=AC。假设此时||AB||=||BC||=1,且||AC||≠1,那么经过规范化后,||AB'||=||BC'||=||AC'||=1,在三个向量的方向不发生改变的条件下,三角形的三条边是无法闭合的。此时AB+BC≠AC,不满足第一条基本原则,即h+r=t。产生了矛盾。

其次,从向量空间的维度来看,当向量的长度被规定为某个确定的数值后,这些向量所形成的空间实际上被降维了。如在二维平面中,穷尽从原点出发的所有向量,得到的是一个圆;在三维空间中,穷尽从原点出发的所有向量,得到的是一个球面;同理适用于高维空间。当对所有n维实体向量归一化后,实际上将实体嵌入到了n-1维的向量空间中,它是n维空间的surface。若n=2,当关系也被归一化后,则可能出现以下情况:

深度学习多模型嵌套_向量空间

 

 实体被映射到圆上,但已知的三元组(A,r,A'),(B,r,B'),(C,r,C')却不能很好地在图中被表示出来。这样的嵌入效果只能勉强朝 h+r ≈ t 方向努力,也会为训练带来阻碍。

TorusE的提出&圆环面

TorusE就是根据TransE的局限性改进得到的,基本原则沿用了前两条。对于第三条原则,TorusE的解决方式是将映射空间由普通向量空间换成李群。

在TransE的嵌入模型中,向量空间需要满足的条件有:可微流形(局部具有欧几里得性质的空间,可以使用梯度下降法);空间中的+,-运算可微,是可交换群;可定义性,即能够定义距离函数。TorusE则在这基础之上增加了空间紧致性的条件,从而不再需要归一化。实际上,TransE中的向量空间就是一种可交换李群,但不紧致,因此用紧致的可交换李群作为嵌入空间。

李群定义:有限维光滑流形,运算的加法和逆运算都是光滑的映射,即可微、可解析的。

圆环面是一种紧致的可交换李群,呈轮胎状,如下图:

深度学习多模型嵌套_等价类_02

圆环面定义:一个n维圆环面Tn是一个商空间。Tn = Rn/~ = { [x] | x属于Rn }={ {y属于Rn | y~x} |x属于Rn },其中~为等价关系。且此处的y~x等价关系表示y-x属于Zn(整数空间),[x]=x+N表示x所在的等价类。

商空间定义:Rn/~为Rn关于~的商集。要求Rn上的ri的~等价关系类,则把Rn上所有元素关于ri(i=1,2,…)的全部等价类(一个等价类为一个集合)作为元素形成的集合。也就是集合的集合。

为了更好地理解商集和等价类,首先定义一个等价关系。等价关系需要满足自反性,传递性和对称性。假设等价关系为“朋友关系”,设为~。对于某个社区中的人A,所有与他有朋友关系的人A1,A2,A3…等的集合是A的一个等价类A_set。同理,在该社区中与B有朋友关系的B1,B2,B3…等人形成的集合是B的一个等价类B_set。显然Ai与Bj有可能是同一个人。若将该社区作为实空间,那么该实空间在~等价关系上的商空间为{A_set, B_set, …}。

商空间映射的例子: (1)∏:→ [x]  从某个 x 映射到该 x 的等价类,从实空间到商空间;(2)若g为微分同胚映射,有 g:[x] → e2πix表示从商空间映射到复数空间,gg-1均无穷可微;(3)μ([x],[y]) = [x]+[y] 等价于 [x+y] ,因为对于任意N1,N2使得 [x] = x+N1 和 [y] = y+N2,都能找到 N3 使得 [x+y] = x+y+N3

商空间中等价类距离函数的定义:

了解了商空间和等价类的概念后,就可以定义在圆环面上的距离函数了。显然,在原空间的某一个向量被映射到圆环面(商空间)上时变成了多个向量(向量的集合)。要度量原空间中两个向量在商空间等价类的距离,则考虑集合之间的距离表示。两个集合之间的距离等于分别从两个集合中随机取出一个向量后,这两个向量之间距离的最小值。也就是 d(S1,S2) = min d(x,y), x属于S1, y属于S2

根据不同的空间映射方式,两个等价类之间的距离有多种不同的表示方法。定义了以下三种距离函数,其中,(x',y')属于[x]×[y] 表示x'属于[x]且y'属于[y]。

(1)dL1([x],[y]) = min(x',y')属于[x]×[y|| x'-y' ||1 ,度量商空间中等价类的距离,利用集合距离的表示方法映射到实空间Rn计算,使用L1范数。

(2)dL2([x],[y]) = min(x',y')属于[x]×[y|| x'-y' ||2 ,同理,使用L2范数。

(3)del2([x],[y]) = || g([x]) - g([y]) ||2 = || e2πix - e2πiy||2 ,映射到复数空间中,使用L2范数计算。

TorusE模型

通过将嵌入空间定义在圆环面上,TorusE克服了TransE的局限性。模型设计如下。

TorusE所使用的距离函数f由上文定义的距离函数d构造,对应有三种:

(1)fL1(h,r,t) = 2dL1( [h]+[r], [t] )

(2)fL2(h,r,t) = ( 2dL2( [h]+[r], [t] ) )2

(3)feL2(h,r,t) = ( deL2( [h]+[r], [t] ) / 2 )2

训练时对基本原则 h+r=t 也变成了 [h]+[r]=[t]。

损失函数为:

深度学习多模型嵌套_深度学习多模型嵌套_03

其中fd是上述三种距离函数中的一种。除了归一化操作和损失函数的定义,算法的其他步骤与TransE一致。

计算技巧

观察基础距离函数d的定义,例:dL1([x],[y]) = min(x',y')属于[x]×[y|| x'-y' ||1

在真正运算时,并非穷尽[x]×[y]中所有的x'y'。充分利用等价关系的表达一致性,所有的x'y'都可以被表示为x'=x+N1y'=y+N2,其中N1N2为向量。求min(x'-y'),即选取最佳的N1N2。但是要如何选取呢?由于x'y'都是n维向量,则可以分开考虑元素xiyi。选取某个N1N2,也就是为每一对xiyi选取合适的ni。也就是说,只要使得每个(xi-yi)取得最小值即可。由于ni为整数,因此最小值必然在[0,1)之间。

举个例子,对于一维的xy,若x=0.5,y=3.8,那么[x]和[y]的最小距离应为多少?首先[x] = {…,-0.5,1.5,2.5,…},[y] = {…,2.8,3.8,4.8,…}。显然,有多种选取方法使得[x]和[y]的距离最小,如2.5和2.8,1.5和1.8等。这个时候可以发现,等价类中元素的整数部分对于求距离没有任何作用,因此只需考虑小数部分即可。从而计算方式变为,x取整为0.5,y取整为0.8,从而距离为0.3。

如前所述,对于n维向量,则每一维都需要进行求取小数部分的操作。基于L1范数的距离函数的计算式可以表示为:

深度学习多模型嵌套_等价关系_04

 

 其中π表示取整函数:

  

深度学习多模型嵌套_等价关系_05

从而简化了计算。

 

 

————原文《TorusE: Knowledge Graph Embedding on a Lie Group