本文记录了在阅读TransD论文时的相关内容,如果有同学在做相关工作,欢迎邮件与我沟通联系 zhaoliang19960421@outlook.com
背景
TransE无法解决的自反、一对多、多对一关系问题,在TransR/CTransR中通过将实体和关系在不同空间表示的方法进行了解决。
TransR的做法是让实体空间单纯的表示实体的属性信息,关系空间单纯的表示实体之间的关系,对于每个实体都有一个特定的映射矩阵,通过这个矩阵将实体映射到关系的空间中,在关系空间中进行TransE.
但是TRansR存在几个问题
- 从实体空间到关系空间的映射只和关系有关,这是不合理的,实体到关系的映射,应该是实体和关系都有作用才对
- 在同一个关系下,所有的实体公用一个映射矩阵。关系其实是考虑了实体的不同的属性,在实体中这个被关注到的属性的分布是不一样的,而且在一个三元组中,头实体和尾实体公用一个映射矩阵也是不合理的,同一个关系实际上在三元组中关注到的属性在头实体和尾实体中是不一样的,那么映射矩阵应该是对于每个实体而言都不一样的才对。
- 参数量太大,每个实体都有一个映射矩阵,映射矩阵的维度是 实体向量长度*关系向量长度,训练困难
思路
TransD 的思路就是改进了TransR中的映射方法,将每个关系固定的映射矩阵进行了拆分,在映射时,关系和实体都有参与,那么对于每个 实体-关系 对儿而言,他的映射方法就是不一样的。
为了达到这样的方法,对于每个实体和关系都要有两个向量,一个用来构造语义,一个用来构造映射矩阵。