1.背景
知识图谱编码了实体和它们丰富的关联之间的结构化信息,但是现实场景中的实体和关系成千上万,想把一个知识图谱填充满是一件很难的事情。因此,知识图谱填充即是基于已有的图谱建立实体到实体的关系。KG 中实体和关系都是通过Embedding建立关联,让实体和关系有一个好的表达能够更好的完成知识图谱的填充任务。
2.演变
最简单最有效的方法是TransE。TransE将起始实体,关系,指向实体映射成同一空间的向量,如果(head,relation,tail)存在,那么
h
+
r
≈
t
h+r \approx t
h+r≈t,目标函数为:
f
r
(
h
,
t
)
=
∥
h
+
r
−
t
∥
2
2
f_{r}(h,t) = \left\|h+r-t\right\|_{2}^{2}
fr(h,t)=∥h+r−t∥22
TransE是符合直觉的,但是TransE却无法解决一对多,多对多的问题。举个例子,假设存在
m
m
m个不同的实体,都有
h
i
+
r
≈
t
h_{i}+r \approx t
hi+r≈t,其中
0
<
i
<
=
m
0<i<=m
0<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⊥+r−t⊥∥22
其中,
h
⊥
=
h
−
w
r
T
h
w
r
h_{\perp}=h-w_{r}^\mathrm{T}hw_{r}
h⊥=h−wrThwr,
t
⊥
=
t
−
w
r
T
t
w
r
t_{\perp}=t-w_{r}^\mathrm{T}tw_{r}
t⊥=t−wrTtwr。
进行到这里,好像没什么问题了。但是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。
3.应用
- 推荐系统
Relational Collaborative Filtering: Modeling Multiple Item Relations for Recommendation,SIGIR 2019.
Collaborative Knowledge Base Embedding for Recommender Systems,KDD 2016