知识图谱(Knowledge Graph or KG),如: Free Base、DBpedia、YAGO、NELL等已经成功地应用到语义分析、信息抽取、问答系统等方面。知识图谱是由实体(entity)和关系(relations: 不同类型的边)构成的多关系图。每一条边都以三元组的形式呈现(head entity, relation, tail entity),这也叫做fact。
KG Embedding目的是将实体和关系映射到低维连续的向量空间,从而简化KG的相关计算。KG Embedding的一般步骤:
- 表示图中的实体和关系
- 定义一个打分函数(scoring function)
- 学习实体和关系的向量表示
在这里,主要总结基于距离的模型,Translational Distance Model.
TransE —— 给定一个fact(h,r,t),TrasE模型将关系表示为translation 向量 r⃗ ,这样就能以较低的错误把实体的向量 h⃗ ,t⃗ 连接起来,即: h⃗ +r⃗ ≈t⃗ 。 打分函数定义为: h⃗ +r⃗ 与 t⃗ 之间的距离:
fr(h,t)=−||h⃗ +r⃗ −t⃗ ||1/2
如果(h,r,t)存在,那么 分数
frh,t
就比较高。示意图如下:
在训练过程中,最小化的是一个hinge loss函数:
L=∑(h,r,t)∈S∑(h′,r,t′)∈S′(h,r,t)[γ+fr(h,t)−fr(h′,t′)]+
其中, [x]+ 表示 max{ 0,x} , γ 是margin超参数。根据max-margin的思想, L 表示的是负样本的分数最多比正样本高 γ ,再大就没有奖励了。也就是说正样本 h⃗ +r⃗ 与 t⃗ 的距离小,负样本的距离大。E是实体的集合,S表示正样本的集合 , S′(h,r,t) 是负样本:
S′(h,r,t)={
(h′,r,t)|h′∈E}∪{
(h,r,t′)|t′∈E}
虽然TransE模型简单有效,但是它并不能处理1-N,N-1, N-N的问题。比如,一个导演指导了多部电影,根据头节点h(导演),关系r(指导),尾节点t(电影)进行模型训练,那么这些电影向量的距离是很近的,而事实上他们是完全不同的实体。
为了克服这个缺陷,有些工作提出了relation-specific实体embedding。 TransH —— TransE的问题所在是,在任何relation下实体的向量表示都是相同的,这就造成了以下两点: 1. 如果 (h,r,t)∈fact 并且 (t,r,h)∈fact ,也就是说r是一个自反的映射,那么 r⃗