GitHub - thunlp/OpenKE: An Open-Source Package for Knowledge Embedding (KE)
OpenKE是THUNLP基于TensorFlow、PyTorch开发的用于将知识图谱嵌入到低维连续向量空间进行表示的开源框架。在OpenKE中,我们提供了快速且稳定的各类接口,也实现了诸多经典的知识表示学习模型。该框架易于扩展,基于框架设计新的知识表示模型也十分的方便。具体来说,OpenKE具有如下特点:
-
接口设计简单,可以轻松在各种不同的训练环境下部署模型。
-
底层的数据处理进行了优化,模型训练速度较快。
-
提供了轻量级的C++模型实现,在CPU多线程环境下也能快速运行。
-
提供了大规模知识图谱的预训练向量,可以直接在下游任务中使用。
-
长期的工程维护来解决问题和满足新的需求。
-
OpenKE工具包地址:https://github.com/thunlp/OpenKE
此前THUNLP还开源了知识图谱表示学习必读论文列表:KRLPapers,覆盖了较为经典的知识图谱表示学习领域的已发表论文、综述等,欢迎搭配使用。
-
Papers论文列表地址:https://github.com/thunlp/KRLPapers
总体介绍
知识图谱是由实体(节点)和关系(不同类型的边)组成的多关系图。每条边都表示为形式(头实体、关系、尾实体的三个部分,也称为事实,表示两个实体通过特定的关系连接在一起,例如(北京, 首都, 中国)。虽然在表示结构化数据方面很有效,但是这类三元组的底层符号特性通常使知识图谱很难操作。为了解决这个问题,知识图谱表示学习被引入,将实体和关系转化为连续的向量空间,从而简化操作,同时保留知识图谱的原有的结构。那些实体和关系嵌入能进一步应用于各种任务中,如知识图谱补全、关系提取、实体分类和实体解析。下表给出一些典型知识图谱的评分函数与模型形式:
设计思路与样例
整体设计分为三层,包括底层数据处理、中层模型构建和上层训练与评测策略,每一块均有足够封装,确保调用的方便。如下图所示,通过简单的代码可以对不同层的模块进行调用,最终支持知识图谱表示学习模型的训练与部署。
使用我们的工具包复现出的模型与公开论文中公布的历史最高结果相比是基本一致的,相关的参数和训练代码也作为使用案例在我们的工具包中。
结语
OpenKE工具包将会长期维护并保持更新,欢迎大家使用OpenKE作为知识图谱表示学习领域学术研究和应用开发的工具。大家在使用过程中有任何问题或是意见和建议都欢迎提出。也欢迎大家加入我们,共同开发、完善OpenKE工具包。
指导老师
-
孙茂松:清华大学计算机系教授,https://nlp.csai.tsinghua.edu.cn/staff/sms/
-
刘知远:清华大学计算机系副教授,http://nlp.csai.tsinghua.edu.cn/~lzy/
开发团队
-
韩旭:清华大学计算机系博士生, https://github.com/THUCSTHanxu13
-
曹书林:清华大学计算机系博士生,https://github.com/ShulinCao
-
吕鑫:清华大学计算机系博士生,https://github.com/davidlvxin
-
陈暐泽:清华大学计算机系本科生,https://github.com/chenweize1998
-
杨景钦:清华大学交叉信息学院本科生,https://github.com/yjqqqaq
-
林衍凯:清华大学计算机系博士生(已毕业),https://github.com/Mrlyk423
-
谢若冰:清华大学计算机系硕士生(已毕业),http://nlp.csai.tsinghua.edu.cn/~xrb/
相关论文
[1] A Three-Way Model for Collective Learning on Multi-Relational Data. Nickel et al. Proceedings of ICML 2011.
[2] Translating Embeddings for Modeling Multi-relational Data. Bordes et al. Proceedings of NIPS 2013.
[3] Knowledge Graph Embedding by Translating on Hyperplanes. Wang et al. Proceedings of AAAI, 2014.
[4] Learning Entity and Relation Embeddings for Knowledge Graph Completion. Lin et al. Proceedings of AAAI, 2015.
[5] Knowledge Graph Embedding via Dynamic Mapping Matrix. Ji et al. Proceedings of ACL 2015.
[6] Embedding Entities and Relations for Learning and Inference in Knowledge Bases. Yang et al. Proceedings of ICLR 2015.
[7] Holographic Embeddings of Knowledge Graphs. Nickel et al. Proceedings of AAAI 2016.
[8] Knowledge Graph Completion with Adaptive Sparse Transfer Matrix. Ji et al. Proceedings of AAAI 2016.
[9] Complex Embeddings for Simple Link Prediction. Trouillon et al. Proceedings of ICML 2016.
[10] Rotate: Knowledge Graph Embedding by Relational Rotation in Complex Space. Sun et al. Proceedings of ICLR 2018.
[11] Simple Embedding for Link Prediction in Knowledge Graphs. Kazemi et al. Proceedings of NIPS 2018.
OpenKE:知识图谱表示学习工具包