【资源说明】
基于链接实体回放的多源知识图谱终身表示学习python源码+项目操作说明.zip
>知识图谱存储大量的结构化知识和丰富的语义信息,已被广泛应用于知识驱动的智能软件.随着智能应用的不断发展,它们对知识图谱的需求也在发生变化.而单一知识图谱往往具有数据不完备等缺点,难以满足需求.因此,支持新数据来源、融合多源知识已经成为迫切需求.传统的知识图谱表示学习和应用范式只考虑单一图谱,忽视了不同图谱间的知识迁移.多源知识图谱联合训练虽然可以带来性能提升,但不支持新增知识图谱的拓展表示.鉴于此,提出了多源知识图谱终身表示学习的新范式.给定一个知识图谱序列,终身表示学习的目标是在学习新知识图谱的同时,从已学习的知识图谱与模型中获得知识迁移.为实现这一目标,提出了一个基于链接实体回放的多源知识图谱终身表示学习框架.首先,设计一个以Transformer为编码器的知识图谱表示学习模型作为框架核心,利用关系相关性进行实体的链接预测.其次,提出链接子图构造方法,基于实体对齐构建并回放新增知识图谱和已有知识图谱之间的链接子图进行终身学习和知识迁移.最后,采用动态结构方法,为每个知识图谱存储相应的模型参数快照来避免灾难性遗忘.多个链接预测基准数据集上的实验结果表明,所提出的表示学习模型可以取得最先进的性能,且提出的终身表示学习框架可以实现有效的知识迁移.
传统知识图谱表示学习与应用范式如图1(a)所示,随着任务不断到来,其根据不同任务需求选择不同知识图谱训练表示学习模型.在这一范式中,不同知识图谱的训练相互独立,没有利用知识图谱之间的互补性.近期的相关研究表明,通过实体对齐进行多源知识图谱联合训练,如图1(b)所示,可有效学到更具表达力的知识图谱向量表示,进而提高下游任务性能.但是联合训练不适用于任务不断更新和迭代的应用场景,会造成知识图谱的重复训练,导致资源浪费,且时间空间开销大.为了解决这些问题,本文提出多源知识图谱终身表示学习的范式.如图1(c)所示,随着任务不断迭代,不同的知识图谱也逐渐加入,终身表示学习(lifelong representation learning)的目标是在进行新知识图谱学习的同时,复用从先前知识图谱中学习到的语义信息,促进知识迁移,从而提高当前任务的效果.
方法
多源知识图谱终身表示学习存在以下难点:其一,如何设计高效可迁移的知识图谱表示学习模型,这是终身表示学习模型高性能的基础;其二,如何将已学习的知识迁移到新增知识图谱的表示模型中,这是在持续新增知识图谱序列上实现终身表示学习的关键,现有的独立训练和联合训练方法都无法做到这一点;其三,如何在终身学习的同时防止参数覆盖,避免灾难性遗忘.针对上述三个挑战,本文提出了一种结合链接实体回放与动态结构的终身表示学习框架LifeKE.具体来说LifeKE主要包含三项技术:一个基于关系相关性聚合信息的Transformer编码器,一种基于链接子图筛选与回放的高效知识迁移方法,和一个基于动态结构的模型扩展方式.复杂度分析与实验结果表明,LifeKE不仅在单KG上具有较强的表示学习能力,而且在新增的知识图谱序列上能够高效复用已学习知识指导新模型学习,同时能够以很低的参数成本保留已学习的知识.
代码依赖
基于Python 3.6和TensorFlow 1.15实现本文提出的框架.代码依赖如下:
* Python 3.x (tested on Python 3.6)
* Tensorflow 1.x (tested on Tensorflow 1.14 and 1.15)
* Scipy
* Numpy
* Pandas
* Scikit-learn
### 运行
如想在FB15K-237上运行所提出的表示模型,请执行:
```bash
python lp_main.py --data_path ../dataset/fb15k-237/
```
lp_main.py里面提供了FB15K-237的默认参数
【备注】
1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!
2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。
3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。
欢迎下载,沟通交流,互相学习,共同进步!