从TransE到TransH模型
在之前知识图谱模型中,我们介绍了TransE模型的基本原理,对于TransE模型其基本原理为:
h
+
r
=
t
h + r = t
h+r=t
其中
h
h
h是头实体向量,
r
r
r是关系向量,
t
t
t是尾实体向量。根据这个核心公式,我们不难发现其存在一定的局限性。比如当存在多对一关系的时候,假设
(
h
1
,
r
,
t
)
(h_1,r,t)
(h1,r,t),
(
h
2
,
r
,
t
)
(h_2,r,t)
(h2,r,t)。根据TransE假设,可以确定的是:
h
1
+
r
=
t
,
h
2
+
r
=
t
h_1 + r = t,h_2 + r = t
h1+r=t,h2+r=t
这里
h
1
,
h
2
h_1,h_2
h1,h2两个头实体的向量过于相近,与此同时,当存在
(
h
,
r
,
t
)
(h,r,t)
(h,r,t),
(
t
,
r
,
h
)
(t,r,h)
(t,r,h)均在图谱中出现的时候,会计算出
r
=
0
,
h
=
t
r = 0,h = t
r=0,h=t.
总之来说,TransE模型在处理多对一, 多对多,自反关系的时候,会有很多局限性。为了解决上面我们提到的问题,衍生出TransH模型。
TransH基本思想
基本思想
针对每个关系
r
r
r,都给出一个超平面
w
r
wr
wr,在
w
r
wr
wr超平面上定义关系向量
d
r
dr
dr,将原有的头实体
h
h
h和尾实体
t
t
t映射到超平面为
h
r
hr
hr和
t
r
tr
tr.要求正确的三元组满足下面公式:
h
r
+
d
r
=
t
r
hr + dr = tr
hr+dr=tr
用一张图来表示这个过程:
基于TransE改进
我们之前提到了,在TransE模型中,如果
h
1
h1
h1和
h
2
h2
h2向量都存在着同一关系
r
r
r和同一尾实体
t
t
t.那么在TransE中
h
1
h1
h1和
h
2
h2
h2是相同的。(或者可以说是特别近似的)
而在TranH中,如果对于
h
1
,
h
2
h1,h2
h1,h2向量都存在一个三元组
(
h
1
,
r
,
t
)
和
(
h
2
,
r
,
t
)
(h1,r,t)和(h2,r,t)
(h1,r,t)和(h2,r,t)。通过TranH关系
r
r
r的超平面映射。则有:
h
1
r
+
d
r
=
t
r
h_{1r} + dr = tr
h1r+dr=tr
h
2
r
+
d
r
=
t
r
h_{2r} + dr = tr
h2r+dr=tr
也就是说
h
1
,
h
2
h1,h2
h1,h2在超平面的映射是形同的或者近似的,但是对于
h
1
,
h
2
h_1,h_2
h1,h2本身可以是不相近的,也就是可以区分的,如下图所示:
解决多对一关系的。
数学推导
首先,我们假设
w
w
w为关系平面
w
r
wr
wr的单位法向量。在原始向量
h
h
h在法向量
w
w
w上的投影长度为:
∣
w
∣
∗
∣
h
∣
∗
c
o
s
(
θ
)
|w|*|h|*cos(\theta)
∣w∣∗∣h∣∗cos(θ)
整理成向量的形式为:
其中,一定要注意
w
w
w是单位法向量。
也就是说,原始向量
h
h
h在关系平面
w
r
wr
wr上的单位法向量的投影为:
h
w
=
w
T
h
w
h_w = w^{T}hw
hw=wThw
则,我们可以确定对于映射向量
h
r
hr
hr有:
h
r
=
h
−
h
w
=
h
r
−
w
T
h
w
h_r = h - h_w = h_r - w^{T}hw
hr=h−hw=hr−wThw
同理,我们可以确定有:
t
w
=
w
T
t
w
t_w = w^{T}tw
tw=wTtw
t
r
=
t
−
t
w
=
t
−
w
T
t
w
t_r = t - t_w = t - w^{T}tw
tr=t−tw=t−wTtw
然后我们回一下,TransE目标函数为:
这里我们采用的是
L
2
L2
L2范数,(欧氏距离)。在TransH中,我们也采用这种方式,有兴趣的读者可以采用其他距离来计算。
与TransE函数目标类似,我们希望的是最小化在关系平面上的正确三元组的距离差,最小化错误三元组的距离差的相反数。也就是:
则可以定义总的目标函数为:
损失函数,以及根据loss函数对参数进行求导,则公式定义为:
目标函数,总损失函数以及求导公式参考