ConvE,知识图谱嵌入(KGE)论文复现(Ubuntu 20.04)


Paper:Convolutional 2D Knowledge Graph Embeddings


准备工作

GitHub地址,打开如下,下拉按照说明来复现模型

克隆项目到本地

git clone git@github.com:TimDettmers/ConvE.git


操作步骤

一. 安装与配置

1. Install PyTorch using Anaconda.

参照我的两篇博文:

1. WIN 11 安装 Ubuntu 20.04 (双系统)(2022.02.28)
2. Ubuntu 20.04 系统下(子系统)深度学习环境配置(Pytorch + GPU)

对于anaconda的安装,可以参考如下博文中安装anaconda3环境变量部分的内容,其他不要多看,因为我的环境是双系统下的Ubuntu系统,而不是在虚拟机中进行的:

VMware 中 Ubuntu 20.04 安装 和 Pytorch 1.10.2 环境配置(2022.02.10)


2. Install the requirements pip install -r requirements.txt

执行以下命令:

cd ConvE
pip install -r requirements.txt

出现错误,执行以下命令,大家根据自己情况而定:

pip install --upgrade pip
pip install PyHamcrest
pip install --upgrade pip


再转头来执行命令:pip install -r requirements.txt,显示安装成功,图太长,截最后一部分:


3. Download the default English model used by spaCy, which is installed in the previous step python -m spacy download en_core_web_sm

首先,手动下载需要的语言模型:点击进入,如下图所示,点击 tag
使用 next 翻页找到 en_core_web_sm-3.2.0 这个包,点进去:
选择 en_core_web_sm-3.2.0.tar.gz 下载:

下载后,执行命令:pip install en_core_web_sm-3.2.0.tar.gz,如下图所示


然后,对应下载合适的 spacy 版本, 我安装的是3.2.0版本,在自己的 conda 虚拟环境中执行命令(我默认的清华源安装,其他的应该也可以):

pip install spacy==3.2.0


4. Run the preprocessing script for WN18RR, FB15k-237, YAGO3-10, UMLS, Kinship, and Nations: sh preprocess.sh

执行以下命令:

cd ConvE
sh preprocess.sh


二. 在 FB15k-237 数据集上跑 ConvE 模型

执行以下命令:

CUDA_VISIBLE_DEVICES=0 python main.py --model conve --data FB15k-237 \--input-drop 0.2 --hidden-drop 0.3 --feat-drop 0.2 \--lr 0.003 --preprocess

报错:
原因:

Spacy V3.0 开始,该导入模块的方式已被弃用,因此要使用 spacy 模型,需要更改代码

解决:

import spacy 替换为 from spacy.lang.en import English
nlp=spacy.load('en') 替换为 nlp = English()


再次执行以下命令,成功:

CUDA_VISIBLE_DEVICES=0 python main.py --model conve --data FB15k-237 \--input-drop 0.2 --hidden-drop 0.3 --feat-drop 0.2 \--lr 0.003 --preprocess

中间部分过程,截图如下:
历经最少 12 小时吧,结果如下:


三. 在其它数据集上跑 ConvE 及其它两个模型

CUDA_VISIBLE_DEVICES=0 python main.py --model conve --data FB15k-237 \--input-drop 0.2 --hidden-drop 0.3 --feat-drop 0.2 \--lr 0.003 --preprocess

改变 --data 后的 FB15k-237 为下列数据集的任何一个:

WN18RR
YAGO3-10
umls
kinship
nations

改变 --model 后的 convE 为下列数据集的任何一个:

distmult
complex

四. 参数使用和注意事项

关于知识图谱的链接预测任务,在训练时的可选参数及含义:

 -h, --help            show this help message and exit--batch-size BATCH_SIZEinput batch size for training (default: 128)--test-batch-size TEST_BATCH_SIZEinput batch size for testing/validation (default: 128)--epochs EPOCHS       number of epochs to train (default: 1000)--lr LR               learning rate (default: 0.003)--seed S              random seed (default: 17)--log-interval LOG_INTERVALhow many batches to wait before logging trainingstatus--data DATA           Dataset to use: {FB15k-237, YAGO3-10, WN18RR, umls,nations, kinship}, default: FB15k-237--l2 L2               Weight decay value to use in the optimizer. Default:0.0--model MODEL         Choose from: {conve, distmult, complex}--embedding-dim EMBEDDING_DIMThe embedding dimension (1D). Default: 200--embedding-shape1 EMBEDDING_SHAPE1The first dimension of the reshaped 2D embedding. Thesecond dimension is infered. Default: 20--hidden-drop HIDDEN_DROPDropout for the hidden layer. Default: 0.3.--input-drop INPUT_DROPDropout for the input embeddings. Default: 0.2.--feat-drop FEAT_DROPDropout for the convolutional features. Default: 0.2.--lr-decay LR_DECAY   Decay the learning rate by this factor every epoch.Default: 0.995--loader-threads LOADER_THREADSHow many loader threads to use for the batch loaders.Default: 4--preprocess          Preprocess the dataset. Needs to be executed onlyonce. Default: 4--resume              Resume a model.--use-bias            Use a bias in the convolutional layer. Default: True--label-smoothing LABEL_SMOOTHINGLabel smoothing value to use. Default: 0.1--hidden-size HIDDEN_SIZEThe side of the hidden layer. The required sizechanges with the size of the embeddings. Default: 9728(embedding size 200).

注意事项:--preprocess 只执行一次就可以了。例如,第二步的命令执行时,已经带上了这个参数,以后的训练就不必再添加这个参数了:

--preprocess          Preprocess the dataset. Needs to be executed onlyonce. Default: 4

五. 关于论文复现

执行下列命令,选择数据集替换 DATASET_NAME,其余使用默认值,可还原论文:

CUDA_VISIBLE_DEVICES=0 python main.py --data DATASET_NAME

六. 论文复现中还可能遇到的问题

ConvE,知识图谱嵌入(KGE)论文复现(Ubuntu 20.04)相关推荐

  1. 知识图谱嵌入(KGE)主流模型简介

    1. KGE简介 目前(2020.03)知识图谱嵌入研究方法众多,本文将对其中的主流方法进行简要介绍,如翻译.双线性.神经网络.双曲几何.旋转等.各方法细节请看原论文,文中错误欢迎指出,谢谢. 知识图 ...

  2. 技术动态 | 「知识图谱嵌入技术研究」最新2022综述

    转载公众号 | 专知 知识图谱(KG)是一种用图模型来描述知识和建模事物之间关联关系的技术. 知识图谱嵌入(KGE)作为一 种被广泛采用的知识表示方法,其主要思想是将知识图谱中的实体和关系嵌入到连续的 ...

  3. 针对知识图谱嵌入(KGE)的投毒攻击【论文阅读】

    目录 前言 一.知识图谱嵌入对抗攻击研究意义 二.关于KGE的对抗攻击的研究难点和突破 三.投毒攻击的设计 ① 直接攻击 ② 间接攻击 四.实验设置和实验结果 总结 前言 在著名的知识图谱数据集Fre ...

  4. 论文浅尝 - ICLR2020 | You Can Teach an Old Dog New Tricks!关于训练知识图谱嵌入

    论文笔记整理:谭亦鸣,东南大学博士生. 来源:ICLR2020 链接:https://openreview.net/pdf?id=BkxSmlBFvr KG embedding(KGE)模型的目标是学 ...

  5. TransE,知识图谱嵌入(KGE)源码阅读(一)

    TransE,知识图谱嵌入(KGE)源码阅读(一) Paper: Antoine Bordes等人在2013年发表于NIPS上的文章 Paper Understanding:TransE,知识图谱嵌入 ...

  6. 知识图谱顶会论文(SIGIR-2022) MorsE:归纳知识图嵌入的元知识迁移

    MorsE:归纳知识图嵌入的元知识迁移 论文题目: Meta-Knowledge Transfer for Inductive Knowledge Graph Embedding 论文地址: http ...

  7. 论文浅尝 | PairRE: 通过成对的关系向量实现知识图谱嵌入

    笔记整理:黎洲波,浙江大学硕士,研究方向为自然语言处理.知识图谱. 研究背景 知识图谱因其在问答.语义解析和命名实体消歧等任务取得了良好的效果而受到广泛关注,而大部分知识图谱都存在不全和缺失实体链接的 ...

  8. 论文浅尝 - ACL2020 | 用于链接预测的开放知识图谱嵌入

    本文转载自公众号:PaperWeekly. 作者:舒意恒,南京大学硕士,研究方向:知识图谱. 当前大量的知识图谱都是通过文本直接构建的.由于当前的知识图谱构建方法的局限性,其中难免包含对同一实体或关系 ...

  9. 论文浅尝 | 区分概念和实例的知识图谱嵌入方法

    链接:https://arxiv.org/pdf/1811.04588.pdf 知识图谱的表示学习最近几年被广泛研究,表示学习的结果对知识图谱补全和信息抽取都有很大帮助.本文提出了一种新的区分概念和实 ...

最新文章

  1. 多节点CDN缓存加速系统wdcdn2.4版本发布(20111213)
  2. 基于空间数据库MongoDB实现全国电影票预定系统
  3. TCP状态中 time_wait 的作用?
  4. 做好的html 保存不了,有些网页不能保存,或者保存后没有内容,怎么办?
  5. 25 个 Java 机器学习工具和库
  6. java的equals方法_Java Vector equals()方法与示例
  7. 习题1083字符转换
  8. SpringBoot和SpringCloud面试题
  9. (转)SpringMVC学习(七)——Controller类的方法返回值
  10. php ci框架结构,CI框架目录结构分析
  11. Android 一篇文章轻松搞懂什么是Callback回调
  12. 大学英语B---词汇与语法
  13. 【合天网安】Burpsuite简介及MIME上传绕过实例
  14. 使用python3+pyqt5实现图片识别文字工具
  15. C/C++ libcurl CURLOPT_NOSIGNAL选项
  16. 网络可视对讲系统服务器解决方案,医护可视对讲系统(IP网络)解决方案
  17. 【数学】-1的根号二次方等于多少?
  18. (iOS)仿App第一步:获取App素材
  19. 干货|TTL电路详细讲解,工作原理+电路图,图文结合,轻松搞定
  20. c语言编程显示未定义的引用,c – 链接时奇怪的未定义引用

热门文章

  1. vue3运行npm run serve报错ERROR Error: Cannot find module ‘babel-plugin-import‘ Require stack:
  2. Android Framework 记录之一
  3. SVN(subversion )服务端和客户端的下载安装使用
  4. 2021-09-13 多组EQ切换
  5. 2020.04.08【NOIP普及组】模拟赛C组24 总结
  6. Linux/Android之perf追内存泄漏工具(api级别)(一百)
  7. git clone失败:Cloning into... fatal: unable to access... error setting certificate verify locations
  8. android 计步器 计算当前的行走步数
  9. 群体智能的未来趋势:网络安全领域、网络安全相关领域及其拓展
  10. 不必担心安卓系统被植入棱镜