基于翻译的模型-TransE,TransH,TransR,TransD

基于翻译的模型

TransE模型

  • TransE认为在知识库中,三元组可以看成头实体h到尾实体t利用关系r所进行的翻译。

  • 比如,<柏拉图,老师,苏格拉底>头实体“柏拉图”的向量加上关系“老师”的向量,应该尽可能和尾实体“苏格拉底”的向量接近,也就是h+r≈t

f r ( h , t ) = ∣ ∣ h + r − t ∣ ∣ l 1 / l 2 L = ∑ ( h , r , t ) ∈ S ∑ ( h ′ , r ′ , t ′ ) ∈ S ′ [ γ + f γ ( h , t ) − f r ( h ′ , t ′ ) ] + f_r(\textbf h,\textbf t)=||\textbf h + \textbf r -\textbf t||_{l_1/l_2}\\ L=\sum_{(h,r,t) \in S}\sum_{(h^{'},r^{'},t^{'})\in S^{'}}[\gamma + f_\gamma( \textbf h, \textbf t) - f_r(\textbf h^{'}, \textbf t^{'})]_+ fr(h,t)=h+rtl1/l2L=(h,r,t)S(h,r,t)S[γ+fγ(h,t)fr(h,t)]+

  • γ是间隔参数,S是正例集合(知识库中已有的三元组),S’是负例集合(关系r的三元组头尾实体进行随机构造)。

  • [ X ] + [X]_+ [X]+表示正值函数,即X>0,时, [ X ] + [X]_+ [X]+=x;当X<=0时, [ X ] + [X]_+ [X]+=0

  • 但是这个模型只能处理一对一的关系,不适合一对多/多对一关系

    • 比如多对一关系,比如<帕拉图,性别,男> <特朗普,性别,男>,两个三元组有着相同的关系和尾实体,导致帕拉图跟特朗普的向量相近。两者除了性别相同,在其他方面显然完全不同。

TransH模型

  • 放宽了h+r≈t这一严格约束,只要求头尾实体在关系r相对应的超平面上的投影彼此接近即可。

  • 头实体向量h和尾实体向量t在超平面上利用法向量 W r W_r Wr映射为

h ⊥ = h − W r T h W r 和 t ⊥ = t − W r T t W r h_\bot=h-W_r^ThW_r和t_\bot=t-W_r^TtW_r h=hWrThWrt=tWrTtWr

  • 关系r在超平面上的向量表示为 d r d_r dr
  • f r ( h , t ) = ∣ ∣ ( h − W r T h W r ) + d r − ( t − W r T t W r ) ∣ ∣ l 1 / l 2 f_r(h,t)=||(h-W_r^ThW_r)+d_r-(t-W^T_rtW_r)||_{l_1/l_2} fr(h,t)=(hWrThWr)+dr(tWrTtWr)l1/l2

TransR模型

  • 在TransE模型和TransH模型中,实体和关系都在相同的空间进行表示。这种做法无法区分两个语义相近的实体在某些特定方向(关系)上的不同。

  • 比如,“马克思”和“恩格斯”可以认为是两个相似的实体,但是<马克思,民族,犹太民族>和<恩格斯,民族,德意志民族>不同。

  • 因此TransR提出为每个关系构造相应的向量空间。(注意,TransH模型下是超平面)

  • 具体地说,TransR模型将头实体向量h和尾实体向量t映射为 h r = M r h h_r=M_rh hr=Mrh t r = M r t t_r=M_rt tr=Mrt。因此,TransR模型的损失函数为: f r ( h , t ) = ∣ ∣ h r + r − t r ∣ ∣ l 1 , l 2 f_r(h,t)=||h_r + r - t_r||_{l_1,l2} fr(h,t)=hr+rtrl1,l2

TransR缺点

  • 模型利用了复杂的矩阵计算,将头尾实体映射到关系向量空间中,增加了计算复杂度。

  • 其次,对于一个三元组来说,头实体和尾实体很可能不是一个实体。

    • 比如,<帕拉图,出生地,希腊>。“柏拉图”,“希腊”是两个不同的实体,使用相同的映射矩阵 M r M_r Mr很明显不合理。
  • 最后,Trans模型中实体的映射关系仅由关系决定,但显然实体本身对映射也有影响。

TransD模型

  • TransD模型认为映射函数应该与实体、关系同时相关。

  • TransD模型修改了映射函数。对于头尾实体向量h和t,它们的映射函数分别是

M r h = r p h P T + I m × n , M r t = r p t p T + I m × n M_{rh}=r_ph_P^T+I^{m\times n},M_{rt}=r_pt_p^T+I^{m\times n} Mrh=rphPT+Im×n,Mrt=rptpT+Im×n

  • 其中, I m × n I^{m\times n} Im×n是单位矩阵。在这里,头实体和尾实体分别用两个不同的映射矩阵 M r h M_{rh} Mrh M r t M_{rt} Mrt进行投影。头实体的映射矩阵由关系向量 r p r_p rp与头实体映射向量 h p T h^T_p hpT 共同决定;尾实体的映射矩阵由关系向量 r p r_p rp与尾实体映射向量 t p T t_p^T tpT共同决定。那么映射后得到的头实体和尾实体向量分别为:

f r ( h + t ) = ∣ ∣ h ⊥ + r − t ⊥ ∣ ∣ l 1 / l 2 f_r(h+t)=||h_{\bot}+r-t_{\bot}||_{l_1/l_2} fr(h+t)=h+rtl1/l2

  • 下表p表示投影向量,h, h p h_p hp,t, t p ∈ R n t_p\in \mathbb{R}^n tpRn,r, r p ∈ R r_p\in \mathbb{R} rpR
  • 映射矩阵的每一个元素都包含了实体和关系信息。

你可能感兴趣的:(知识图谱)