CN108427773B - 一种分布式知识图谱嵌入方法 - Google Patents
一种分布式知识图谱嵌入方法 Download PDFInfo
- Publication number
- CN108427773B CN108427773B CN201810429012.4A CN201810429012A CN108427773B CN 108427773 B CN108427773 B CN 108427773B CN 201810429012 A CN201810429012 A CN 201810429012A CN 108427773 B CN108427773 B CN 108427773B
- Authority
- CN
- China
- Prior art keywords
- server
- worker
- knowledge graph
- triple
- loss
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/36—Creation of semantic tools, e.g. ontology or thesauri
- G06F16/367—Ontology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Animal Behavior & Ethology (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Complex Calculations (AREA)
Abstract
本发明公开了一种分布式知识图谱嵌入方法。工业界常用的普通服务器计算能力和内存容量有限,在处理大规模知识图谱数据时,单台服务器往往不能完成处理工作。为了解决这个问题,本发明提出了一种分布式知识图谱嵌入方法,该方法采用一种分布式架构,将多台服务器统一在一个计算系统中,通过网络进行通信,共享CPU和内存等计算资源,从而完成大规模知识图谱嵌入的计算。该方法中,参数按照维度划分到各台服务器上,从而减少计算中产生的通信开销,加快运行速度。
Description
技术领域
本发明涉及知识图谱应用领域的知识图谱嵌入方法,适用于对大规模知识图谱进行嵌入。
背景技术
目前,知识图谱已经在计算机工业界很多领域得到了应用。例如Google搜索引擎中,利用知识图谱中涵盖的知识,在搜索的侧边栏返回精简的结构化信息,方便用户快速完成信息获取;Siri和Cortana等智能助理利用知识图谱,完成用户问题的解答和用户命令的执行;互联网金融领域,通过构建人、公司、银行账户间的联系,可以自动化完成反欺诈、反套现和信用评级等需求。
当前,知识图谱嵌入方法将知识图谱中的实体、关系通过训练嵌入到一个低维向量空间中,可以避免基于逻辑的推理方法中计算开销大,空间复杂度高等问题。
随着工业界构建的知识图谱规模增大,基于单机的知识图谱嵌入方法无法有效完成大规模知识图谱上的处理和计算工作,可以考虑使用分布式机器学习方式,将大规模知识图谱嵌入问题在多机分布式平台上完成处理。使用传统的分布式参数服务器框架按照个体划分参数,在计算时会产生大量的通信开销,本发明考虑按照维度划分参数的方法,从而降低通信开销以完成计算加速。
发明内容
发明目的:目前的知识图谱嵌入方法,都是基于单机完成训练的。在知识图谱数据规模较大时,单机的计算能力和内存容量有限,无法很好地完成知识图谱嵌入参数的训练。使用分布式参数服务器框架进行处理,会在计算过程中产生较大通信开销。针对上述问题,本发明提供一种分布式知识图谱嵌入方法,该方法将知识图谱嵌入模型用多机分布式的方法完成训练。训练中,多台服务器按照任务划分为Worker和Server两组,每组中有多台机器,彼此间通过网络通信协同完成参数即嵌入向量的训练。训练中,嵌入向量按照维度划分到各个Server上,降低训练中服务器间产生的通信开销。所有计算中各维度不产生交互的模型都可以采用本发明方法完成训练,目前本发明方法可以支持2013年机器学习会议NIPS的论文“Translating Embeddings for Modeling Multi-Relational Data”中提出的TransE模型,2015年机器学习会议ICLR的论文“Embedding Entities and Relations forLearning and Inference in Knowledge Graphs”中提出的DistMult模型,及2016年机器学习会议ICML的论文“Complex Embeddings for Simple Link Prediction”中提出的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,算法结束,将得到的嵌入向量进行保存。
所述步骤205中,优化的目标方程为:
其中,P为知识图谱中的三元组集合,其中每一个三元组由头部h,关系r,尾部t组成,表示为(h,r,t)。头部和尾部都属于实体集合E,关系属于关系集合R。N(h,r,t)为三元组(h,r,t)随机替换头部和尾部得到的负例三元组集合。θ代表所有的参数,包括每一个实体e∈E对应的嵌入向量和每一个关系r∈R对应的嵌入向量由各个嵌入向量计算L2范数平方后加和得到。s(h,r,t)为(h,r,t)三元组的得分,在TransE模型中等于或在DistMult模型中等于即三个嵌入向量内积的负数;在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训练工作流程图;
图2为本发明实施的Server训练工作流程图。
具体实施方式
下面结合具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。
分布式知识图谱嵌入方法中Worker训练工作流程图如图1所示。首先,初始化算法中的参数,包括嵌入向量的维度d,总共执行的轮数T,每轮采样的三元组数B,学习率μ,正则项参数λ,间隔γ,Worker数量Nw,Server的数量Ns等(步骤100);然后,读取知识图谱数据的统计信息,如总实体数和总关系数等(步骤101),并读取该Worker负责处理的三元组数据,整个知识图谱中的三元组集合被等量划分为Nw份,每个Worker读取一份(步骤102);将计数器置为0(步骤103),进入迭代训练循环;在循环第一步中,从读取的三元组数据中采样B/Nw个正例三元组(步骤104),并对每一个正例三元组随机替换其头部或尾部为另一个实体,从而采样得到对应的负例三元组(步骤105),每个正例三元组和其对应负例三元组组成一个三元组对;将对应的三元组发送给各个Server(步骤106),在各个Server分别计算得到各三元组对部分维度的损失后,接收这些损失值(步骤107),并进行加和统计得到总损失,设置各三元组对的更新标志,对于总损失大于间隔γ的三元组对设置更新标志为1,对于总损失小于间隔γ的三元组对设置更新标志为0(步骤108);将设置的更新标志发送给各个Server(步骤109),令其根据更新标志分别更新各个维度;令计数器加1(步骤110),并判断计数器i的值是否小于执行轮数T(步骤111),是则跳转到步骤104,否则跳转到步骤112的结束阶段;完成计算,结束运行(步骤112)。
分布式知识图谱嵌入方法中Server训练工作流程图如图2所示。首先,初始化算法中的参数,包括嵌入向量的维度d,总共执行的轮数T,每轮采样的三元组数B,学习率μ,正则项参数λ,间隔γ,Worker数量Nw,Server的数量Ns等(步骤200);然后,读取知识图谱数据的统计信息,如总实体数和总关系数等(步骤201),并初始化该Server负责的嵌入向量的一组维度d,维度d被划分为等量的Ns份,每个Server负责初始化一份,即所有实体和关系对应的嵌入向量中相同的一部分维度(步骤202);将计数器置为0(步骤203),进入迭代训练循环;在循环第一步中,接收Worker发送来的三元组对(204);在自己负责的维度上计算各三元组对的损失(步骤205),并将该损失发送到对应的Worker上(步骤206),供其汇总;之后,接收Worker发来的更新标志(步骤207),根据该更新标志,对于需要更新的三元组对计算其对应参数的梯度并更新,对于各个三元组对,若其对应更新标志为1,对该三元组对的嵌入向量进行更新;若为0,不进行更新(步骤208);令计数器加1(步骤209),并判断计数器i的值是否小于执行轮数T(步骤210),是则跳转到步骤204,否则跳转到步骤211的结束阶段;训练结束时,把嵌入向量进行保存(步骤211)。
所述算法中,优化的目标方程为:
其中,P为知识图谱中的三元组集合,其中每一个三元组由头部h,关系r,尾部t组成,表示为(h,r,t)。头部和尾部都属于实体集合E,关系属于关系集合R。N(h,r,t)为三元组(h,r,t)随机替换头部和尾部得到的负例三元组集合。θ代表所有的参数,包括每一个实体e∈E对应的嵌入向量和每一个关系r∈R对应的嵌入向量s(h,r,t)为(h,r,t)三元组的得分,在TransE模型中等于或在DistMult模型中等于即三个嵌入向量内积的负数;在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对其负责维度进行更新。所述算法可以避免需要传输整个嵌入向量和梯度向量造成的通信开销。本发明在知识图谱数据集FB15k上采用TransE模型进行了实验,对比了本发明的方法和使用2014年操作系统会议OSDI的论文“ScalingDistributed Machine Learning with the Parameter Server”中提出的分布式参数服务器框架实现的方法。实验对比在参数相同,达到同样的嵌入向量精度条件下,本发明方法和对比方法在时间开销和通信开销上的差距。
实验数据集FB15k中总关系数为1345,总实体数为14951,参与训练的三元组数为483142。
在Worker和Server数采用不同个数时,达到同样精度所用训练时间如表1所示。
表1
如表1所示,在相同条件下,对比方法所用训练时间是本发明方法的1.5倍以上,可见本发明的方法有很大提升。
在相同的实验中,两种方法所产生的一轮通信量如表2所示。通信量的单位为字节。
表2
如表2所示,在相同条件下,本方法产生的通信量远小于对比方法的通信量。可见本发明的方法有很大提升。
Claims (5)
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,发送三元组对的损失到对应的Worker上;
步骤207,接收Worker发来的各三元组对的更新标志;
步骤208,对于各个三元组对,若其对应更新标志为1,对该三元组对的嵌入向量进行更新;若为0,不进行更新;
步骤209,令计数器i=i+1;
步骤210,判断计数器i的值是否小于执行轮数T;如果是,回到步骤204,进行新的一轮计算;如果不是,已满足停止条件,进入结束阶段;
步骤211,算法结束,将得到的嵌入向量进行保存。
5.如权利要求3所述的分布式知识图谱嵌入方法,其特征在于,所述目标方程中,损失按照维度拆分进行计算后汇总;所有嵌入向量按照维度进行划分,每个Server保存所有向量的同一组维度;在计算三元组损失时,各Server先计算该Server上保存维度产生的损失,再发送给Worker进行汇总,Worker计算出总体损失后反馈Server,Server对其负责维度进行更新。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810429012.4A CN108427773B (zh) | 2018-05-08 | 2018-05-08 | 一种分布式知识图谱嵌入方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810429012.4A CN108427773B (zh) | 2018-05-08 | 2018-05-08 | 一种分布式知识图谱嵌入方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108427773A CN108427773A (zh) | 2018-08-21 |
CN108427773B true CN108427773B (zh) | 2022-06-21 |
Family
ID=63162615
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810429012.4A Active CN108427773B (zh) | 2018-05-08 | 2018-05-08 | 一种分布式知识图谱嵌入方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108427773B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109344295B (zh) * | 2018-08-24 | 2020-05-05 | 阿里巴巴集团控股有限公司 | 分布式图嵌入方法、装置、设备及系统 |
CN109376249B (zh) * | 2018-09-07 | 2021-11-30 | 桂林电子科技大学 | 一种基于自适应负采样的知识图谱嵌入方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170109355A1 (en) * | 2015-10-16 | 2017-04-20 | Baidu Usa Llc | Systems and methods for human inspired simple question answering (hisqa) |
CN107391623A (zh) * | 2017-07-07 | 2017-11-24 | 中国人民大学 | 一种融合多背景知识的知识图谱嵌入方法 |
CN107729497A (zh) * | 2017-10-20 | 2018-02-23 | 同济大学 | 一种基于知识图谱的词嵌入深度学习方法 |
-
2018
- 2018-05-08 CN CN201810429012.4A patent/CN108427773B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170109355A1 (en) * | 2015-10-16 | 2017-04-20 | Baidu Usa Llc | Systems and methods for human inspired simple question answering (hisqa) |
CN107391623A (zh) * | 2017-07-07 | 2017-11-24 | 中国人民大学 | 一种融合多背景知识的知识图谱嵌入方法 |
CN107729497A (zh) * | 2017-10-20 | 2018-02-23 | 同济大学 | 一种基于知识图谱的词嵌入深度学习方法 |
Non-Patent Citations (2)
Title |
---|
SSE:Semantically Smooth Embedding for Knowledge Graphs;Shu Guo等;《IEEE Transactions on Knowledge and Data Engineering》;20170401;第29卷(第4期);第884-897页 * |
基于知识图谱表示学习的协同过滤推荐算法;吴玺煜等;《计算机工程》;20180228;第44卷(第2期);第226-263页 * |
Also Published As
Publication number | Publication date |
---|---|
CN108427773A (zh) | 2018-08-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114756383B (zh) | 一种分布式计算方法、系统、设备及存储介质 | |
CN108875955A (zh) | 基于参数服务器的梯度提升决策树的实现方法及相关设备 | |
CN111191728A (zh) | 基于异步或同步的深度强化学习分布式训练方法及系统 | |
CN112381218B (zh) | 一种用于分布式深度学习训练的本地更新方法 | |
CN111966495B (zh) | 数据处理方法和装置 | |
CN108427773B (zh) | 一种分布式知识图谱嵌入方法 | |
CN112732436B (zh) | 一种多核处理器-单图形处理器的深度强化学习加速方法 | |
CN104092618A (zh) | 一种基于杜鹃搜索算法的对等网络流量特征选择方法 | |
CN110414569A (zh) | 聚类实现方法及装置 | |
CN114520743A (zh) | 一种网络异常流量检测方法、系统及可存储介质 | |
CN114511042A (zh) | 一种模型的训练方法、装置、存储介质及电子装置 | |
CN117290721A (zh) | 数字孪生建模方法、装置、设备及介质 | |
WO2021059527A1 (ja) | 学習装置、学習方法、及び、記録媒体 | |
CN106844533A (zh) | 一种数据分组聚集方法及装置 | |
CN113742495B (zh) | 基于预测模型的评级特征权重确定方法及装置、电子设备 | |
CN112738724B (zh) | 一种区域目标人群的精准识别方法、装置、设备和介质 | |
CN114254117A (zh) | 一种基于数据增强和自适应负采样技术的知识图谱推理方法 | |
CN112668639A (zh) | 一种模型训练方法、装置、服务器及存储介质 | |
CN113191486A (zh) | 基于参数服务器架构的图数据与参数数据的混合划分方法 | |
CN112491971B (zh) | 一种计算集群节点调度方法、装置、设备、产品 | |
CN109995756B (zh) | 用于信息系统入侵检测的在线单分类主动机器学习方法 | |
CN114385831B (zh) | 一种基于特征提取的知识图谱关系预测方法 | |
CN117556273B (zh) | 一种通过多图形处理器计算对比损失的方法和装置 | |
CN109711478A (zh) | 一种基于时序密度聚类的大规模数据群组搜索方法 | |
CN115658926B (zh) | 知识图谱的要素推测方法、装置、电子设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 210008 No. 22, Hankou Road, Gulou District, Jiangsu, Nanjing Applicant after: NANJING University Address before: 210046 Xianlin Avenue 163, Qixia District, Nanjing City, Jiangsu Province Applicant before: NANJING University |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |