代码深度学习代写|DLS003 A Reinforcement Learning Method for Knowledge Graph Reasoning

主题:知识图谱+强化学习

背景:知识图谱(KG)已成为推荐系统和问答系统等重要应用程序结构化数据的最重要来源之一。先前的研究已经确定了传统的知识图谱推理算法,这些算法被证明存在缺陷。在这些情况下,强化学习(RL)促进了知识图谱推理的应用, DeepPath算法被视作强化学习应用于知识图谱推理的开山之作。

算法:DeepPath

中文版论文地址https://zhuanlan.zhihu.com/p/97825216, 源代码(tensoflow)地址GitHub – xwhan/DeepPath: code and docs for my EMNLP paper “DeepPath: A Reinforcement Learning Method for Knowledge Graph Reasoning”,pytorch代码地址 GitHub – adymaharana/DeepPath_PyTorch

数据集:NELL-995, FB15K-237 (因数据集过大,同学们可以只使用部分数据集,如40%-60%)

编程环境要求:pytorch

任务:现要求根据DeePath算法作出如下改进

已知DeepPath算法的知识推理过程是给定一对实体,可以通过双端BFS搜到很多条路径,每一条路径可以表示为:entity1-relation1-entitty2-relation2….,和文本表示的sequential data是一样的,可以作为transformer/LSTM模型的输入,经过其编码后形成带有前后连接路径信息量的向量表示。

法1:这个向量表示融到的策略网络中

法2:作reward的时候多一步,将已经经过的所有实体和关系的向量表示和候选的向量表示之间的cos相似度,这个作为新的reward。

请在以上方法中任选其一,并模仿原论文的实验结果,评估你改进后的DeepPath算法,探索两个标准的知识图谱推理任务:链接预测(预测目标实体)和事实预测(预测未知关系是否成立)。将该方法与基于路径的方法和基于嵌入的方法进行比较。之后,进一步分析 RL 智能体找到的推理路径。