当前位置: 首页 > 专利查询>南京大学专利>正文

一种分布式知识图谱嵌入方法技术

技术编号:18732559 阅读:61 留言:0更新日期:2018-08-22 03:04
本发明专利技术公开了一种分布式知识图谱嵌入方法。工业界常用的普通服务器计算能力和内存容量有限,在处理大规模知识图谱数据时,单台服务器往往不能完成处理工作。为了解决这个问题,本发明专利技术提出了一种分布式知识图谱嵌入方法,该方法采用一种分布式架构,将多台服务器统一在一个计算系统中,通过网络进行通信,共享CPU和内存等计算资源,从而完成大规模知识图谱嵌入的计算。该方法中,参数按照维度划分到各台服务器上,从而减少计算中产生的通信开销,加快运行速度。

A distributed knowledge map embedding method

The invention discloses a distributed knowledge map embedding method. Common servers in industry have limited computing power and memory capacity. When dealing with large-scale knowledge map data, a single server often can not complete the processing work. In order to solve this problem, the invention proposes a distributed knowledge map embedding method, which adopts a distributed architecture, unifies multiple servers in a computing system, communicates through the network, shares computing resources such as CPU and memory, and thus completes large-scale knowledge map embedding calculation. In this method, the parameters are divided into different servers according to the dimension, so as to reduce the communication overhead and speed up the operation.

【技术实现步骤摘要】
一种分布式知识图谱嵌入方法
本专利技术涉及知识图谱应用领域的知识图谱嵌入方法,适用于对大规模知识图谱进行嵌入。
技术介绍
目前,知识图谱已经在计算机工业界很多领域得到了应用。例如Google搜索引擎中,利用知识图谱中涵盖的知识,在搜索的侧边栏返回精简的结构化信息,方便用户快速完成信息获取;Siri和Cortana等智能助理利用知识图谱,完成用户问题的解答和用户命令的执行;互联网金融领域,通过构建人、公司、银行账户间的联系,可以自动化完成反欺诈、反套现和信用评级等需求。当前,知识图谱嵌入方法将知识图谱中的实体、关系通过训练嵌入到一个低维向量空间中,可以避免基于逻辑的推理方法中计算开销大,空间复杂度高等问题。随着工业界构建的知识图谱规模增大,基于单机的知识图谱嵌入方法无法有效完成大规模知识图谱上的处理和计算工作,可以考虑使用分布式机器学习方式,将大规模知识图谱嵌入问题在多机分布式平台上完成处理。使用传统的分布式参数服务器框架按照个体划分参数,在计算时会产生大量的通信开销,本专利技术考虑按照维度划分参数的方法,从而降低通信开销以完成计算加速。
技术实现思路
专利技术目的:目前的知识图谱嵌入方法,都是基于单机完成训练的。在知识图谱数据规模较大时,单机的计算能力和内存容量有限,无法很好地完成知识图谱嵌入参数的训练。使用分布式参数服务器框架进行处理,会在计算过程中产生较大通信开销。针对上述问题,本专利技术提供一种分布式知识图谱嵌入方法,该方法将知识图谱嵌入模型用多机分布式的方法完成训练。训练中,多台服务器按照任务划分为Worker和Server两组,每组中有多台机器,彼此间通过网络通信协同完成参数即嵌入向量的训练。训练中,嵌入向量按照维度划分到各个Server上,降低训练中服务器间产生的通信开销。所有计算中各维度不产生交互的模型都可以采用本专利技术方法完成训练,目前本专利技术方法可以支持2013年机器学习会议NIPS的论文“TranslatingEmbeddingsforModelingMulti-RelationalData”中提出的TransE模型,2015年机器学习会议ICLR的论文“EmbeddingEntitiesandRelationsforLearningandInferenceinKnowledgeGraphs”中提出的DistMult模型,及2016年机器学习会议ICML的论文“ComplexEmbeddingsforSimpleLinkPrediction”中提出的ComplEx模型。技术方案:一种分布式知识图谱嵌入方法,包括Worker执行的步骤和Server执行的步骤。两者的步骤在方法中同时进行。所述方法中Worker执行的具体步骤为:步骤100,初始化算法参数,包括嵌入向量的维度d,总共执行的轮数T,每轮采样的三元组数B,学习率μ,正则项参数λ,间隔γ,Worker数量Nw,Server的数量Ns等;步骤101,读取知识图谱的统计信息,包括实体的数量ne,关系的数量nr;步骤102,读取当前Worker所负责训练的三元组数据,整个知识图谱中的三元组集合被等量划分为Nw份,每个Worker读取一份;步骤103,令计数器i=0;步骤104,从当前Worker负责的三元组中采样B/Nw个,作为轮训练的正例三元组集合;步骤105,对于采样出的每一个正例三元组随机替换其头部或尾部,作为负例三元组,与原正例三元组组成一个三元组对;步骤106,发送各个三元组对到各个Server;步骤107,从各个Server处接受各个三元组对的损失;步骤108,统计各个三元组对的总损失,对于总损失大于间隔γ的三元组对设置更新标志为1,对于总损失小于间隔γ的三元组对设置更新标志为0;步骤109,将更新标志发送给各个Server;步骤110,令计数器i=i+1;步骤111,判断计数器i的值是否小于执行轮数T。如果是,回到步骤104,进行新的一轮计算;如果不是,已满足停止条件,进入结束阶段;步骤112,结束计算。所述方法中Server执行的具体步骤为:步骤200,初始化算法参数,包括嵌入向量的维度d,总共执行的轮数T,每轮采样的三元组数B,学习率μ,正则项参数λ,间隔γ,Worker数量Nw,Server的数量Ns等;步骤201,读取知识图谱的统计信息,包括实体的数量ne,关系的数量nr等;步骤202,初始化嵌入向量。维度d被划分为等量的Ns份,每个Server负责初始化一份,即所有实体和关系对应的嵌入向量中相同的一部分维度;步骤203,令计数器i=0;步骤204,接收Worker发来的三元组对;步骤205,对于Worker发来的三元组对,根据优化的目标方程,计算该Server负责的维度上产生的损失;步骤206,发送三元组对的损失到对应的Worker上;步骤207,接收Worker发来的各三元组对的更新标志;步骤208,对于各个三元组对,若其对应更新标志为1,对该三元组对的嵌入向量进行更新;若为0,不进行更新;步骤209,令计数器i=i+1;;步骤210,判断计数器i的值是否小于执行轮数T。如果是,回到步骤204,进行新的一轮计算;如果不是,已满足停止条件,进入结束阶段;步骤211,算法结束,将得到的嵌入向量进行保存。所述算法中,优化的目标方程为其中,P为知识图谱中的三元组集合,其中每一个三元组由头部h,关系r,尾部t组成,表示为(h,r,t)。头部和尾部都属于实体集合E,关系属于关系集合R。N(h,r,t)为三元组(h,r,t)随机替换头部和尾部得到的负例三元组集合。θ代表所有的参数,包括每一个实体e∈E对应的嵌入向量e,和每一个关系r∈R对应的嵌入向量r,由各个嵌入向量计算L2范数平方后加和得到。s(h,r,t)为(h,r,t)三元组的得分,在TransE模型中等于或||h+r-t||1;在DistMult模型中等于-<h,r,t>,即三个嵌入向量内积的负数;在ComplEx模型中每一个实体e有两个嵌入向量eu和ev,每一个关系r有两个嵌入向量ru和rv,得分等于-(<hu,ru,tu>+<hu,rv,tv>+<hv,ru,tv>-<hv,rv,tu>)。γ代表间隔,表示模型期望的正负三元组的得分差。[x]+在x>0情况下等于x,否则等于0。整个计算过程使用随机梯度下降的优化方法,每次采样一批正例三元组,抽样得到其负例三元组,计算损失后,按照梯度对其嵌入向量进行更新。所述目标方程中,优化目标以按照维度拆分进行计算后汇总。所述算法中,所有嵌入向量按照维度进行划分,每个Server保存所有向量的同一组维度。在计算三元组损失时,各Server先计算该Server上保存维度产生的损失,再发送给Worker进行汇总。Worker计算出总体损失后反馈Server,Server对其负责维度进行更新。所述算法可以避免需要传输整个嵌入向量和梯度向量造成的通信开销。有益效果:本专利技术所阐述的参数划分思想,可以有效地减少计算中的通信开销,从而加速整个分布式知识图谱嵌入计算流程,达到减少总体计算时间的目的。本文档来自技高网...

【技术保护点】
1.一种分布式知识图谱嵌入方法,其特征在于,包括Worker执行的步骤和Server执行的步骤:所述方法中Worker执行的具体步骤为:步骤100,初始化算法参数,包括嵌入向量的维度d,总共执行的轮数T,每轮采样的三元组数B,学习率μ,正则项参数λ,间隔γ,Worker数量Nw,Server的数量Ns;步骤101,读取知识图谱的统计信息,包括实体的数量ne,关系的数量nr;步骤102,读取当前Worker所负责训练的三元组数据,整个知识图谱中的三元组集合被等量划分为Nw份,每个Worker读取一份;步骤103,令计数器i=0;步骤104,从当前Worker负责的三元组中采样B/Nw个,作为轮训练的正例三元组集合;步骤105,对于采样出的每一个正例三元组随机替换其头部或尾部,作为负例三元组,与原正例三元组组成一个三元组对;步骤106,发送各个三元组对到各个Server;步骤107,从各个Server处接受各个三元组对的损失;步骤108,统计各个三元组对的总损失,对于总损失大于间隔γ的三元组对设置更新标志为1,对于总损失小于间隔γ的三元组对设置更新标志为0;步骤109,将更新标志发送给各个Server;步骤110,令计数器i=i+1;步骤111,判断计数器i的值是否小于执行轮数T;如果是,回到步骤104,进行新的一轮计算;如果不是,已满足停止条件,进入结束阶段;步骤112,结束计算。...

【技术特征摘要】
1.一种分布式知识图谱嵌入方法,其特征在于,包括Worker执行的步骤和Server执行的步骤:所述方法中Worker执行的具体步骤为:步骤100,初始化算法参数,包括嵌入向量的维度d,总共执行的轮数T,每轮采样的三元组数B,学习率μ,正则项参数λ,间隔γ,Worker数量Nw,Server的数量Ns;步骤101,读取知识图谱的统计信息,包括实体的数量ne,关系的数量nr;步骤102,读取当前Worker所负责训练的三元组数据,整个知识图谱中的三元组集合被等量划分为Nw份,每个Worker读取一份;步骤103,令计数器i=0;步骤104,从当前Worker负责的三元组中采样B/Nw个,作为轮训练的正例三元组集合;步骤105,对于采样出的每一个正例三元组随机替换其头部或尾部,作为负例三元组,与原正例三元组组成一个三元组对;步骤106,发送各个三元组对到各个Server;步骤107,从各个Server处接受各个三元组对的损失;步骤108,统计各个三元组对的总损失,对于总损失大于间隔γ的三元组对设置更新标志为1,对于总损失小于间隔γ的三元组对设置更新标志为0;步骤109,将更新标志发送给各个Server;步骤110,令计数器i=i+1;步骤111,判断计数器i的值是否小于执行轮数T;如果是,回到步骤104,进行新的一轮计算;如果不是,已满足停止条件,进入结束阶段;步骤112,结束计算。2.如权利要求1所述的分布式知识图谱嵌入方法,其特征在于,所述方法中Server执行的具体步骤为:步骤200,初始化算法参数,包括嵌入向量的维度d,总共执行的轮数T,每轮采样的三元组数B,学习率μ,正则项参数λ,间隔γ,Worker数量Nw,Server的数量Ns;步骤201,读取知识图谱的统计信息,包括实体的数量ne,关系的数量nr;步骤202,初始化嵌入向量。维度d被划分为等量的Ns份,每个Server负责初始化一份,即所有实体和关系对应的嵌入向量中相同的一部分维度;步骤203,令计数器i=0;步骤204,接收Worker发来的三元组对;步骤205,对于Worker发来的三元组对,计算该Server负责的维度上产生的损失;步骤206,发送...

【专利技术属性】
技术研发人员:李武军牛晓帆
申请(专利权)人:南京大学
类型:发明
国别省市:江苏,32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1