TransE, TransR

TransE

最基本的模型。后面很多模型都是基于TransE对图的嵌入,再做后续的处理。
TransE的理论简单,它为实体和关系都设置一个向量,并要求一个三元组(h,r,t)在嵌入空间后的位置关系要保证 ∣ ∣ h + r − t ∣ ∣ ≈ 0 ||h+r-t||≈0 ∣∣h+rt∣∣0
算法如下
在这里插入图片描述input:S是三元组集合,E是实体集合,L是关系集合,超参数γ是为了让正负例距离至少拉开γ远,k是嵌入的维度

  1. 初始化关系 l l l
  2. 正则化,使其长度为1.
  3. 初始化实体e,这里没正则化,因为它更新的时候希望还保持长度为1,所以放循环里正则化。
    注意uniform是均匀分布,分布的区域就是给的两个数。
  4. loop
  5. 正则化e
  6. S b a t c h S_{batch} Sbatch:在S里采样b个用于本次训练
  7. T b a t c h T_{batch} Tbatch:初始化是空,功能看后面
  8. for 循环 S b a t c h S_{batch} Sbatch
  9. 为每个三元组采样一个负例,即错误的三元组。怎么采任你发挥,但只能改实体,不能改关系。
  10. 打包正负例为一组,存到 T b a t c h T_{batch} Tbatch
  11. end for。所以这个for纯粹是训练数据的准备阶段。
  12. 套公式,并梯度更新各个向量。
  13. end loop

TransR

它把空间分为实体空间和关系空间。
让我举个例子说明它如何工作:
假设老师A与学生a关系为师生r
Aa在实体空间的嵌入用符号表示为A和a
经r对应的关系矩阵Mr转换A和a,得 A r = M r A A_r=M_rA Ar=MrA a r = M r a a_r=M_ra ar=Mra此时Ar和ar就是关系空间的向量了。
我们会训练Mr,让它能做到使Ar和ar的距离恰好等于r。
||注:r也是需要训练的。

我们回过头看实体空间,它的功能是什么?
它要保证这些实体在实体空间里的嵌入能满足不同关系空间的要求。

TransR可以精准地表示1-to-n关系。还以老师学生举例。
TransR可能把学生们分散在实体空间的任意位置,但经Mr变换后,学生们在r的关系空间里,或许会全部变成同一个点or聚成一堆。这时候不就能很简单地训练老师在r的嵌入和r本身的嵌入了吗?只要1-to-n关系的n能聚在一起,1-to-n就是小问题了。

TransR的评分函数很简单 f r ( h , t ) = ∣ ∣ h r + r − t r ∣ ∣ 2 2 f_r(h,t)=||h_r+r-t_r||^2_2 fr(h,t)=∣∣hr+rtr22 h r = M r h , t r = M r t h_r=M_rh, t_r=M_rt hr=Mrh,tr=Mrt

论文要求所有嵌入的长度都要比1小,因为等比例放大的嵌入是无意义的,你不管一下它们可能训着训着就上天了,就不停地变大了。

有了评分函数,你可以使用TransE的负采样和loss函数训练了。
超参数γ在TransR中的效果和在TransE中一样,同样是让不符合关系r的其他实体躲远点,距离至少为γ。论文中的这张图就是γ发挥作用的效果,在关系空间中把无关的三角形实体从hr和tr周围赶走了。
在这里插入图片描述

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值