ConvE,知识图谱嵌入(KGE)论文复现(Ubuntu 20.04)
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)相关推荐
- 知识图谱嵌入(KGE)主流模型简介
1. KGE简介 目前(2020.03)知识图谱嵌入研究方法众多,本文将对其中的主流方法进行简要介绍,如翻译.双线性.神经网络.双曲几何.旋转等.各方法细节请看原论文,文中错误欢迎指出,谢谢. 知识图 ...
- 技术动态 | 「知识图谱嵌入技术研究」最新2022综述
转载公众号 | 专知 知识图谱(KG)是一种用图模型来描述知识和建模事物之间关联关系的技术. 知识图谱嵌入(KGE)作为一 种被广泛采用的知识表示方法,其主要思想是将知识图谱中的实体和关系嵌入到连续的 ...
- 针对知识图谱嵌入(KGE)的投毒攻击【论文阅读】
目录 前言 一.知识图谱嵌入对抗攻击研究意义 二.关于KGE的对抗攻击的研究难点和突破 三.投毒攻击的设计 ① 直接攻击 ② 间接攻击 四.实验设置和实验结果 总结 前言 在著名的知识图谱数据集Fre ...
- 论文浅尝 - ICLR2020 | You Can Teach an Old Dog New Tricks!关于训练知识图谱嵌入
论文笔记整理:谭亦鸣,东南大学博士生. 来源:ICLR2020 链接:https://openreview.net/pdf?id=BkxSmlBFvr KG embedding(KGE)模型的目标是学 ...
- TransE,知识图谱嵌入(KGE)源码阅读(一)
TransE,知识图谱嵌入(KGE)源码阅读(一) Paper: Antoine Bordes等人在2013年发表于NIPS上的文章 Paper Understanding:TransE,知识图谱嵌入 ...
- 知识图谱顶会论文(SIGIR-2022) MorsE:归纳知识图嵌入的元知识迁移
MorsE:归纳知识图嵌入的元知识迁移 论文题目: Meta-Knowledge Transfer for Inductive Knowledge Graph Embedding 论文地址: http ...
- 论文浅尝 | PairRE: 通过成对的关系向量实现知识图谱嵌入
笔记整理:黎洲波,浙江大学硕士,研究方向为自然语言处理.知识图谱. 研究背景 知识图谱因其在问答.语义解析和命名实体消歧等任务取得了良好的效果而受到广泛关注,而大部分知识图谱都存在不全和缺失实体链接的 ...
- 论文浅尝 - ACL2020 | 用于链接预测的开放知识图谱嵌入
本文转载自公众号:PaperWeekly. 作者:舒意恒,南京大学硕士,研究方向:知识图谱. 当前大量的知识图谱都是通过文本直接构建的.由于当前的知识图谱构建方法的局限性,其中难免包含对同一实体或关系 ...
- 论文浅尝 | 区分概念和实例的知识图谱嵌入方法
链接:https://arxiv.org/pdf/1811.04588.pdf 知识图谱的表示学习最近几年被广泛研究,表示学习的结果对知识图谱补全和信息抽取都有很大帮助.本文提出了一种新的区分概念和实 ...
最新文章
- 多节点CDN缓存加速系统wdcdn2.4版本发布(20111213)
- 基于空间数据库MongoDB实现全国电影票预定系统
- TCP状态中 time_wait 的作用?
- 做好的html 保存不了,有些网页不能保存,或者保存后没有内容,怎么办?
- 25 个 Java 机器学习工具和库
- java的equals方法_Java Vector equals()方法与示例
- 习题1083字符转换
- SpringBoot和SpringCloud面试题
- (转)SpringMVC学习(七)——Controller类的方法返回值
- php ci框架结构,CI框架目录结构分析
- Android 一篇文章轻松搞懂什么是Callback回调
- 大学英语B---词汇与语法
- 【合天网安】Burpsuite简介及MIME上传绕过实例
- 使用python3+pyqt5实现图片识别文字工具
- C/C++ libcurl CURLOPT_NOSIGNAL选项
- 网络可视对讲系统服务器解决方案,医护可视对讲系统(IP网络)解决方案
- 【数学】-1的根号二次方等于多少?
- (iOS)仿App第一步:获取App素材
- 干货|TTL电路详细讲解,工作原理+电路图,图文结合,轻松搞定
- c语言编程显示未定义的引用,c – 链接时奇怪的未定义引用
热门文章
- vue3运行npm run serve报错ERROR Error: Cannot find module ‘babel-plugin-import‘ Require stack:
- Android Framework 记录之一
- SVN(subversion )服务端和客户端的下载安装使用
- 2021-09-13 多组EQ切换
- 2020.04.08【NOIP普及组】模拟赛C组24 总结
- Linux/Android之perf追内存泄漏工具(api级别)(一百)
- git clone失败:Cloning into... fatal: unable to access... error setting certificate verify locations
- android 计步器 计算当前的行走步数
- 群体智能的未来趋势:网络安全领域、网络安全相关领域及其拓展
- 不必担心安卓系统被植入棱镜
1. KGE简介 目前(2020.03)知识图谱嵌入研究方法众多,本文将对其中的主流方法进行简要介绍,如翻译.双线性.神经网络.双曲几何.旋转等.各方法细节请看原论文,文中错误欢迎指出,谢谢. 知识图 ...
转载公众号 | 专知 知识图谱(KG)是一种用图模型来描述知识和建模事物之间关联关系的技术. 知识图谱嵌入(KGE)作为一 种被广泛采用的知识表示方法,其主要思想是将知识图谱中的实体和关系嵌入到连续的 ...
目录 前言 一.知识图谱嵌入对抗攻击研究意义 二.关于KGE的对抗攻击的研究难点和突破 三.投毒攻击的设计 ① 直接攻击 ② 间接攻击 四.实验设置和实验结果 总结 前言 在著名的知识图谱数据集Fre ...
论文笔记整理:谭亦鸣,东南大学博士生. 来源:ICLR2020 链接:https://openreview.net/pdf?id=BkxSmlBFvr KG embedding(KGE)模型的目标是学 ...
TransE,知识图谱嵌入(KGE)源码阅读(一) Paper: Antoine Bordes等人在2013年发表于NIPS上的文章 Paper Understanding:TransE,知识图谱嵌入 ...
MorsE:归纳知识图嵌入的元知识迁移 论文题目: Meta-Knowledge Transfer for Inductive Knowledge Graph Embedding 论文地址: http ...
笔记整理:黎洲波,浙江大学硕士,研究方向为自然语言处理.知识图谱. 研究背景 知识图谱因其在问答.语义解析和命名实体消歧等任务取得了良好的效果而受到广泛关注,而大部分知识图谱都存在不全和缺失实体链接的 ...
本文转载自公众号:PaperWeekly. 作者:舒意恒,南京大学硕士,研究方向:知识图谱. 当前大量的知识图谱都是通过文本直接构建的.由于当前的知识图谱构建方法的局限性,其中难免包含对同一实体或关系 ...
链接:https://arxiv.org/pdf/1811.04588.pdf 知识图谱的表示学习最近几年被广泛研究,表示学习的结果对知识图谱补全和信息抽取都有很大帮助.本文提出了一种新的区分概念和实 ...