知识图谱——TransH模型原理

知识图谱——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=th2+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θ whcosθ
整理成向量的形式就是:
∣ w ∣ ∗ ∣ h ∣ ∗ c o s θ ∗ w |w|*|h|*cosθ * w whcosθ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=hhw=hrwThw
同理,我们可以确定的有:
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=ttw=twTtw

然后我们回忆一下,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+rt)2(h+rt)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+drtr)2(hr+drtr)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=hhw=hwThw
t r = t − t w = t − w T t w t_r = t-t_w=t-w^Ttw tr=ttw=twTtw
t r ′ = t ′ − t w ′ = t ′ − w T t ′ w t_r' = t'-t_w'=t'-w^Tt'w tr=ttw=twTtw
h r ′ = h ′ − h w ′ = h ′ − w T h ′ w h_r' = h'-h_w'=h'-w^Th'w hr=hhw=hwThw

则可以定义总的目标函数为:
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[γ+(hwThw+drt+wTtw)2(hwThw+drt+wTtw)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[γ+(hwThw+drt+wTtw)2(hwThw+drt+wTtw)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} hiLoss=(hi,r,t)G(h,r,t){2(hiwThw+drt+wTtw)(wr2)0γ+(hwThw+drt+wTtw)2(hwThw+drt+wTtw)2>0γ+(hwThw+drt+wTtw)2(hwThw+drt+wTtw)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} tiLoss=(h,r,ti)G(h,r,t){2(hwThw+drti+wTtiw)wr20γ+(hwThw+drti+wTtiw)2(hwThw+drt+wTtw)2>0γ+(hwThw+drt+wTtw)2(hwThw+drt+wTtw)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} hiLoss=(h,r,t)G(hi,r,t){2(hiwThiw+drt+wTtw)wr20γ+(hwThw+drt+wTtw)2(hiwThiw+drt+wTtw)2>0γ+(hwThw+drt+wTtw)2(hiwThiw+drt+wTtw)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} tiLoss=(h,r,t)G(h,r,ti){2(hwThiw+drti+wTtiw)(wr2)0γ+(hwThw+drt+wTtw)2(hwThw+drti+wTtiw)2>0γ+(hwThw+drt+wTtw)2(hwThw+drti+wTtiw)2<=0

3、参考文章

  1. TransH 算法详解
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值