PaperReading-TransD,ACL2015,《Knowledge Graph Embedding via Dynamic Mapping Matrix 》

本文记录了在阅读TransD论文时的相关内容,如果有同学在做相关工作,欢迎邮件与我沟通联系 [email protected]

背景

TransE无法解决的自反、一对多、多对一关系问题,在TransR/CTransR中通过将实体和关系在不同空间表示的方法进行了解决。
TransR的做法是让实体空间单纯的表示实体的属性信息,关系空间单纯的表示实体之间的关系,对于每个实体都有一个特定的映射矩阵,通过这个矩阵将实体映射到关系的空间中,在关系空间中进行TransE.
但是TRansR存在几个问题

  1. 从实体空间到关系空间的映射只和关系有关,这是不合理的,实体到关系的映射,应该是实体和关系都有作用才对
  2. 在同一个关系下,所有的实体公用一个映射矩阵。关系其实是考虑了实体的不同的属性,在实体中这个被关注到的属性的分布是不一样的,而且在一个三元组中,头实体和尾实体公用一个映射矩阵也是不合理的,同一个关系实际上在三元组中关注到的属性在头实体和尾实体中是不一样的,那么映射矩阵应该是对于每个实体而言都不一样的才对。
  3. 参数量太大,每个实体都有一个映射矩阵,映射矩阵的维度是 实体向量长度*关系向量长度,训练困难

思路

TransD 的思路就是改进了TransR中的映射方法,将每个关系固定的映射矩阵进行了拆分,在映射时,关系和实体都有参与,那么对于每个 实体-关系 对儿而言,他的映射方法就是不一样的。
为了达到这样的方法,对于每个实体和关系都要有两个向量,一个用来构造语义,一个用来构造映射矩阵。

1

论文上的对于每个实体-关系对都有一个映射矩阵MrhM_{rh},而这个映射矩阵是动态生成的,

1

论文中给出了这个矩阵得到的方法,是通过实体的映射向量hpTh_p^T和关系的映射向量rpr_p通过做内积得到的,这样的方法,可以给每个实体-关系对儿都有一个独特的映射方法,而且参数量不大,TransD的整体参数量是 2*实体个数*实体维度+2*关系个数*关系维度,是O(n)。但是TransR的参数量是 实体个数*实体维度+关系个数*关系维度+关系个数*实体维度*关系维度是O(n2)O(n^2)

求助

我在网络上搜索了很多,都没有找到很好的TransD的代码,如果您手里有,如果方便分享的话,请您邮件与我联系 [email protected] ,在此提前谢过了!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章