一种基于动态翻译原则的知识图谱表示学习方法
技术领域
本发明涉及知识图谱技术领域,具体涉及一种基于动态翻译原则的知识 图谱表示学习方法。
背景技术
知识图谱是推动人工智能学科发展和支撑智能信息服务应用(如智能搜 索、智能问答、个性化推荐等)的重要基础技术。一个典型的知识图谱通常 将知识描述为多元关系数据并且使用三元组(head entity,relation,tail entity) (简写为(h,r,t))来表示事实,其中r表示头实体h和尾实体t之间的关 系。例如,乔布斯是苹果公司的创始人这一知识,在知识图谱中可以利用(乔 布斯,是……创始人,苹果公司)这一三元组来表示。
随着知识图谱规模的增大,传统基于符号的方法的复杂度也急剧增加, 使其不能很好的处理大规模知识图谱。近年来,基于embedding的方法被证 明具有很好的可行性及良好的鲁棒性,该方法首先将知识图谱中的实体和关 系投影到连续的、实值的、低维的向量空间,然后通过实体之间的距离来衡 量其相似性。在众多方法中,基于翻译的最典型的方法是TransE,它既简单 又高效,并取得了良好的性能,其基本思想是将每个关系看作是嵌入空间中 实体之间的翻译。对于一个三元组(h,r,t),头实体h的嵌入h加上关系r 的嵌入r与尾实体t的嵌入t相近,也就是h+r≈t。目前表示学习已经广泛应 用于各种领域,如社交网络、智能推荐等。
TransE非常适合1-to-1关系类型,但由于其翻译规则过于严格而不能很 好的处理1-to-N、N-to-1和N-to-N关系。TransE及其之后的扩展模型在知识 图谱的表示学习方向上取得了显著的进展,然而这些模型均采用与TransE同 样的翻译原则,并且引入了更高的特征空间。但由于知识图谱中的实体及其 之间关系复杂性及多样性,该方向仍然面临很多挑战:(1)知识图谱中的实 体有些对应的关系数目较多(我们称之为复杂实体),有些对应的关系数目则 较少(我们称之为简单实体),因此知识图谱中的实体是复杂多样的;(2)同一个实体作为头或尾所对应的关系数目不一样,且所展现出来的语义信息可 能也不一样,也即是同一实体在作为头或尾时所展现出的语义不同;(3)同 一实体对之间可能不止存在一种关系而是对应多种关系,因此实体对之间的 复杂程度也不一样。由于实体及其之间关系的复杂性和多样性,且先前的所 有模型都是基于h+r≈t的翻译原则,因此在对复杂关系和复杂实体建模时 引入了更复杂的特征空间,不能很好地应用于大规模知识图谱。
发明内容
本发明所要解决的是现有基于翻译的表示学习方法的翻译原则过于严格 而无法很好的建模知识图谱中复杂多样的实体和关系的问题,提供一种基于 动态翻译原则的知识图谱表示学习方法。
为解决上述问题,本发明是通过以下技术方案实现的:
一种基于动态翻译原则的知识图谱表示学习方法,包括如下步骤:
步骤1、根据实体向量与关系向量之间基于翻译的模型,构建知识图谱 的三元组评分函数;
步骤2、根据不同的翻译模型构建不同的动态翻译原则;
步骤3、建立正负例元组之间基于边际的损失函数,并通过最小化损失 函数,学得实体和关系的向量表示,达到优化目标;即
当更新h时,通过不断调整h和αh,使hp+r尽可能与t相等;
当更新r时,通过不断调整r和αr,使h+rp尽可能与t相等;
当更新t时,通过不断调整t和αt,使h+r尽可能与tp相等;
其中,h表示头实体h的列向量,t表示尾实体t的列向量,r表示头实体 和尾实体之间的关系r的列向量;hp表示头实体翻译向量,rp表示关系翻译向 量,tp表示尾实体翻译向量;αh表示与头实体h相关的参数向量,αr表示与 关系r相关的参数向量,αt表示与尾实体t相关的参数向量。
上述步骤1中,所采用的翻译模型为TransE翻译模型或TranSparse翻译 模型。
上述步骤1中,当采用TransE翻译模型时,所构建的关联函数fr(h,t)为:
其中,h表示头实体,t表示尾实体,r表示头实体h和尾实体t之间的关 系;h表示头实体h的列向量,t表示尾实体t的列向量,r表示头实体和尾实 体之间的关系r的列向量;l1表示l1范式,l2表示l2范式。
上述步骤1中,当采用TranSparse翻译模型时,所构建的关联函数fr(h,t) 为:
其中,h表示头实体,t表示尾实体,r表示头实体h和尾实体t之间的关 系;h表示头实体h的列向量,t表示尾实体t的列向量,r表示头实体和尾实 体之间的关系r的列向量;表示将头实体从实体空间投影到关系r的语义空 间的投影矩阵,表示将尾实体从实体空间投影到关系r的语义空间的投影 矩阵;表示头实体的稀疏度,表示尾实体的稀疏度;l1表示l1范式,l2表 示l2范式。
上述步骤2中,当将动态翻译原则应用到TransE翻译模型中时,动态翻 译原则为:
hp+r=t,h+rp=t,h+r=tp
其中,h表示头实体h的列向量,t表示尾实体t的列向量,r表示头实体 和尾实体之间的关系r的列向量;hp表示头实体翻译向量,rp表示关系翻译向 量,tp表示尾实体翻译向量。
上述步骤2中,当采用TransE翻译模型时,
hp=h+αh,rp=r+αr,tp=t+αt
其中,h表示头实体h的列向量,t表示尾实体t的列向量,r表示头实体 和尾实体之间的关系r的列向量;hp表示头实体翻译向量,rp表示关系翻译向 量,tp表示尾实体翻译向量;αh表示与头实体h相关的参数向量,αr表示与 关系r相关的参数向量,αt表示与尾实体t相关的参数向量。
上述步骤2中,当将动态翻译原则应用到TranSparse翻译模型中时,动 态翻译原则为:
其中,h表示头实体h的列向量,t表示尾实体t的列向量,r表示头实体 和尾实体之间的关系r的列向量;hp表示头实体翻译向量,rp表示关系翻译向 量,tp表示尾实体翻译向量;表示头实体的稀疏度,表示尾实体的稀疏 度;表示将头实体从实体空间投影到关系r的语义空间的投影矩阵,表 示将尾实体从实体空间投影到关系r的语义空间的投影矩阵。
上述步骤2中,当采用TranSparse翻译模型时,
rp=r+αr,
其中,h表示头实体h的列向量,t表示尾实体t的列向量,r表示头实体 和尾实体之间的关系r的列向量;hp表示头实体翻译向量,rp表示关系翻译向 量,tp表示尾实体翻译向量;表示头实体的稀疏度,表示尾实体的稀疏 度;表示将头实体从实体空间投影到关系r的语义空间的投影矩阵,表 示将尾实体从实体空间投影到关系r的语义空间的投影矩阵;αh表示与头实 体h相关的参数向量,αr表示与关系r相关的参数向量,αt表示与尾实体t 相关的参数向量。
上述步骤3中,所建立的损失函数L为:
其中,[fr(h,t)+γ-fr(h′,t′)]+=max(0,fr(h,t)+γ-fr(h′,t′));γ为设定的边际值; (h,r,t)表示知识图谱的三元组即正例三元组,h表示头实体,t表示尾实体,r 表示头实体h和尾实体t的关系,fr(h,t)表示正例三元组的关联函数,S(h,r,t)表 示正例三元组集合;(h′,r,t′)表示随机替换掉头实体h和尾实体t所构建的负例 三元组,fr(h′,t′)表示负例三元组的关联函数,S(h′,r,t′)表示负例三元组集合。
与现有技术相比,本发明充分考虑了实体及其之间关系的复杂性和多样 性,利用动态参数重新定义基于动态翻译原则的知识图谱表示学习方法,很 好地表示了知识图谱中复杂多样的实体和关系,从而能够解决现有技术的翻 译原则过于严格或模型过于复杂而无法很好的表示知识图谱中的实体和关系 及不能很好地应用于大规模知识图谱中的问题,具有良好的实用性。
附图说明
图1为本发明基于动态翻译的知识图谱表示学习方法的流程图。
图2知识图谱中三元组的示例图。
图3为现有技术知识图谱表示学习方法翻译原则的示例图。
图4为本发明知识图谱表示学习方法动态翻译原则的示例图。其中(a) 给定h和t,r的变化范围为一个平面,(b)给定t和r,h的变化范围为一个 平面,(c)给定h和r,t的变化范围为一个平面。
图5为根据现有技术基于翻译的知识图谱表示学习方得到的三元组表示 知识的示例图。
图6为根据本发明基于动态翻译原则的知识图谱表示学习方法得到的三 元组表示知识的示例图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实例, 并参照附图,对本发明进一步详细说明。
本发明所设计的一种基于动态翻译原则的知识图谱表示学习方法,如图 1所示,首先,采用实体向量与关系向量之间基于翻译的模型,利用动态参 数定义了动态翻译原则,很好地表示了三元组中实体向量与关系向量之间的 相互关联,且无须引入更多的参数;然后,根据不同的翻译模型构建了不同 的动态翻译原则;最后,利用损失函数将实体向量和关系向量关联起来,并 优化该损失函数,当达到优化目标时,就可以学得知识图谱中每个实体的向 量和关系的向量,从而更好地表示实体和关系之间的联系,并更好的应用于大规模知识图谱补全中。
实施例一:
一种基于动态翻译原则的知识图谱表示学习方法,包括如下步骤:
步骤1、利用实体向量与关系向量之间基于翻译的模型,建立三元组(h,r,t) 中实体向量与关系向量之间的相互关联。
利用TransE翻译模型所构建的关联函数fr(h,t)为:
其中:h表示头实体,t表示尾实体,r表示头实体h和尾实体t之间的关 系;h表示头实体h的列向量,t表示尾实体t的列向量,r表示头实体和尾实 体之间的关系r的列向量;l1表示l1范式,l2表示l2范式。
步骤2、根据不同的翻译模型构建不同的动态翻译原则。
当将动态翻译原则应用到TransE翻译模型中时,动态翻译原则为:
hp+r=t,h+rp=t,h+r=tp。
其中:h表示头实体h的列向量,t表示尾实体t的列向量,r表示头实体 和尾实体之间的关系r的列向量;hp表示头实体翻译向量,rp表示关系翻译向 量,tp表示尾实体翻译向量,且hp=h+αh,rp=r+αr,tp=t+αt;αh表示与 头实体h相关的参数向量,αr表示与关系r相关的参数向量,αt表示与尾实 体t相关的参数向量。
步骤3、通过建立正负例元组之间基于边际的损失函数,将实体向量与 关系向量关联起来,并最小化损失函数,以学得实体向量和关系向量,达到 优化目标。
定义损失函数L为:
其中:[fr(h,t)+γ-fr(h′,t′)]+=max(0,fr(h,t)+γ-fr(h′,t′));γ为设定的边际值; (h,r,t)表示知识图谱的三元组即正例三元组,h表示头实体,t表示尾实体,r 表示头实体h和尾实体t的关系,fr(h,t)表示正例三元组的关联函数,S(h,r,t)表 示正例三元组集合;(h′,r,t′)表示随机替换掉头实体h和尾实体t所构建的负例 三元组,fr(h′,t′)表示负例三元组的关联函数,S(h′,r,t′)表示负例三元组集合。
在最小化损失函数的过程中:
当更新h时,通过不断调整h和αh,使hp+r尽可能与t相等;
当更新r时,通过不断调整r和αr,使h+rp尽可能与t相等;
当更新t时,通过不断调整t和αt,使h+r尽可能与tp相等。
(1)如果r1是一个1-to-N关系,那么我们可以得到
(2)如果(h1,ri,t1)∈S,那么我们可以得到
(3)如果r1是一个自反关系,那么,
(4)如果r1是一个可传递关系,我们可以得到
实施例二:
一种基于动态翻译原则的知识图谱表示学习方法,包括如下步骤:
步骤1、利用实体向量与关系向量之间基于翻译的模型,建立三元组(h,r,t) 中实体向量与关系向量之间的相互关联。
利用TranSparse翻译模型所构建的关联函数fr(h,t)为:
其中:h表示头实体,t表示尾实体,r表示头实体h和尾实体t之间的关 系;h表示头实体h的列向量,t表示尾实体t的列向量,r表示头实体和尾实 体之间的关系r的列向量;l1表示l1范式,l2表示l2范式;表示将头实体从 实体空间投影到关系r的语义空间的投影矩阵,表示将尾实体从实体空间 投影到关系r的语义空间的投影矩阵;表示头实体的稀疏度,表示尾实体 的稀疏度。
步骤2、根据不同的翻译模型构建不同的动态翻译原则。
当将动态翻译原则应用到TranSparse翻译模型中时,动态翻译原则为:
其中:表示头实体的稀疏度,表示尾实体的稀疏度;表示将头实 体从实体空间投影到关系r的语义空间的投影矩阵,表示将尾实体从实体 空间投影到关系r的语义空间的投影矩阵,且rp=r+αr,
步骤3、通过建立正负例元组之间基于边际的损失函数,将实体向量与 关系向量关联起来,并最小化损失函数,以学得实体向量和关系向量,达到 优化目标。
定义损失函数L为:
其中:[fr(h,t)+γ-fr(h′,t′)]+=max(0,fr(h,t)+γ-fr(h′,t′));γ为设定的边际值; (h,r,t)表示知识图谱的三元组即正例三元组,h表示头实体,t表示尾实体,r 表示头实体h和尾实体t的关系,fr(h,t)表示正例三元组的关联函数,S(h,r,t)表 示正例三元组集合;(h′,r,t′)表示随机替换掉头实体h和尾实体t所构建的负例 三元组,fr(h′,t′)表示负例三元组的关联函数,S(h′,r,t′)表示负例三元组集合。
在最小化损失函数的过程中:
当更新h时,通过不断调整h和αh,使hp+r尽可能与t相等;
当更新r时,通过不断调整r和αr,使h+rp尽可能与t相等;
当更新t时,通过不断调整t和αt,使h+r尽可能与tp相等。
(1)如果r1是一个1-to-N关系,那么我们可以得到
(2)如果(h1,ri,t1)∈S,那么我们可以得到
(3)如果r1是一个自反关系,那么,
(4)如果r1是一个可传递关系,我们可以得到
结果仿真:
知识图谱的三元组结构信息,采用典型的(实体1,关系,实体2)三元 组的形式来表示知识,关系用来连接两个实体,刻画两个实体之间的关联。 图2为知识图谱中典型三元组的示例图,其中圆圈表示的节点如“北京大学”、 “中国”及“哲学”等都为实体,两个实体之间的连边如“国籍”、“首都”及“所属 城市”等都为关系。另外,我们可以看到,“校长”关系对应了多个实体,映射 类型为N-N。
现有技术知识图谱表示学习方法所采用的翻译原则,参见图3,其只能 处理一对一的关系类型,而不能应用到一对多、多对一和多对多的关系类型 中。本发明知识图谱表示学习方法所采用的翻译原则,参见图4,其基本思 想为:给定h和r,仅限制t在一定的范围浮动而不是让多个尾实体相等或在 同一方向上;同样的,给定h和t或者r和t,r或h也是在一定的范围浮动。 该方法包括:采用实体向量与关系向量之间基于翻译的模型,利用动态参数 定义的动态翻译原则表示三元组(h,r,t)中实体向量与关系向量之间的相互关 联,且无须引入更多的参数;然后根据不同的翻译模型构建了不同的动态翻 译原则;通过正负例元组之间基于边际的损失函数将实体向量和关系向量关 联起来,并最小化损失函数,以学得知识图谱中实体和关系的向量表示,达 到优化目标。采用本发明能够更好地表示知识图谱中实体和关系之间的联系, 且能够应用于大规模知识图谱补全中。
图5为现有技术方法得到的三元组表示知识的示例图。图5中,没有考 虑知识图谱三元组结构中的关系映射类型,清华大学+校长=***,同时,清华 大学+校长=XXX,因此最后得出***和XXX相等,但实际上,***和XXX在 其它方面还有很大的区别。图6为根据本发明基于动态翻译原则的知识图谱 表示学习方法得到的三元组表示知识的示例图。图6中,考虑了知识图谱三 元组结构中的关系映射类型,当关系r为复杂关系时,通过弱化h+r与t之间 的关联,既可以表达***是清华大学的校长又可以表达XXX是清华大学的校 长,同时又能区分***和XXX。由此可以看出,图5的现有技术和图6的本 发明相比,本发明的知识图谱表示学习方法,可以更好地表示出实体与关系 之间的相互联系,且考虑关系映射类型后的模型更加灵活。
需要说明的是,尽管以上本发明所述的实施例是说明性的,但这并非是 对本发明的限制,因此本发明并不局限于上述具体实施方式中。在不脱离本 发明原理的情况下,凡是本领域技术人员在本发明的启示下获得的其它实施 方式,均视为在本发明的保护之内。