OpenKE 是由清华大学自然语言处理实验室(THUNLP)基于 TensorFlow 和 PyTorch 开发的用于知识图谱嵌入的开源框架。它提供了快速且稳定的各类接口,并实现了诸多经典的知识表示学习模型。
一、基本特点
- 主要功能:
多种算法实现:提供了 TransE、TransH、TransR、TransD、RESCAL、DistMult、HolE、ComplEx 等多种经典知识表示学习算法的统一接口的高效实现,方便用户使用和比较不同算法的效果。
预训练模型提供:针对 WikiData 和 Freebase 两大通用知识图谱全量数据,提供了预训练好的知识表示模型下载,节省了用户重新训练模型的时间和资源。 - 特点优势:
接口:具有简单的接口设计,可以轻松在各种不同的训练环境下部署模型,方便用户快速上手和使用。
训练:对底层的数据处理进行了优化,在 GPU 训练时具有较高的速度和较低的内存占用,同时还提供了轻量级的 C++模型实现,在 CPU 多线程环境下也能快速运行。
扩展:框架易于扩展,方便用户基于该框架设计新的知识表示模型,以满足不同的应用需求。
维护:有长期的工程维护,能够不断解决问题和满足新的需求,并且有来自清华大学的研究团队和活跃的社区贡献者提供支持。
二、技术原理
- 知识表示学习基础:
实体和关系的向量表示:将知识图谱中的实体和关系映射到低维连续的向量空间。这样可以把复杂的语义信息转化为易于计算和处理的向量形式。每个实体和关系都被表示为一个特定维度的向量,例如,在一个 100 维的向量空间中,每个实体和关系都有一个对应的 100 维向量。这种向量表示能够捕捉到实体和关系的语义特征,并且可以通过向量运算来推理实体之间的关系。
保留语义信息:在向量空间中,相似的实体和关系在向量表示上也应该接近。例如,“苹果”和“香蕉”这两个水果实体在知识图谱中具有一定的相似性(都是水果类的实体),那么在向量空间中它们的向量表示也应该比较接近。通过这种方式,知识图谱中的语义信息得以在向量空间中保留和体现。 - 常见的知识图谱嵌入模型原