前言: 之前踩了VM中ubuntu不能使用Nvidia驱动的坑,于是我在安装好Windows+Ubuntu双系统,并在Ubuntu 20.04子系统中配置好深度学习环境后,终于得以成功使用OpenKE对KGE模型进行复现,本篇主要是关于Rescal模型和Dismult模型的实现,如下是我实验的环境,论文原文,我对论文的理解和OpenKE的GitHub地址
Environment: 联想R7000P,Ubuntu 20.04(子系统),Pytorch,cuda 11.5,cuDNN,OpenKE
Paper: Rescal 模型 和 Dismult 模型
Paper Understanding:Rescal 和 Dismult,知识图谱嵌入(KGE)论文阅读
Download from Github:
git clone -b OpenKE-PyTorch https://github.com/thunlp/OpenKE
说明: git clone -b OpenKE-PyTorch https://github.com/thunlp/OpenKE命令如果执行出错,可以参考OpenKE 的初步探索(VM 中的 Ubuntu 踩坑)的准备工作:VM 中 Ubuntu 20.04 系统 git 的配置及与 github 的连接部分,虽然是在VM中Ubuntu系统中的配置,但是原理和操作都是一样的
OpenKE中各种模型的统一评价指标: KGE性能指标:MRR,MR,HITS@1,HITS@3,HITS@10
Rescal 数据集:FB15K237
手动复制examples文件夹中的train_rescal_FB15K237.py到OpenKE目录下,并在此处打开终端
使用的命令如下:
python train_rescal_FB15K237.py
历经1000个epoch,得到结果,效果和预期差距比较大
Dismult 数据集:WN18RR_adv
手动复制examples文件夹中的train_distmult_WN18RR_adv.py到OpenKE目录下,并在此处打开终端
使用的命令如下:
python train_distmult_WN18RR_adv.py
历经400个epoch,得到结果
数据集:WN18RR
手动复制examples文件夹中的train_distmult_WN18RR.py到OpenKE目录下,并在此处打开终端
使用的命令如下:
python train_distmult_WN18RR.py
历经2000个epoch,得到结果
论文中,双线性模型(Bilinear)和关系矩阵限制为对角矩阵的双线性模型(Dismult)在FB15k,FB15k-401和WN数据集上的表现如下



