知识图谱(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 向量在训练过程中,最小化的是一个hinge loss函数:
其中,
虽然TransE模型简单有效,但是它并不能处理1-N,N-1, N-N的问题。比如,一个导演指导了多部电影,根据头节点h(导演),关系r(指导),尾节点t(电影)进行模型训练,那么这些电影向量的距离是很近的,而事实上他们是完全不同的实体。
为了克服这个缺陷,有些工作提出了relation-specific实体embedding。 TransH —— TransE的问题所在是,在任何relation下实体的向量表示都是相同的,这就造成了以下两点: 1. 如果
头结点h和尾节点t映射到超平面的表示为:
这样对于不同的关系r节点有不同的表示,可以解决1-N,N-1,N-N的问题:节点在关系
约束
如果(h,r,t)是fact那么这个分数是比较低的(距离比较小),否则分数比较高(距离比较大)。
此外,在采负样本
TransR对每个关系r都分配了一个空间
对应的打分函数是:
- 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⃗ c−t⃗ r,c||22+α||r⃗ c−r⃗ ||22
第二项的目的是确保特定类的关系向量距离原始的向量不会太远。
TransR /CTransR模型虽然效果比现有的模型好,但是模型参数较多,相比TransE、TransH模型而言,没有那么简洁高效。
TransD —— TransD可以说是TransR/CTransR的简化版本,它用两个向量来动态重构mapping矩阵。给定一个triplet(h,r,t),一共有两种向量 : 1. 代表 实体/关系 意义的向量:在TransD中,映射矩阵是由关系和实体共同决定的:
其中
打分函数是:
-
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的区别是:通过为每个实体和关系设置映射向量
不同的是,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