知识图谱嵌入综述

Knowledge Graph Embedding: A Survey of Approaches and Applications

update:2019.11.28 写到了3.2.2之前

update:2019.11.29 模型对比

update:2020.5.15 修改了部分错别字,增加了一部分补充内容


预先定义 :Rn×RnRnHadamard[ab]i=[a]i[b]i,:Rn×RnRncircularcorrelation[ab]i=n1k=0[a]k[b](k+i) mod n.


D+=(h,r,t)h,tE;rR

E是entity(实体)的集合,R是relation(关系)的集合。

一般来说,将知识图谱向量划分为三步:

  1. 将entity和relation替换为向量的形式
  2. 定义score function用来评估,fr(h,t)表示实体h到实体t通过关系r的合理性
  3. 学习过程,使得fr(h,t)的和最大

有两种embedding technique技巧,一种是translational distance models,一种是semantic matching models


Translational Distance Models

TransE及其拓展

TransE

h,r,t都是Rd的向量,可以认为h+rt,于是有

fr(h,t)=h+rt1/2(1/2).

但是,以上式子有个缺陷,面对1-to-N,N-to-1,N-to-N的问题时,彼此相关性不大但是和某实体具有相同关系的实体之间的embedding很接近。因此有一些TransE的改良版本。

TransH(Hyperplanes)

对于每个关系r,都有一个r与之对应,和之前的方法不同的是,这个r位于一个超平面,其法向量为wr。对于每个事实(h,r,t),将其实体对应的向量ht首先投影到超平面,有

h=hwTrhwr, t=twTrtwr,同上也就有h+rt此时fr(h,t)=h+rt22TransH允许一个实体在不同的关系中有各自的角色,同时不同实体在同一关系中的意义也可以相同

TransR(Relation-specific)

与TransH类似,但是引入了一个relation-specific空间,而不是使用超平面,实体均属于Rd空间,而每个关系与一个Rk空间联系,并且用一个转换向量来表示,给定一个事实(h,r,t),TranR首先对实体表示的向量进行投影,有

h=Mrh, t=Mrt. MrRk×d,Mr是一个投影矩阵,将实体空间投影到r的关系空间,此时fr(h,t)=h+rt22,与TransH相比,对于复杂关系的处理更强了,可以将在实体空间中接近但不是同属于一个关系的实体分开,但是需要的参数更多(需要d×k的矩阵,O(dk))

TransD

TransD通过将投影矩阵分解来简化了TransR,对于每个事实(h,r,t),TransD增加了三个映射向量wh,wtRd;wrRk。有两个投影矩阵M1r,M2r定义为

M1r=wrwTh+I, M2r=wrwTt+I.

将两个矩阵分别应用于h和t,有

h=M1rh, t=M2rt.

score funciton与TransR相同

TransSparse

TransSparse通过对投影矩阵稀疏化来简化TransR,有两个版本。

TranSparse(share)用同一个稀疏投影矩阵Mr(θr)

h=Mr(θr)h, t=Mr(θr)t.

TransSparse(separate)对head和tail用不同的矩阵

h=M1r(θ1r)h,t=M2r(θ2r)t.

这里θr,θ1r,θ2r表示对于投影矩阵不同的稀疏度(通过对矩阵增0的方法减少需要的参数),score funciton与TransR相同

TransM

对于TransE,有个严格约束h+rt,TransM通过给每个事实一个权重θr来放松约束,也就是说允许h+rt更远,现在score function为

fr(h,t)=θrh+rt1/2.

对1-to-N,N-to-1,N-to-N的情况给予较低的权重。

ManifoldE

ManifoldE将h+rt转换为h+tr22θ2r,同样放松了对于约束的要求,使得t能在一个流形(manifold)上得到近似,一个以h+r为中心,θr为半径的超球面,以代替原来的直接的对h+r的近似,现在的score function为

fr(h,t)=(h+rt22θ2r)2.

TransF

TransF通过使t分布在与h+r的相同方向上来放松约束,同时,h也在t-r的相同方向上,现在的score function为

fr(h,t)=(h+r)Tt+(tr)Th.

TransA

TransA对每个关系r使用一个对称非负矩阵Mr,此时的socre function为(使用马氏距离,TransE降维之后是一个圆形,TransA降维之后是一个椭圆)

fr(h,t)=(|h+rt|)TMr(|h+rt|).

通过对Mr的学习,TransA对于复杂关系的处理更灵活。


TransE及其拓展图示

TransE及其拓展图示


GussianEmbeddings

KG2E

考虑到实体和关系的不确定性,将h,t,r都视为多元高斯分布。

hN(μh,h),tN(μt,t),rN(μr,r),μh,μt,μrRd;h,t,rRd×d().

通过衡量t-hr之间的距离来对结果打分,也就是对应的N(μtμh,t+h)N(μr,r)

基于此,有两种score function

Kullback-Leibler divergence

fr(h,t)=NX(μtμh,t+h)lnNX(μtμh,t+h)NX(μr,r)dXtr(1r(h+t))μT1rμlndet(r)det(h)+t).

probability inner product

fr(h,t)=NX(μtμh,t+h)NX(μr,r)dXμT1μln(det()).

其中,μ=μh+μrμt;=h+r+t,Gaussian embeddings对于实体和关系的不确定性处理很有效。

TransG

同样将实体是为高斯分布

hN(μh,σ2hI), tN(μt,σ2tI).

假设每个关系可能有多重的语义(比如英文中的has part可以表示composition【组成部分】,也可以表示location【位置从属】),那么关系就应该服从混合高斯分布

r=iπirμir, μirN(μtμh,(σ2h+σ2t)I).

这里,μir表示第i个语义,πir是其对应权重,现在,socre function为

fr(h,t)=iπirexp(μh+μirμt22σ2h+σ2t).

Other Distance Models

UM(Unstructured Model)

相对TransE来说,UM是一种不成熟的模型,它将所有的r设为0,其socre function为

fr(h,t)=ht22.

显然,这样无法区分不同的关系。

SE(Structured embedding)

SE使用了两个单独的矩阵M1rM2r来分别对h和t投影,有

fr(h,t)=M1rhM2rt1.

Translational Distance Models的对比

Translational Distance Models的对比



Semetic Matching Models

semantic matching models采用基于相似性的score function,通过衡量实体与关系的向量空间中的潜在语义关系来做为评判的标准。

RESCAL及其拓展

RESCAL

RESCAL是一个双线性模型(双线性模型可以更好的去拟合非线性关系),每个实体是一个向量(包含其潜在的语义),每个关系是一个矩阵,这个矩阵根据每对潜在的实体进行建模,其score function为

fr(h,t)=hTMrt=d1i=0d1j=0[Mr]ij[h]i[t]j,h,tRd,MrRd×d

Mr分解还可以减少涉及的参数

Mr=iπiruivTi(Mr1)

TATEC

引入更多的因子来扩充score function,

fr(h,t)=hTMrt+hTr+tTr+hTDtD

DistMult

DistMult通过规定Mr为对角矩阵,对于每个关系r,有向量r与之对应,并且要求Mr=diag(r),现在,score function为

fr(h,t)=hTdiag(r)t=d1i=0[r]i[h]i[t]i.

但是,因为hTdiag(r)t=tTdiag(r)h,这个过于简化的模型可能导致生成KGs模型的说服力不足。

Holographic Embeddings(HolE)

HolE结合了RESCAL表现力强的特点和DistMult的简易性,它将实体与关系都表示为Rd内的向量。给定一个事实(h,r,t),实体先被分解为htRd,现在score function为

fr(h,t)=rT(ht)=d1i=0[r]id1i=0[h]k[t](k+i) mod d.

circular correlation 相当于对每对实体进行了一次压缩,并且注意htth,因此HolE可以对非对称关系建模(与RESCAL一样)

Complex Embeddings(ComplEx)

ComplEx通过引入复值向量来优化DistMult无法处理非对称关系的问题。在这个基础上,h,r,t不再属于实数空间而是属于复数空间(记为Cd),现在score function为

fr(h,t)=Re(hTdiag(r)ˉt)=Re(d1i=0[r]i[h]i[ˉt]i),ˉttRe()

这样一来,就可以解决DistMult中的非对称关系问题。研究表明,每个ComplEx都有一个HolE等式,HolE是ComplEx中的一个特殊情况

ANALOGY

ANALOGY采取与RESCAL相似的score function,

fr(h,t)=hTMrt=d1i=0d1j=0[Mr]ij[h]i[t]j,h,tRd,MrRd×d

再此基础上,它要求关系的线性映射矩阵Mr必须是正规的和可交换的,即

normality():MrMTr=MTrMr,rRcommutativity():MrMˊr=MˊrMr,r,ˊrR.

以上的DistMult,HolE,ComplEx原则上都可以看为是ANALOGY的特殊情况


RESCAL及其拓展

RESCAL及其拓展


Matching with Neural Networks

Semantic Matching Energy(SME)

利用神经网络进行语义的匹配,给定一个事实(h,r,t),首先将它的实体和关系在输入层投影为向量。然后在隐藏层将h与r融合,得到gu(h,r),同理,将t与r融合,得到gv(t,r),将score function定义为他们的点积

fr(h,t)=gu(h,r)Tgv(t,r)

对于gugv有两种表示形式,包括线性的和双线性的。

linear

gu(h,r)=M1uh+M2ur+bu,gv(t,r)=M1vt+M2v+bv.

bilinear:

gu(h,r)=(M1uh)(M2ur)+bu,gv(t,r)=(M1vt)(M2vr)+bv.M1u,M2u,M1v,M2uRd×d()bu,bvRd()

Nerual Tensor Network(NTN)

用一个双线性张量层代替一个标准的线性神经网络层,它直接关联了多个维度上的两个实体向量。首先将实体映射为d维向量,然后用一个关系特化的张量M_rRd×d×k将其映射到一个非线性的隐藏层,最后用一个关系特化的输出层给出分数,激活函数为双曲正切函数,score function为

fr(h,t)=rTtanh(hTM_rt+M1rh+M2rt+br),M1r,M2rRk×d;brRk

hTM_rt的结果是一个向量,第i条数据的计算方式为hTM_[:,:,i]rt

通过设置M_r=0,br=0NTN可以简化为单层模型SLM,NTN应该是迄今(论文发表时)最具有表现力的模型,但是涉及的参数较多,效率较低。

Multi-Layer Perception

利用多层感知机,将实体和关系表示为向量作为输入,输入到一层非线性隐藏层,score function为

fr(h,t)=wTtanh(M1h+M2r+M3t)M1,M2,M3Rd×d()wRd().

Neural Association Model(NAM)

利用深层神经网络,给定一个事实(h,r,t),首先将head实体与关系拼接作为输入层,有z(0)=[h;r]R2d,然后把输入z(0)输入进由L个线性整流函数(ReLU)组成的深层神经网络,有

a(l)=M(l)z(l1)+b(l), l=1,,L,z(l)=ReLU(a(l)), l=1,,L,M(l)b(l)i.fr(h,t)=tTz(L).

将经过前向传播后的输出与t进行匹配得到score function。


神经网络图示

神经网络图示



Semantic Matching Models的对比

Semantic Matching Models的对比


Model Training

KG嵌入模型的训练可以遵循两种假设,open world assumption(开放世界假设)closed world assumption(封闭世界假设)

Open World Assumption(OWA)

OWA假设KGs中只包含正确的事实,不正确的事实是错误的或不存在的。D+中只存有positive的例子,negative的例子由启发式模型生成(例如local closed world assumption),存放在D中。可以通过以下公式学习

minΘτD+Dlog(1+exp(yhrt)fr(h,t))),τ=(h,r,t)yhrt=±1posneglogisticloss

除此之外,也可以使用pairwise ranking loss(可以使得pos facts评分比neg facts高)

minΘτ+D+τDmax(0,γfr(h,t)+fr(h,t))τ+posτnegγ.

使用pairwise ranking还有个优点,它不需要假设neg样本一定是错误的,因为本身这些neg样本就比pos样本更没有价值。

**logistic loss更适合semantic matching models(例如DistMult,ComplEx)而pairwise ranking更适合于translational distance models(例如TransE)

Open World Assumption训练过程

训练过程

  1. 初始化pos样本(通过平均分布或高斯分布,或者根据预训练的语料库)

  2. 循环

    1. 从pos样本中去除少量样本集合p

    2. 对每个p中的pos样本生成对应的neg样本,并且加入到对应的集合

    D={(h,r,t)|hEhh(h,r,t)D+}{(h,r,t)|tEtt(h,r,t)D+}headtail

    或者关系也可以随机获取

    D={(h,r,t)|hEhh(h,r,t)D+}{(h,r,t)|tEtt(h,r,t)D+}{(h,r,t)|rRrr(h,r,t)D+}

    注意到也有可能有这样的关系pos:(张三,性别,男),生成了neg:(李四,性别,男),显然这个neg是正确的,为了减少这种情况的发生,如果1-to-N,那么加大head被替换的概率,如果N-to-1,那么增大tail被替换的概率。

    1. 通过梯度下降更新每个实体和关系
  3. 输出embeddings

值得注意的是,neg数量的提高可以带来更好的训练结果,50:1往往是个好的选择

Closed World Assumption(CWA)

CWA假设所有的不在D+中的事实都是错误的,可以通过以下公式学习

minΘh,tE,rR(yhrtfr(h,t))2yhrt=1((h,r,t)D+);yhrt=0(otherwise)

采取squard loss sums使得观测到事实接近1,未观测到的为0。

CWA有几个缺陷,

  1. 对于不完整的KGs(缺失真实数据)效果较差。
  2. 采用了大量的neg样本,可能导致模型的泛化能力较差。

Model Comparison

模型对比

模型对比

使用外部信息

上述的各类模型方法仅使用了KG中的事实这一个角度来做embeddings。实际上,有很多外加的信息可以用来改善模型,比如实体类型(entity type),关系路径(relation paths),文本摘要(textual descriptions),逻辑规则(logical rules)等。

Entity Types

利用实体的类型信息,这些信息按理也存放在KG中,即IsA三元组。

Semantically smooth embedding(SSE)

SSE要求属于同一个类型的实体彼此之间应该很接近,它采用了两种流体学习的算法(manifold learning),Laplacian eigenmaps(拉普拉斯特征映射)和locally linear embedding(局部线性嵌入)

Laplacian eigenmaps

R1=12ni=1nj=1eiej22w1ijeiej;w1ij=1 if w1ij=0

通过最小化R1,期望同一个类下的实体距离会较小。

locally linear embedding

R2=ni=1eiejNeiw2ijej22,Neiei;w2ij=1 ifejNeielse w2ij=0

通过最小化R2,期望每个实体能从其最近的邻居那里线性重建,并且具有较小误差

SSE的一个问题是它的类别是没有分层的,而且每个实体只能归于一个类

Type-embodied knowledge representation learing(TKRL)

TKRL被设计用来解决SSE中类型层次和多分类标签的问题

fr(h,t)=Mrhh+rMrtt1,MrhMrth,t,MrhMrh=nhi=1aiMcinhi=1ai

「欢迎留言」:

Powered By Valine
v1.5.2