Knowledge Graph表示学习--TransE系列

时间:2021-08-31 11:26:39

知识图谱(Knowledge Graph or KG),如: Free Base、DBpedia、YAGO、NELL等已经成功地应用到语义分析、信息抽取、问答系统等方面。知识图谱是由实体(entity)和关系(relations: 不同类型的边)构成的多关系图。每一条边都以三元组的形式呈现(head entity, relation, tail entity),这也叫做fact。
KG Embedding目的是将实体和关系映射到低维连续的向量空间,从而简化KG的相关计算。KG Embedding的一般步骤:

  1. 表示图中的实体和关系
  2. 定义一个打分函数(scoring function)
  3. 学习实体和关系的向量表示

在这里,主要总结基于距离的模型,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 就比较高。示意图如下:
Knowledge Graph表示学习--TransE系列

在训练过程中,最小化的是一个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)|hE}{(h,r,t)|tE}

虽然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⃗ =0⃗  并且 h⃗ =t⃗  ; 2. 如果r是一个N-1的映射, i0,,m(hi,r,t) ,那么 h⃗ 0==h⃗ m ;同样的,如果r是一个1-N的映射, i0,,m(h,r,ti) ,那么 t⃗ 0==t⃗ m TransH 依然把实体 h,t 表示为向量,但是把关系r表示成两个向量:超平面的法向量 W⃗ r 和关系r在超平面内的向量表示 d⃗ r 。如下图所示:
Knowledge Graph表示学习--TransE系列

头结点h和尾节点t映射到超平面的表示为:

h⃗ =h⃗ W⃗ Trh⃗ W⃗ rt⃗ =t⃗ W⃗ Trt⃗ W⃗ r

这样对于不同的关系r节点有不同的表示,可以解决1-N,N-1,N-N的问题:节点在关系 ri 中相似,但可能在关系 rj 中不相似。
约束 ||W⃗ r||2=1 打分函数为:
fr(h⃗ ,t⃗ )=||(h⃗ W⃗ Trh⃗ W⃗ r)+dr(t⃗ W⃗ Trt⃗ )||22

如果(h,r,t)是fact那么这个分数是比较低的(距离比较小),否则分数比较高(距离比较大)。
此外,在采负样本 (h,r,t) (h,r,t) 的时候,TransH 为了降低错误,对于1-N 做了如下处理,以更大的概率替换头节点;同样的,对于N-1以更大的概率替换尾节点。

TransR —— 在TransE和TransH这两个模型中,实体和关系向量被映射到同一个向量空间。TansR把关系向量映射到不同的空间。与TransH相比,TransR把关系r映射到与它相关的空间而不是超平面。框架图如下所示:
Knowledge Graph表示学习--TransE系列

TransR对每个关系r都分配了一个空间 MrRk×d 。头结点和尾结点可以表示为 h⃗ ,t⃗ Rk ,关系可以表示为 rRd 。首先把头结点和尾结点映射到relation空间,映射向量定义为:

h⃗ r=h⃗ Mrt⃗ r=t⃗ Mr

对应的打分函数是:
fr(h⃗ ,t⃗ )=||h⃗ r+r⃗ t⃗ r||22||h⃗ ||21,||t⃗ ||21,||r⃗ ||21,||h⃗ r||21,||t⃗ r||21

  • CTransR(Cluster-based TransR)
    在TransR的基础上,作者提出了CTransR模型,借鉴与分段线性回归(piecewise linear regression)。首先,对每个特定的关系r,把训练数据中所有的实体对(h,t)聚类成多个组。每个实体的向量用TransE模型进行预训练,在聚类的时候每个实体对表示为 (h⃗ t⃗ ) 。然后,对于每个cluster学习单独的关系向量 r⃗ c ,对于每种关系学习关系矩阵 Mr 。那么,映射后的实体是: h⃗ r,c=h⃗ Mrt⃗ r,c=t⃗ Mr 。打分函数表示为:
    fr(h⃗ ,t⃗ )=||h⃗ r,c+r⃗ ct⃗ r,c||22+α||r⃗ cr⃗ ||22

    第二项的目的是确保特定类的关系向量距离原始的向量不会太远。

TransR /CTransR模型虽然效果比现有的模型好,但是模型参数较多,相比TransE、TransH模型而言,没有那么简洁高效。

TransD —— TransD可以说是TransR/CTransR的简化版本,它用两个向量来动态重构mapping矩阵。给定一个triplet(h,r,t),一共有两种向量 : 1. 代表 实体/关系 意义的向量: h⃗ ,r⃗ ,t⃗  ; 2. 动态重构映射矩阵的向量: h⃗ p,r⃗ p,t⃗ p ; 其中, r⃗ ,r⃗ pRm h⃗ ,h⃗ p,t⃗ ,t⃗ pRn 。映射矩阵通过映射向量动态重建。再将头结点和尾结点映射到关系r的空间,进行打分。TransD中没有很复杂的矩阵运算,取而代之的是向量运算,因而比TransR的复杂度要低。示意图如下:
Knowledge Graph表示学习--TransE系列

在TransD中,映射矩阵是由关系和实体共同决定的:

Mrh=r⃗ ph⃗ Tp+Im×nMrt=r⃗ pt⃗ Tp+Im×n

其中 Im×n 是单位矩阵。那么映射向量为:

h⃗ =Mrhh⃗ t⃗ =Mrtt⃗ 

打分函数是:

fr(h⃗ ,t⃗ )=||h⃗ +r⃗ t⃗ ||22||h⃗ ||21,||r⃗ ||21,||t⃗ ||21,||h⃗ ||21,||t⃗ ||21

  • TransD与TransR, TransH, TransR的关联:

    TransE
    当m=n(即:实体向量和关系向量的维度相等),并且映射向量( h⃗ p,r⃗ p,t⃗ p )设为0的时候,TransD就退化成TransE。

    TransH
    如果m=n(即:实体向量和关系向量的维度相等),那么实体的映射向量可以表示为:

    h⃗ =Mrhh⃗ =h⃗ +h⃗ Tph⃗ r⃗ pt⃗ =Mrtt⃗ =t⃗ +t⃗ Tpt⃗ r⃗ p

    从这里来看,TransD和TransH的不同是,TransH的映射向量只跟关系向量有关,TransD的映射向量与关系向量和实体向量都有关。

    TransR/CTransR

相对于TransR,TransD的区别是:通过为每个实体和关系设置映射向量 h⃗ p ,对每个triplet动态重构两个映射矩阵。一般设置 mn ,映射向量可表示为:

h⃗ =Mrhh⃗ =h⃗ Tph⃗ r⃗ p+[h⃗ T,0⃗ T]Tt⃗ =Mrtt⃗ =t⃗ Tpt⃗ r⃗ p+[t⃗ T,0⃗ T]T

不同的是,TransD计算量小,可以应用到大规模网络。

参考:
Knowledge Graph Embedding: A Survey of Approaches and Applications

TransE: Translating Embeddings for Modeling Multi-relational Data
TransH:Knowledge Graph Embedding by Translating on Hyperplanes

TransR: Learning Entity and Relation Embeddings for Knowledge Graph Completion

TransD: Knowledge Graph Embedding via Dynamic Mapping Matrix