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两组,每组中有多台机器,彼此 ...
【技术保护点】
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,将更新标志发送给各个 ...
【技术特征摘要】
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,发送...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。