基于关键嵌入的知识图谱表示学习框架优化方法

文档序号:30329946发布日期:2022-06-08 05:22阅读:180来源:国知局
基于关键嵌入的知识图谱表示学习框架优化方法

1.本发明涉及知识图谱领域,具体来说,涉及知识图谱表示学习领域。


背景技术:

2.知识图谱实现新一代认知型人工智能的重要基石,随着人工智能的快速发展,知识图谱已在许多领域得到广泛应用,知识图谱数据的规模正在急剧增加,规模为百万节点(106)和上亿条边(108)的知识图谱普遍存在于各领域,规模为千万节点(107)和十亿条边(109)的大规模知识图谱也开始出现。
3.在语义web社区中,资源描述框架(resource description framework,简称rdf)是由万维网联盟(w3c)提出的一组标记语言的技术规范,由于其简单性和可扩展性而被广泛用于描述web资源的特征。rdf基于xml语法和xml schema的数据类型发展而来,使得其可以更丰富的描述和表达资源的内容与结构,逐渐发展成为表示各种类型数据的通用数据模型,也被广泛的用于表示各种领域知识。rdf三元组表示为(s,p,o),其中,s表示主语,p表示谓语,o表示宾语,三元组表示主语和宾语通过谓语连接成为现有事实。由于rdf的简单性与易用性,许多领域采用rdf数据模型管理和发布领域知识,如社会网络、生物信息学等。
4.由于知识图谱是高维的图数据,基于rdf数据模型表示的知识图谱数据难以直接应用到机器学习任务中。为了解决这个问题,目前主流的方法是知识图谱表示学习算法,其关键思想是将高维稀疏的包含实体和关系的知识图谱的数据嵌入到低维连续的向量空间中,以简化操作,同时保留知识图谱的固有结构。通过表示学习算法得到的知识向量可以广泛的应用于现实世界的任务中,如语义解析、信息抽取、知识问答和推荐系统。
5.识图谱表示学习模型在小规模的基准数据集(如fb15k和wn18)上表现出较高的准确性。然而,知识图谱日益增长的规模,为目前已有的表示学习模型在性能上提出了新的挑战。目前大多数的模型参数规模较大、计算复杂性较高,现有的知识图谱表示学习框架算力不足。因此,急需一种高效的、支持分布式并行的知识图谱表示学习框架优化方法,以实现大规模知识图谱数据高效率的表示学习。


技术实现要素:

6.针对上述现有技术,本发明提出一种基于关键嵌入的知识图谱表示学习框架优化方法,称为hotke。结合知识图谱表示学习框架的特点,设计分布式训练过程的代价模型和优化方案,权衡计算代价和通信开销。在知识图谱分布式表示学习过程中,以不降低模型准确度为前提,引入嵌入缓存表动态地选择高频命中的实体和关系,提取并存储这些实体和关系的嵌入作为关键嵌入,来减少获取关键嵌入的通信成本。通过动态更新嵌入缓存表,保证本地嵌入缓存和全局嵌入之间的差异可以被限制在一个给定的阈值内。以增加少量计算时间为代价,换取通信时间的显著下降,从而提升整体的训练效率。
7.为了解决上述技术问题,本发明提出的一种基于关键嵌入的知识图谱表示学习框架优化方法,包括以下步骤:
8.步骤一、关键嵌入缓存表初始化,初始化后该关键嵌入缓存表为空,所述关键嵌入缓存表包含第一列和第二列,所述第一列标识子图中实体或关系的id,所述第二列为实体或关系的嵌入;
9.步骤二、采用预加载和过滤在训练迭代过程中动态地构建所述的关键嵌入缓存表;
10.步骤三、采用恒定部分延迟或是动态部分延迟的方式,利用所述关键嵌入缓存表更新工作节点存储子图中实体和关系的嵌入;
11.步骤四、将更新后的嵌入推回给参数服务器。
12.进一步讲,本发明所述的知识图谱表示学习框架优化方法,其中:
13.步骤一中,知识图谱表示学习的训练过程开始时,通过图划分算法对知识图谱进行划分,每个工作节点存储一个包括知识图谱部分实体和关系的子图;根据划分结果,各工作节点上的参数服务器对嵌入进行初始化。
14.步骤二中,所述的预加载过程为:工作节点从自身子图中采样得到正三元组样本集合,并生成负三元组样本集合;工作节点对正三元组样本集合和负三元组样本集合中包含的实体和关系进行去重后存储实体和关系列表作为预加载结果;
15.步骤二中,所述的过滤的过程为,工作节点计算预加载列表中实体和关系在子图中出现的频率,按照每个实体和关系频率的降序排列,选取预加载列表中的高频实体和关系,从参数服务器中拉取与高频实体和关系对应的嵌入作为关键实体和关系嵌入,从而构建该关键嵌入缓存表。
16.步骤二中,所述预加载列表中的高频实体和关系是指该表中前1%的实体和关系。
17.步骤三中,采用恒定部分延迟方式,利用所述关键嵌入缓存表更新工作节点存储子图中实体和关系的嵌入的过程是:工作节点迭代若干轮次对实体和关系的嵌入进行训练,利用构建的关键嵌入缓存表进行训练优化;如果用于训练的实体和关系出现在关键嵌入缓存表中,直接获取其相应嵌入;如果用于训练的实体和关系不在关系嵌入缓存表中,则从参数服务器中拉去实体和关系的对应嵌入;使用获取的嵌入,计算损失函数、更新工作节点存储的子图的实体和关系的嵌入。
18.步骤三中,采用动态部分延迟方式,利用所述键嵌入缓存表更新工作节点存储子图中实体和关系的嵌入的过程是:工作节点迭代若干轮次对实体和关系的嵌入进行训练,利用构建的关键嵌入缓存表进行训练优化,并动态地调整关键嵌入缓存表的内容;如果用于训练的实体和关系出现在关键嵌入缓存表中,直接获取其相应嵌入,如果用于训练的实体和关系不在关系嵌入缓存表中,则从参数服务器中拉去实体和关系的对应嵌入;同时,当训练轮次超过一个给定的阈值时,对关键嵌入缓存表中实体和关系的嵌入进行动态调整:从参数服务器拉取当前时刻关键嵌入缓存表中实体和关系对应的嵌入,并将新获取的嵌入覆盖关键嵌入缓存表中原有的嵌入;使用获取的嵌入,计算损失函数、更新工作节点存储的子图的实体和关系的嵌入。
19.与现有技术相比,本发明的有益效果是:
20.本发明提出的基于关键嵌入的知识图谱表示学习框架优化方法,对传统的参数服务器架构进行扩展,基于参数访问的局部性特性,通过引入关键嵌入缓存表来减少工作节点之间的通信开销。本发明设计了关键嵌入同步算法,采用预加载机制来自适应地选择关
键嵌入并动态地更新缓存嵌入表,通过保留高频访问的嵌入提少参数传输产生的通信开销,从而提高通信效率;同时,设计恒定部分延迟和动态部分延迟两种策略用于构建关键嵌入缓存表,对缓存的关键嵌入和全局嵌入的差异性进行限制,保证训练的准确度。
附图说明
21.图1是本发明提出的hotke方法的整体架构图;
22.图2是本发明基于cps和dps策略构建关键嵌入缓存表的样例;
23.图3是本发明提出的方法在工作节点运行时的流程图;
24.图4是本发明在评测数据集的收敛性实验的结果;
25.图5本本发明在评测数据集的扩展性实验的结果;
26.图6是本发明在大规模数据集测试关键嵌入数量对训练影响的结果;
27.图7是本发明在大规模数据集测试同步周期对训练影响的结果;
28.图8是本发明在大规模数据集测试实体关键嵌入比例对训练影响的结果。
具体实施方式
29.下面结合附图及具体实施例对本发明做进一步的说明,但下述实施例绝非对本发明有任何限制。
30.本发明提出的一种基于关键嵌入的知识图谱表示学习框架优化方法,包括以下步骤:
31.步骤一、关键嵌入缓存表初始化。
32.分布式环境下每台物理机器上配置参数服务器、工作节点和关键嵌入缓存表。在训练迭代开始之前,采用常用的图划分算法对知识图谱进行划分,以减少不同工作节点间边的数量,实体和关系嵌入被自动分成多个部分并存储在训练集群中。初始化每个工作节点上的关键嵌入缓存表。本发明中,知识图谱表示学习的训练过程开始时,通过图划分算法对知识图谱进行划分,每个工作节点存储一个包括知识图谱部分实体和关系的子图;根据划分结果,各工作节点上的参数服务器对嵌入进行初始化。此时,该关键嵌入缓存表为空,所述关键嵌入缓存表包含第一列和第二列,所述第一列为能够唯一标识子图中实体或关系的id,所述第二列为实体或关系的嵌入。
33.步骤二、构建所述的关键嵌入缓存表。
34.考虑到知识图谱表示学习训练的过程由于存在大量跨节点的嵌入访问,即使在知识图谱划分之后,通信代价仍然为知识图谱表示学习的训练过程的主要开销。根据训练的负载自适应地构建关键嵌入缓存表。本发明中采用预加载和过滤在训练迭代过程中动态地构建所述的关键嵌入缓存表。
35.1)所述的预加载过程为:工作节点从自身子图中采样得到正三元组样本集合,并生成负三元组样本集合;工作节点对正三元组样本集合和负三元组样本集合中包含的实体和关系进行去重后存储实体和关系列表作为预加载结果。
36.2)所述的过滤过程采用预加载列表中实体和关系的频率作为其重要性的指标。工作节点计算预加载列表中实体和关系在子图中出现的频率,按照每个实体和关系频率的降序排列,选取预加载列表中的高频实体和关系,从参数服务器中拉取与高频实体和关系对
应的嵌入作为关键实体和关系嵌入,从而构建该关键嵌入缓存表。由于知识图谱节点的异构型,关系的频率通常比实体的频率高。在构建关键嵌入缓存表时忽略这种节点的异质性可能会导致偏向于缓存关系的嵌入。为了解决这个问题,本发明在关键嵌入缓存表中固定了实体和关系嵌入的比例。本发明中,所述预加载列表中的高频实体和关系是指该表中前1%的实体和关系。
37.步骤三、利用所述关键嵌入缓存表更新工作节点存储子图中实体和关系的嵌入。
38.根据训练过程中,不同实体和关系嵌入的访问的频率以及参数的访问局部性特性,引入关键嵌入缓存表以减少高频参数的网络传输次数。在现有的参数服务器架构的基础上,本发明中,对所述的用于更新关键嵌入缓存表延迟策略提供了两种可供选择的方式,分别为恒定部分延迟(constant partial stale,cps)方式和动态部分延迟(dynamic partial stale,dps)方式。
39.1)为了获得高质量的关键嵌入,分析知识表示学习的采样过程,当一个均匀采样器从知识图谱中生成样本时,度数更高的实体、出现次数更多的关系更有可能被获取。基于此,对整个子图进行预加载,并计算所有实体和关系嵌入的访问频率。由于每个工作节点的内存空间是有限的,筛选出最高频的嵌入向量来构建嵌入缓存表,缓存高频嵌入可以减少更多的网络传输。基于恒定部分延迟策略构建的缓存中的关键嵌入是固定的,在训练过程中不会被替换。本发明中,采用恒定部分延迟方式,利用所述关键嵌入缓存表更新工作节点存储子图中实体和关系的嵌入的过程是:工作节点迭代若干轮次对实体和关系的嵌入进行训练,利用构建的关键嵌入缓存表进行训练优化;如果用于训练的实体和关系出现在关键嵌入缓存表中,直接获取其相应嵌入;如果用于训练的实体和关系不在关系嵌入缓存表中,则从参数服务器中拉去实体和关系的对应嵌入;使用获取的嵌入,计算损失函数、更新工作节点存储的子图的实体和关系的嵌入。
40.2)在恒定部分延迟策略中,假设每个训练样本中的嵌入访问分布与全局分布相似,因此,关键嵌入缓存表在训练前就已经确定了。事实上,由于采样过程的随机性,部分训练样本中的关键嵌入可能是那些在全局嵌入中出现频率较低的嵌入,这使得基于cps策略构建的缓存难以在每轮迭代中都具有很高的命中率。为了解决这个问题,引入了动态部分延迟策略。在训练过程中,dps策略预加载连续的若干轮训练中的样本,根据其中实体和关系嵌入的访问频率过滤得到关键嵌入,并动态修改关键嵌入缓存表。dps策略可以提高缓存命中率,因为它保证了关键嵌入在较短的时间内反映了嵌入的访问模式,并进一步提高了网络传输的减少。对于cps策略,关键嵌入缓存表在训练迭代过程中是固定的。而对于dps,关键嵌入缓存表将被定期更新,以达到更高的缓存命中率。本发明中,采用动态部分延迟方式,利用所述键嵌入缓存表更新工作节点存储子图中实体和关系的嵌入的过程是:工作节点迭代若干轮次对实体和关系的嵌入进行训练,利用构建的关键嵌入缓存表进行训练优化,并动态地调整关键嵌入缓存表的内容;如果用于训练的实体和关系出现在关键嵌入缓存表中,直接获取其相应嵌入,如果用于训练的实体和关系不在关系嵌入缓存表中,则从参数服务器中拉去实体和关系的对应嵌入;同时,当训练轮次超过一个给定的阈值时,对关键嵌入缓存表中实体和关系的嵌入进行动态调整:从参数服务器拉取当前时刻关键嵌入缓存表中实体和关系对应的嵌入,并将新获取的嵌入覆盖关键嵌入缓存表中原有的嵌入;使用获取的嵌入,计算损失函数、更新工作节点存储的子图的实体和关系的嵌入。
41.步骤四、将更新后的嵌入推回给参数服务器。
42.实施例
43.图1示出了本发明提出的基于关键嵌入的知识图谱表示学习框架优化方法的整体架构图。在每台机器上启动多个服务器进程以实现负载均衡,这些服务器通过共享内存访问本地存储的实体和关系嵌入。训练开始前,知识图谱训练数据被划分为若干分片并发送至每台机器中,参数服务器启动并初始化模型参数,同时将模型参数分片分别存储至每台机器中,训练器启动进程并行执行训练过程。通过关键嵌入缓存表,每个工作节点都可以避免为关键嵌入进行大量的远程通信。
44.在每轮迭代中,基于关键嵌入的训练过程包括:
45.1)从本地子图中采样得到正样本集合,并随机替换其中的实体,构建负样本;
46.2)从关键嵌入缓存表中加载实体和关系嵌入,并从参数服务器中拉取当前小批量所需的其余嵌入;
47.3)进行前向计算和反向传播,计算实体和关系嵌入的梯度;
48.4)将本次迭代的所有嵌入梯度推送到参数服务器,由参数服务器更新对应的实体和关系嵌入。
49.图2示出了提出的两种部分延迟策略,即恒定部分延迟和动态部分延迟的工作流程示例。对于一个包含6次迭代计算的训练过程,cps方法在选取关键嵌入构建缓存,并在所有6次迭代中使用固定的关键嵌入缓存表。对于预加载轮数为3的dps方法,工作者每3次迭代就重建一次关键嵌入缓存表,在第4-6轮中,dps将访问频率较高的嵌入选作4-6轮中的关键嵌入。与cps相比,动态的构建机制能够缓存局部高频但全局低频的嵌入,使dps的平均缓存命中率更高。现有的知识图谱表示学习训练系统和本发明提出的优化方法的关键区别在于拉动嵌入的阶段。
50.考虑到大规模知识图谱的规模往往能够达到千万级,而训练过程中采用的批量大小通常只达到千级,单次更新的参数对于全局参数而言是稀疏的,因此,知识表示学习对于参数的延迟并不敏感,可以利用稀疏更新的特点进行进一步优化。为了在不牺牲准确率的前提下减少训练时间,设法最大限度地提高本地关键嵌入的访问量,并减少本地关键嵌入与参数服务器上的副本之间的不一致性。基于这个目标,为分布式训练过程提出一个关键嵌入同步算法,通过周期性地将关键嵌入与参数服务器同步,以防止关键嵌入的过期程度超出给定的阈值。具体过程是:
51.1)在部分延迟策略中,工作节点异步执行分布式训练任务。对知识图谱进行划分并从子图中预加载样本来构建关键嵌入缓存表。迭代过程中从参数服务器中获取最新版本的关键嵌入用于更新缓存。
52.2)随后,工作节点从预加载列表加载样本,从缓存和参数服务器获取嵌入,然后计算损失函数、更新嵌入值并推回给参数服务器。工作节点的关键嵌入缓存表和参数服务器中全局嵌入之间的不一致会牺牲准确性。
53.3)训练开始前,工作节点构建关键嵌入缓存表并从参数服务器同步最新版本的关键嵌入,并在随后的训练中使用关键嵌入,在这个过程中,即使这些关键嵌入被其他工作节点更新,当前工作节点仍将使用构建时拉取的关键嵌入进行训练。为了缓解异步训练中参数不一致的问题,通过引入有界延迟技术来约束关键嵌入的不一致性。
54.4)有界延迟技术通过采用轻量级同步来缓解收敛过程中的参数不一致问题,并已被广泛地应用于分布式训练算法和分布式系统。每隔若干轮对关键嵌入缓存表进行同步,以减小关键嵌入缓存表和全局嵌入间的差异。
55.图3示出了基于关键嵌入的分布式训练与同步算法的流程图。对于工作节点,在训练之前,工作节点将知识图谱g划分为n个子图。当迭代达到设定的预加载阈值d时,工作节点i从子图gi中预加载样本、实体和关系,随后构建关键嵌入缓存表。当迭代轮数达到指定的同步阈值k时,从参数服务器中获取最新版本的关键嵌入,用于更新缓存。随后,工作节点从预加载列表加载样本,从缓存和参数服务器获取嵌入,然后计算损失函数。当损失值时,满足更新条件,工作节点通过反向传播计算嵌入的梯度,然后将梯度推回给参数服务器。对于参数服务器,提供了用于嵌入参数和梯度传输的方法,在训练过程中,参数服务器持续获取消息队列中的元素,采用优化器更新嵌入,或将嵌入推送给目标工作节点。
56.表1展示了本发明提出的方法(hotke)在三个数据集上的进行常用的知识图谱表示学习评估任务,即链接预测任务的实验结果。
[0057][0058]
选取了目前最先进的的两个分布式图表示学习系统pytorch-biggraph(pbg)和dgl-ke,作为对比基准。所有实验均在由4台机器组成的分布式集群下完成,且所有系统均只采用cpu用于计算,未使用gpu,实验数据集为知识表示学习基准数据集fb15k、wn18和大规模真实知识图谱freebase-86m,用于对比的知识表示学习模型采用适应性更强的transe模型,同时评价指标的设置均为filter设置。在基准数据集fb15k和wn18上,dgl-ke、hotke均可以达到相当的训练准确率,略高于pbg。其中hits@10指标均超过0.8,表明通过分布式知识表示学习训练后的模型可以很好对三元组中缺失的实体进行预测,在链接预测任务中给出的候选列表排名前十的三元组中有80%以上的概率包含正确结果。在大规模知识图谱freebase-86m数据集上,pbg、dgl-ke、hotke-c和hotke-d(两种部分延迟策略)都能够达到
相当的准确率。hotke-c和hotke-d的训练时间比pbg和dgl-ke要短,这说明了基于关键嵌入的优化方案能够有效的提高训练效率,其中hotke-d的训练时间比hotke-c更短,表明动态构建关键嵌入缓存表的方式相对于固定的方式能够进一步提升训练效率。结果验证本发明的框架优化方法可以达到与现有的最先进的系统pbg和dgl-ke相当的准确性。
[0059]
图4示出了各个训练框架在fb15k、wn18和freebase-86m数据集的收敛情况。通过折线图可以得到以下结论,pbg、dgl-ke和hotke均可以顺利的收敛,这表明在分布式环境下,由多个计算节点并行训练并不会显著影响模型的收敛性。在不同规模的数据集上,hotke方法优化的框架的训练收敛速度比pbg和dgl-ke更快,这说明基于关键嵌入的分布式训练算法能够有效的减少系统训练时间,同时保证算法的正确性,同时,在大规模数据集freebase-86m上,hotke的训练效率提升更显著,这是因为随着知识图谱规模的增加,网络通信时间的占比会提升,对网络通信的优化效果更显著。验证了hotke可以达到与现有的最先进的系统pbg和dgl-ke相当的准确性,同时具有更高的训练效率。
[0060]
图5展示了各个训练框架的加速比随工作节点数量变化的情况以及各分布式框架在数据集上所需的训练时间情况。随着工作节点数量的增加,pbg、dgl-ke与hotke的加速比均有所提升,当工作节点数量达到16时,加速比趋于稳定,这表明,增加工作节点能够有效的减少训练时间,但随着工作节点数量的增加,网络通信逐渐成为制约系统性能的瓶颈。hotke的加速比相较于基准方法pbg和dgl-ke更高,这验证了基于关键嵌入的优化策略的有效性,同时,hotke-d比hotke-c的加速比更高,体现了动态部分延迟策略的优越性。在大规模知识图谱freebase-86m上,所有分布式训练框架的通信时间占比均超过了80%,hotke框架的计算时间与pbg和dgl-ke相当,通信时间减少了76%,总训练时间减少了73%,体现hotke优化策略能够有效减少分布式训练过程中的网络通信时间,提升训练效率。上述结果体现了hotke框架比基准方法pbg和dgl-ke具有更好的可扩展性。
[0061]
图6示出了关键嵌入的数量k对训练结果的影响,随着关键嵌入数量k的增加,模型准确率并未产生明显变化,这表明当关键嵌入的数量较少时,使用陈旧的嵌入用于训练不会对模型准确率产生明显影响。随着缓存空间的增加,每轮训练中需要远程拉取的嵌入减少,这表明在工作节点缓存关键嵌入用于训练能够减少网络通信量。
[0062]
图7示出了同步周期对训练结果的影响,随着同步周期k的增加,每轮训练中的平均参数传输量降低。当同步周期k《16时,模型准确率几乎保持不变,当同步周期k进一步增加,模型准确率逐渐下降,这表明同步周期增加,表示学习模型会使用更多过期参数进行训练,会对准确率产生不利影响。上述实验结果表明,可以通过调整同步周期k来权衡模型准确率和训练效率,当k=8时,hotke方法优化后的框架的表现最好,可以在不牺牲准确率的前提下减少更多的训练时间。
[0063]
图8示出了关键嵌入的内容对训练结果的影响,在关键嵌入数量不变的前提下,增加实体嵌入的比例,模型的训练准确性没有受到影响,但每轮训练中的参数传输量逐渐增加,这表明关系嵌入的访问相对于实体嵌入更密集,在关键嵌入缓存表中存储更多的关系嵌入能够获得更好的优化效果。
[0064]
尽管上面结合附图对本发明进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨的情况下,还可以做出很多变形,这些均属于本发明的
保护之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1