GEO
赞助商内容

DGL-KE工具如何优化知识图谱嵌入效率?(附2-5倍性能提升实测)

2026/4/17
DGL-KE工具如何优化知识图谱嵌入效率?(附2-5倍性能提升实测)

AI Summary (BLUF)

Amazon's DGL-KE tools optimize knowledge graph embedding for parallel computing, achieving 2-5x efficiency gains through graph partitioning, negative sampling, relation partitioning, and overlapping computations.

原文翻译: 亚马逊的DGL-KE工具通过图分区、负采样、关系分区和计算重叠等优化技术,显著提升了知识图谱嵌入在并行计算环境中的效率,实现了2-5倍的性能提升。

知识图谱是一种数据结构,由实体(图中的节点)和它们之间的关系(,通常描绘为连接节点的线段)组成。例如,在一个知识图谱中,实体“尼罗河”和“非洲”可以通过关系“位于”连接起来。

知识图谱是一种数据结构,由实体(图中的节点)和它们之间的关系(,通常描绘为连接节点的线段)组成。例如,在一个知识图谱中,实体“尼罗河”和“非洲”可以通过关系“位于”连接起来。

在亚马逊,我们使用知识图谱来表示产品之间的关系,并为 Alexa 的问答服务编码信息等。最近,我们还构建了一个表示医学和生物学信息的知识图谱,以帮助寻找 COVID-19 的治疗方法。

在亚马逊,我们使用知识图谱来表示产品之间的关系,并为 Alexa 的问答服务编码信息等。最近,我们还构建了一个表示医学和生物学信息的知识图谱,以帮助寻找 COVID-19 的治疗方法。

如今,知识图谱的许多应用都涉及知识图谱嵌入,即将知识图谱中的实体和关系表示为向量空间中的点。为了使知识图谱嵌入更易于使用,我们的团队发布了一套名为 DGL-KE 的工具,用于深度图学习知识嵌入。

如今,知识图谱的许多应用都涉及知识图谱嵌入,即将知识图谱中的实体和关系表示为向量空间中的点。为了使知识图谱嵌入更易于使用,我们的团队发布了一套名为 DGL-KE 的工具,用于深度图学习知识嵌入。

在上周举行的 ACM 信息检索年度会议 SIGIR 上,我们发表了一篇论文,描述了一系列优化措施,使 DGL-KE 能够在并行计算环境中更高效地运行。

在上周举行的 ACM 信息检索年度会议 SIGIR 上,我们发表了一篇论文,描述了一系列优化措施,使 DGL-KE 能够在并行计算环境中更高效地运行。

在实验中,我们的优化使 DGL-KE 计算知识图谱嵌入的效率比之前的并行计算方法提高了 2 到 5 倍。

在实验中,我们的优化使 DGL-KE 计算知识图谱嵌入的效率比之前的并行计算方法提高了 2 到 5 倍。

几何解释

知识图中编码的数据可以表示为三元组的集合;每个三元组由一个头实体、一个关系和一个尾实体组成。例如,在三元组 [尼罗河 | 位于 | 非洲] 中,“尼罗河”是头实体,“位于”是关系,“非洲”是尾实体。

知识图中编码的数据可以表示为三元组的集合;每个三元组由一个头实体、一个关系和一个尾实体组成。例如,在三元组 [尼罗河 | 位于 | 非洲] 中,“尼罗河”是头实体,“位于”是关系,“非洲”是尾实体。

嵌入知识图谱的标准方法是使用一个机器学习模型,该模型以实体和关系作为输入,并输出固定长度的向量。在训练过程中,根据某个评分函数来评估模型,该函数关联三元组的头实体、关系和尾实体的嵌入。

嵌入知识图谱的标准方法是使用一个机器学习模型,该模型以实体和关系作为输入,并输出固定长度的向量。在训练过程中,根据某个评分函数来评估模型,该函数关联三元组的头实体、关系和尾实体的嵌入。

例如,评分函数可能表示头实体向量和关系向量之和在多大程度上近似于尾实体向量。训练的目标是最大化图中实际存在的三元组的评分,并最小化图中不存在的三元组的评分。

例如,评分函数可能表示头实体向量和关系向量之和在多大程度上近似于尾实体向量。训练的目标是最大化图中实际存在的三元组的评分,并最小化图中不存在的三元组的评分。

如今,一个知识图谱可能包含数百万个实体和数十亿个关系。如果没有并行化,嵌入如此大量的数据将是不切实际的。

如今,一个知识图谱可能包含数百万个实体和数十亿个关系。如果没有并行化,嵌入如此大量的数据将是不切实际的。

在我们的论文中,我们考虑了三种不同的并行计算环境:(1) 多核机器,具有多个 CPU;(2) GPU 机器,具有多个 CPU 和多个 GPU;(3) 计算集群,其中训练过程被分解到多台机器上。

在我们的论文中,我们考虑了三种不同的并行计算环境:(1) 多核机器,具有多个 CPU;(2) GPU 机器,具有多个 CPU 和多个 GPU;(3) 计算集群,其中训练过程被分解到多台机器上。

在每种环境中,DGL-KE 以不同的方式组织数据存储和访问。在多核训练中,完整的知识图谱存储在内存中;在 GPU 训练中,实体存储在内存中,但关系存储在 GPU 内存中;在分布式训练中,知识图谱被划分到多台机器上,由一个键值数据库(下图中的 KVStore)管理数据访问。

在每种环境中,DGL-KE 以不同的方式组织数据存储和访问。在多核训练中,完整的知识图谱存储在内存中;在 GPU 训练中,实体存储在内存中,但关系存储在 GPU 内存中;在分布式训练中,知识图谱被划分到多台机器上,由一个键值数据库(下图中的 KVStore)管理数据访问。

DGL-KE 在不同环境中应用不同的优化,但它们都有一个共同的目标,即典型的并行计算方案目标:最小化并行计算资源之间的通信,并将数据存储在将使用它的进程附近。

DGL-KE 在不同环境中应用不同的优化,但它们都有一个共同的目标,即典型的并行计算方案目标:最小化并行计算资源之间的通信,并将数据存储在将使用它的进程附近。

核心优化策略

DGL-KE 采用了一系列优化策略来提升大规模知识图谱嵌入的训练效率。这些策略针对不同的计算环境进行了定制。

1. 图分区

此优化专门针对分布式训练(跨多台机器的训练)。为了将图拆分以分布到多台机器上,我们使用 METIS,这是一个实现了最小割算法的软件套件。最小割问题是找到将图分成两部分所需的最小边删除数量。通过最小化分配给不同机器的图块之间的连接边数量,我们减少了机器之间通信的需求。METIS 是由我们团队负责人、亚马逊高级首席科学家 George Karypis 的学术实验室开发的,他也是明尼苏达大学的计算机科学教授。

此优化专门针对分布式训练(跨多台机器的训练)。为了将图拆分以分布到多台机器上,我们使用 METIS,这是一个实现了最小割算法的软件套件。最小割问题是找到将图分成两部分所需的最小边删除数量。通过最小化分配给不同机器的图块之间的连接边数量,我们减少了机器之间通信的需求。METIS 是由我们团队负责人、亚马逊高级首席科学家 George Karypis 的学术实验室开发的,他也是明尼苏达大学的计算机科学教授。

2. 负采样

对于从知识图谱中提取的每个有效三元组,我们通过用虚假实体替换其头实体或尾实体,人为地创建多个负样本——通常约为 200 个。这在计算上是昂贵的,因为检索虚假替换需要多次调用内存。为了降低这种成本,我们对一组中的每个有效三元组使用相同的替代实体集。如果该组有 100 个成员,这将我们必须检索的替代实体数量减少 99%。

对于从知识图谱中提取的每个有效三元组,我们通过用虚假实体替换其头实体或尾实体,人为地创建多个负样本——通常约为 200 个。这在计算上是昂贵的,因为检索虚假替换需要多次调用内存。为了降低这种成本,我们对一组中的每个有效三元组使用相同的替代实体集。如果该组有 100 个成员,这将我们必须检索的替代实体数量减少 99%。

3. 关系分区

此优化适用于分布式训练和多 GPU 训练,但在第二种情况下尤为重要。为了最小化通信开销,我们尝试将特定类型的所有关系仅分配给一个 GPU。我们以贪婪的方式迭代地进行此分配。在每次迭代中,我们将剩余的最常见关系类型分配给具有最多可用内存的 GPU。这种方法确实会降低训练过程中的随机性,这可能会使最终模型的准确性降低。但我们通过确保在每个训练周期中关系的不同分布来避免这种后果。(知识图谱嵌入模型,像大多数机器学习模型一样,在同一数据集上训练多次;每次遍历数据称为一个周期。)

此优化适用于分布式训练和多 GPU 训练,但在第二种情况下尤为重要。为了最小化通信开销,我们尝试将特定类型的所有关系仅分配给一个 GPU。我们以贪婪的方式迭代地进行此分配。在每次迭代中,我们将剩余的最常见关系类型分配给具有最多可用内存的 GPU。这种方法确实会降低训练过程中的随机性,这可能会使最终模型的准确性降低。但我们通过确保在每个训练周期中关系的不同分布来避免这种后果。(知识图谱嵌入模型,像大多数机器学习模型一样,在同一数据集上训练多次;每次遍历数据称为一个周期。)

4. 计算重叠

在 GPU 机器中,CPU 有两个任务:将训练数据批次分配给 GPU,以及更新存储在内存中的嵌入。GPU 有一个任务:处理其训练数据批次以计算 CPU 将用于更新嵌入的梯度。为了最大化效率,我们通过重叠这些计算来保持 CPU 和 GPU 都处于忙碌状态。当 CPU 正在基于一批数据更新嵌入时,GPU 已经开始为下一批数据计算梯度

在 GPU 机器中,CPU 有两个任务:将训练数据批次分配给 GPU,以及更新存储在内存中的嵌入。GPU 有一个任务:处理其训练数据批次以计算 CPU 将用于更新嵌入的梯度。为了最大化效率,我们通过重叠这些计算来保持 CPU 和 GPU 都处于忙碌状态。当 CPU 正在基于一批数据更新嵌入时,GPU 已经开始为下一批数据计算梯度

优化策略对比与效果

下表总结了 DGL-KE 在不同计算环境下采用的核心优化策略及其主要目标。

优化策略 适用场景 核心目标 关键技术/方法
图分区 分布式训练(多机) 最小化机器间通信 METIS 最小割算法
负采样 所有训练场景 减少内存访问开销 组内共享负样本实体
关系分区 多 GPU 训练 / 分布式训练 最小化 GPU 间/机器间通信 贪婪迭代分配,按周期轮换
计算重叠 GPU 训练 最大化 CPU/GPU 利用率 异步梯度计算与参数更新

在实验中,我们将使用我们优化方案的分布式训练方案与两种现有的训练方案进行了比较,使用了五种不同的方法在训练期间对嵌入进行评分。平均而言,我们的方法相对于一个基线实现了两倍的加速,相对于另一个基线实现了五倍的加速。

在实验中,我们将使用我们优化方案的分布式训练方案与两种现有的训练方案进行了比较,使用了五种不同的方法在训练期间对嵌入进行评分。平均而言,我们的方法相对于一个基线实现了两倍的加速,相对于另一个基线实现了五倍的加速。

总结

通过针对多核 CPU、多 GPU 和分布式集群等不同计算环境设计专门的优化策略,DGL-KE 显著提升了大规模知识图谱嵌入的训练效率。这些优化围绕减少通信开销、优化内存访问和提升硬件利用率展开,使得处理包含数百万实体和数十亿关系的知识图谱变得可行。这项工作为更复杂、更大规模的知识图谱应用奠定了坚实的技术基础。

通过针对多核 CPU、多 GPU 和分布式集群等不同计算环境设计专门的优化策略,DGL-KE 显著提升了大规模知识图谱嵌入的训练效率。这些优化围绕减少通信开销、优化内存访问和提升硬件利用率展开,使得处理包含数百万实体和数十亿关系的知识图谱变得可行。这项工作为更复杂、更大规模的知识图谱应用奠定了坚实的技术基础。

常见问题(FAQ)

DGL-KE工具如何实现2-5倍的效率提升?

DGL-KE通过图分区减少机器间通信、负采样降低内存访问成本、关系分区优化GPU分配、计算重叠保持CPU/GPU并行工作,这四项核心优化策略共同实现了2-5倍的训练效率提升。

知识图谱嵌入训练中,负采样优化具体怎么做?

DGL-KE对每组有效三元组使用相同的替代实体集来创建负样本。例如,组内有100个成员时,只需检索一次替代实体集,将内存访问次数减少99%,显著降低了计算开销。

关系分区会影响模型准确性吗?

关系分区可能降低训练随机性,但DGL-KE通过在每个训练周期中重新分配关系类型来避免准确性下降。这种动态分配确保了模型训练既高效又能保持较好的泛化能力。

← 返回文章列表
分享到:微博

版权与免责声明:本文仅用于信息分享与交流,不构成任何形式的法律、投资、医疗或其他专业建议,也不构成对任何结果的承诺或保证。

文中提及的商标、品牌、Logo、产品名称及相关图片/素材,其权利归各自合法权利人所有。本站内容可能基于公开资料整理,亦可能使用 AI 辅助生成或润色;我们尽力确保准确与合规,但不保证完整性、时效性与适用性,请读者自行甄别并以官方信息为准。

若本文内容或素材涉嫌侵权、隐私不当或存在错误,请相关权利人/当事人联系本站,我们将及时核实并采取删除、修正或下架等处理措施。 也请勿在评论或联系信息中提交身份证号、手机号、住址等个人敏感信息。

您可能感兴趣