知识图谱经典方法 Knowledge Graph Embedding:从TransE,TransH到TransR

1.背景

知识图谱编码了实体和它们丰富的关联之间的结构化信息,但是现实场景中的实体和关系成千上万,想把一个知识图谱填充满是一件很难的事情。因此,知识图谱填充即是基于已有的图谱建立实体到实体的关系。KG 中实体和关系都是通过Embedding建立关联,让实体和关系有一个好的表达能够更好的完成知识图谱的填充任务。

2.演变

最简单最有效的方法是TransE。TransE将起始实体,关系,指向实体映射成同一空间的向量,如果(head,relation,tail)存在,那么 h+rth+r \approx t,目标函数为:
fr(h,t)=h+rt22f_{r}(h,t) = \left\|h+r-t\right\|_{2}^{2}
TransE是符合直觉的,但是TransE却无法解决一对多,多对多的问题。举个例子,假设存在mm不同的实体,都有 hi+rth_{i}+r \approx t,其中 0<i<=m0<i<=m,那么按照TransE的方法则认定为这mm个实体是同一个实体,但是显然不是。
为了解决一对多和多对多的问题,可以考虑将具有以上关系的实体放置与同一个平面,TransH即是基于这样的考虑。通过关系rr的法向量wrw_{r}建立一个关系平面,然后将实体hh和实体tt映射到该平面,分别得到hh_{\perp}tt_{\perp}。剩下的就是和TransE一样的公式来最小化目标函数:
fr(h,t)=h+rt22f_{r}(h,t) = \left\|h_{\perp}+r-t_{\perp}\right\|_{2}^{2}
其中,h=hwrThwrh_{\perp}=h-w_{r}^\mathrm{T}hw_{r}t=twrTtwrt_{\perp}=t-w_{r}^\mathrm{T}tw_{r}
进行到这里,好像没什么问题了。但是TransH的假设是实体和关系都处于同一个空间,这样才有映射到一个关系平面去求实体的映射。假如关系空间不同于实体空间,TransH就无能为力了。而且,好像实体和关系处于不同空间更贴近真实场景(实体是名词,关系是动词,好像有点牵强,hh)。TransR通过关系矩阵将实体映射到关系空间,再最小化三元组的距离。
在这里插入图片描述
其中,hr=hMrh_{r}=hM_{r}tr=tMrt_{r}=tM_{r}
在这里插入图片描述

3.应用

  • 推荐系统
    Relational Collaborative Filtering: Modeling Multiple Item Relations for Recommendation,SIGIR 2019.
    Collaborative Knowledge Base Embedding for Recommender Systems,KDD 2016
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章