知识图谱嵌入的并行计算优化
知识图谱是由实体(图节点)和关系(边)组成的数据结构。例如,“尼罗河"和"非洲"可通过"位于"关系连接。某中心利用知识图谱表示产品关联关系,并为智能语音服务提供信息支持,近期还构建了包含医学与生物学信息的知识图谱以辅助COVID-19治疗方案研究。
当前知识图谱应用常涉及嵌入技术——将实体和关系表示为向量空间中的点。为提升易用性,研究团队开源了DGL-KE(深度图学习知识嵌入)工具集。在国际计算机学会信息检索年度会议SIGIR上,团队发表了针对并行计算环境的优化方案,使DGL-KE运行效率达到传统方法的2-5倍。
技术实现原理
知识图谱数据可表示为三元组(头实体、关系、尾实体),例如[尼罗河 | 位于 | 非洲]。嵌入过程通过机器学习模型将实体和关系映射为固定长度向量,训练时通过评分函数优化真实三元组的向量近似程度。
并行计算优化策略
针对百万级实体和十亿级关系的大规模图谱,DGL-KE针对三种计算环境采用差异化数据存储方案:
- 多核CPU训练:完整图谱存储于主内存
- 多GPU训练:实体存于主内存,关系存于GPU显存
- 分布式训练:图谱分区存储于不同机器,通过键值数据库(KVStore)管理数据访问
核心优化技术包括:
- 图分区优化:采用METIS最小切割算法划分分布式训练的图谱,减少机器间通信开销
- 负采样优化:对每组有效三元组采用相同替代实体集合,将内存访问次数降低99%
- 关系分区优化:将同类关系分配至同一GPU,并通过迭代贪婪算法确保内存均衡,每训练周期调整关系分布以保持模型准确性
- 计算重叠优化:在GPU训练中使CPU更新嵌入向量与GPU计算梯度并行执行
实验效果
在分布式训练环境中,使用五种不同评分方法的测试表明,优化后的方案相比两种基线方法平均实现2倍和5倍的加速比。该技术已应用于某中心云计算服务与智能语音系统的知识图谱构建。
相关论文《DGL-KE: Training knowledge graph embeddings at scale》发表于SIGIR 2020会议