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

1.背景

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

2.演变

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

3.应用

  • 推荐系统
    Relational Collaborative Filtering: Modeling Multiple Item Relations for Recommendation,SIGIR 2019.
    Collaborative Knowledge Base Embedding for Recommender Systems,KDD 2016

你可能感兴趣的:(数据挖掘,推荐系统,知识图谱,TransR)