知识图谱——TransH模型原理
1 从TransE到TransH模型
在之前的文章知识图谱——TransE模型原理中,我们介绍了TransE模型的基本原理,对于TransE模型而言,其核心思想为:
h
+
r
=
t
h+r=t
h+r=t
其中h是头实体向量,r是关系向量,t是尾实体向量。根据这个核心公式,我们不难发现其存在着一定的局限性。比如当存在多对一 关系的时候,假设
(
h
1
,
r
,
t
)
,
(
h
2
,
r
,
t
)
(h_1,r,t),(h_2,r,t)
(h1,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
)
,
(
t
,
r
,
h
)
(h,r,t),(t,r,h)
(h,r,t),(t,r,h)均在图谱中出现的时候,会计算出r=0,h=t 。
总的来说,TransE模型在处理多对一,多对多,自反关系的时候,会有很多局限性。为了解决上面的我们提到的问题。提出了TranH模型
2 TransH模型
2.1 基本思想
针对每一个关系r,都给出一个超平面Wr,在Wr超平面上定义关系向量dr,在将原有的头实体h和尾实体t映射到超平面上为hr,tr。要求正确的三元组满足下面的公式
h
r
+
d
r
=
t
r
hr+dr=tr
hr+dr=tr
我们用一张图来表示这个过程:
2.2 相对于TransE的改进
我们之前提到了,在TranE模型中,如果h1和h2向量都存在着同一个关系r和同一个尾实体t。那么在TransE中h1和h2是相同的(或者可以说是特别近似的。)
而在TransH中,如果对于h1和h2向量都存在一个三元组(h1,r,t)和(h2,r,t)。通过TranH中关系r的超平面的映射,则有:
h
1
r
+
d
r
=
t
r
h_{1r} + dr = t_r
h1r+dr=tr
h
2
r
+
d
r
=
t
r
h_{2r} + dr = t_r
h2r+dr=tr
也就是说
h
1
,
h
2
h_1,h_2
h1,h2在超平面上的映射是形同或者近似的。但是对于
h
1
,
h
2
h_1,h_2
h1,h2本身可以是不相近的,也就是可以区分的。如下图所示。
2.3 TranH数学推导
首先,我们假设w为关系平面Wr 的单位法向量,在原始的向量h在法向量w上的投影长度为:
∣
w
∣
∗
∣
h
∣
∗
c
o
s
θ
|w|*|h|*cosθ
∣w∣∗∣h∣∗cosθ
整理成向量的形式就是:
∣
w
∣
∗
∣
h
∣
∗
c
o
s
θ
∗
w
|w|*|h|*cosθ * w
∣w∣∗∣h∣∗cosθ∗w
其中,一定要注意的是w是单位法向量。
也就是说,原始向量h在关系平面Wr上的单位法向量的投影为:
h
w
=
w
T
h
w
h_w = w^Thw
hw=wThw
我们用图来表示就是:
则,我们可以确定的是对于映射向量hr有:
h
r
=
h
−
h
w
=
h
r
−
w
T
h
w
h_r=h-h_w=h_r-w^Thw
hr=h−hw=hr−wThw
同理,我们可以确定的有:
t
w
=
w
T
t
w
t_w=w^Ttw
tw=wTtw
t
r
=
t
−
t
w
=
t
−
w
T
t
w
t_r = t-t_w=t-w^Ttw
tr=t−tw=t−wTtw
然后我们回忆一下,TransE模型中目标函数:
m
i
n
∑
(
h
,
r
,
t
)
∈
G
∑
(
h
′
,
r
′
,
t
′
)
∈
G
′
[
γ
+
(
h
+
r
−
t
)
2
−
(
h
′
+
r
′
−
t
′
)
2
]
+
min∑_{(h,r,t)∈G}∑_{(h',r',t')∈G'}[γ+(h+r-t)^2-(h'+r'-t')^2]_+
min(h,r,t)∈G∑(h′,r′,t′)∈G′∑[γ+(h+r−t)2−(h′+r′−t′)2]+
这里我们采用的是L2范数(欧式距离),在TranH中,我们也采用这种方式,有兴趣的读者可以采取其他的距离计算公式来计算。
与TranE模型的目标函数类似,我们希望的是最小化在关系平面上的正确三元组的距离差,最小化错误三元组距离差的相反数,也就是:
[
γ
+
(
h
r
+
d
r
−
t
r
)
2
−
(
h
r
′
+
d
r
−
t
r
′
)
2
]
+
[γ+(h_r+d_r-t_r)^2-(h_r'+d_r-t_r')^2]_+
[γ+(hr+dr−tr)2−(hr′+dr−tr′)2]+
其中,
[
x
]
+
[x]_+
[x]+表示max(x,0),而对于
h
r
,
t
r
,
h
r
′
,
t
r
′
h_r,t_r,h_r',t_r'
hr,tr,hr′,tr′有:
h
r
=
h
−
h
w
=
h
−
w
T
h
w
h_r=h-h_w=h-w^Thw
hr=h−hw=h−wThw
t
r
=
t
−
t
w
=
t
−
w
T
t
w
t_r = t-t_w=t-w^Ttw
tr=t−tw=t−wTtw
t
r
′
=
t
′
−
t
w
′
=
t
′
−
w
T
t
′
w
t_r' = t'-t_w'=t'-w^Tt'w
tr′=t′−tw′=t′−wTt′w
h
r
′
=
h
′
−
h
w
′
=
h
′
−
w
T
h
′
w
h_r' = h'-h_w'=h'-w^Th'w
hr′=h′−hw′=h′−wTh′w
则可以定义总的目标函数为:
m
i
n
∑
(
h
,
r
,
t
)
∈
G
∑
(
h
′
,
r
′
,
t
′
)
∈
G
′
[
γ
+
(
h
−
w
T
h
w
+
d
r
−
t
+
w
T
t
w
)
2
−
(
h
′
−
w
T
h
′
w
+
d
r
−
t
′
+
w
T
t
′
w
)
2
]
+
min∑_{(h,r,t)∈G}∑_{(h',r',t')∈G'}[γ+(h-w^Thw+d_r-t+w^Ttw)^2-(h'-w^Th'w+d_r-t'+w^Tt'w)^2]_+
min(h,r,t)∈G∑(h′,r′,t′)∈G′∑[γ+(h−wThw+dr−t+wTtw)2−(h′−wTh′w+dr−t′+wTt′w)2]+
进而,损失函数就确定为:
L
o
s
s
=
∑
(
h
,
r
,
t
)
∈
G
∑
(
h
′
,
r
′
,
t
′
)
∈
G
′
[
γ
+
(
h
−
w
T
h
w
+
d
r
−
t
+
w
T
t
w
)
2
−
(
h
′
−
w
T
h
′
w
+
d
r
−
t
′
+
w
T
t
′
w
)
2
]
+
Loss =∑_{(h,r,t)∈G}∑_{(h',r',t')∈G'}[γ+(h-w^Thw+d_r-t+w^Ttw)^2-(h'-w^Th'w+d_r-t'+w^Tt'w)^2]_+
Loss=(h,r,t)∈G∑(h′,r′,t′)∈G′∑[γ+(h−wThw+dr−t+wTtw)2−(h′−wTh′w+dr−t′+wTt′w)2]+
下面根据损失函数分别对参数进行求导:对于某一个
h
i
h_i
hi而言,有:
∂
L
o
s
s
∂
h
i
=
∑
(
h
i
,
r
,
t
)
∈
G
∑
(
h
′
,
r
′
,
t
′
)
{
2
(
h
i
−
w
T
h
w
+
d
r
−
t
+
w
T
t
w
)
∗
(
−
w
r
2
)
γ
+
(
h
−
w
T
h
w
+
d
r
−
t
+
w
T
t
w
)
2
−
(
h
′
−
w
T
h
′
w
+
d
r
−
t
′
+
w
T
t
′
w
)
2
>
0
0
γ
+
(
h
−
w
T
h
w
+
d
r
−
t
+
w
T
t
w
)
2
−
(
h
′
−
w
T
h
′
w
+
d
r
−
t
′
+
w
T
t
′
w
)
2
<
=
0
\frac{∂Loss}{∂h_i}=∑_{(h_i,r,t)∈G}∑_{(h',r',t')} \begin{cases} 2(h_i-w^Thw+d_r-t+w^Ttw)*(-w_r^2)&&γ+(h-w^Thw+d_r-t+w^Ttw)^2-(h'-w^Th'w+d_r-t'+w^Tt'w)^2>0\\ 0&&γ+(h-w^Thw+d_r-t+w^Ttw)^2-(h'-w^Th'w+d_r-t'+w^Tt'w)^2<=0 \end{cases}
∂hi∂Loss=(hi,r,t)∈G∑(h′,r′,t′)∑{2(hi−wThw+dr−t+wTtw)∗(−wr2)0γ+(h−wThw+dr−t+wTtw)2−(h′−wTh′w+dr−t′+wTt′w)2>0γ+(h−wThw+dr−t+wTtw)2−(h′−wTh′w+dr−t′+wTt′w)2<=0
同理对于
t
i
,
h
i
′
,
t
i
′
t_i,h_i',t_i'
ti,hi′,ti′有
∂
L
o
s
s
∂
t
i
=
∑
(
h
,
r
,
t
i
)
∈
G
∑
(
h
′
,
r
′
,
t
′
)
{
−
2
(
h
−
w
T
h
w
+
d
r
−
t
i
+
w
T
t
i
w
)
∗
w
r
2
γ
+
(
h
−
w
T
h
w
+
d
r
−
t
i
+
w
T
t
i
w
)
2
−
(
h
′
−
w
T
h
′
w
+
d
r
−
t
′
+
w
T
t
′
w
)
2
>
0
0
γ
+
(
h
−
w
T
h
w
+
d
r
−
t
+
w
T
t
w
)
2
−
(
h
′
−
w
T
h
′
w
+
d
r
−
t
′
+
w
T
t
′
w
)
2
<
=
0
\frac{∂Loss}{∂t_i}=∑_{(h,r,t_i)∈G}∑_{(h',r',t')} \begin{cases} -2(h-w^Thw+d_r-t_i+w^Tt_iw)*w_r^2&&γ+(h-w^Thw+d_r-t_i+w^Tt_iw)^2-(h'-w^Th'w+d_r-t'+w^Tt'w)^2>0\\ 0&&γ+(h-w^Thw+d_r-t+w^Ttw)^2-(h'-w^Th'w+d_r-t'+w^Tt'w)^2<=0 \end{cases}
∂ti∂Loss=(h,r,ti)∈G∑(h′,r′,t′)∑{−2(h−wThw+dr−ti+wTtiw)∗wr20γ+(h−wThw+dr−ti+wTtiw)2−(h′−wTh′w+dr−t′+wTt′w)2>0γ+(h−wThw+dr−t+wTtw)2−(h′−wTh′w+dr−t′+wTt′w)2<=0
∂
L
o
s
s
∂
h
i
′
=
∑
(
h
,
r
,
t
)
∈
G
∑
(
h
i
′
,
r
′
,
t
′
)
{
−
2
(
h
i
′
−
w
T
h
i
′
w
+
d
r
−
t
′
+
w
T
t
′
w
)
∗
w
r
2
γ
+
(
h
−
w
T
h
w
+
d
r
−
t
+
w
T
t
w
)
2
−
(
h
i
′
−
w
T
h
i
′
w
+
d
r
−
t
′
+
w
T
t
′
w
)
2
>
0
0
γ
+
(
h
−
w
T
h
w
+
d
r
−
t
+
w
T
t
w
)
2
−
(
h
i
′
−
w
T
h
i
′
w
+
d
r
−
t
′
+
w
T
t
′
w
)
2
<
=
0
\frac{∂Loss}{∂h_i'}=∑_{(h,r,t)∈G}∑_{(h_i',r',t')} \begin{cases} -2(h_i'-w^Th_i'w+d_r-t'+w^Tt'w)*w_r^2&&γ+(h-w^Thw+d_r-t+w^Ttw)^2-(h_i'-w^Th_i'w+d_r-t'+w^Tt'w)^2>0\\ 0&&γ+(h-w^Thw+d_r-t+w^Ttw)^2-(h_i'-w^Th_i'w+d_r-t'+w^Tt'w)^2<=0 \end{cases}
∂hi′∂Loss=(h,r,t)∈G∑(hi′,r′,t′)∑{−2(hi′−wThi′w+dr−t′+wTt′w)∗wr20γ+(h−wThw+dr−t+wTtw)2−(hi′−wThi′w+dr−t′+wTt′w)2>0γ+(h−wThw+dr−t+wTtw)2−(hi′−wThi′w+dr−t′+wTt′w)2<=0
∂
L
o
s
s
∂
t
i
′
=
∑
(
h
,
r
,
t
)
∈
G
∑
(
h
′
,
r
′
,
t
i
′
)
{
2
(
h
′
−
w
T
h
i
′
w
+
d
r
−
t
i
′
+
w
T
t
i
′
w
)
∗
(
−
w
r
2
)
γ
+
(
h
−
w
T
h
w
+
d
r
−
t
+
w
T
t
w
)
2
−
(
h
′
−
w
T
h
′
w
+
d
r
−
t
i
′
+
w
T
t
i
′
w
)
2
>
0
0
γ
+
(
h
−
w
T
h
w
+
d
r
−
t
+
w
T
t
w
)
2
−
(
h
′
−
w
T
h
′
w
+
d
r
−
t
i
′
+
w
T
t
i
′
w
)
2
<
=
0
\frac{∂Loss}{∂t_i'}=∑_{(h,r,t)∈G}∑_{(h',r',t_i')} \begin{cases} 2(h'-w^Th_i'w+d_r-t_i'+w^Tt_i'w)*(-w_r^2)&&γ+(h-w^Thw+d_r-t+w^Ttw)^2-(h'-w^Th'w+d_r-t_i'+w^Tt_i'w)^2>0\\ 0&&γ+(h-w^Thw+d_r-t+w^Ttw)^2-(h'-w^Th'w+d_r-t_i'+w^Tt_i'w)^2<=0 \end{cases}
∂ti′∂Loss=(h,r,t)∈G∑(h′,r′,ti′)∑{2(h′−wThi′w+dr−ti′+wTti′w)∗(−wr2)0γ+(h−wThw+dr−t+wTtw)2−(h′−wTh′w+dr−ti′+wTti′w)2>0γ+(h−wThw+dr−t+wTtw)2−(h′−wTh′w+dr−ti′+wTti′w)2<=0