项目简介
本项目是基于深度学习的实体链接预测系统,目标是从知识图谱中预测尾实体。系统结合卷积神经网络(CNN)和图神经网络(GNN)等多种模型,支持多种实体和关系嵌入方式,可用于关系抽取、知识图谱补全等场景。
项目的主要特性和功能
- 模型多样性:支持Linear、LAN、GCN、GAT、R_GCN、GraphSAGE等多种实体和关系嵌入模型。
- 数据处理:能对数据集进行预处理,自动生成训练集、测试集和验证集。
- 训练与评估:支持模型训练和评估,提供Mean Rank、MRR和Hit等详细性能指标。
- 参数配置:参数配置灵活,支持学习率、批处理大小、早停机制等多种训练参数。
安装使用步骤
1. 安装依赖
在conda环境中,按照项目根目录下的requirements.txt
文件安装所有依赖包:
bash
conda install --file requirements.txt
2. 安装中文版本的Elmo环境
解压ELMoForManyLangs.rar
文件,在conda环境中执行以下命令安装Elmo软件:
bash
python setup.py install
在Elmo文件夹下放置对应语言的语言包,中文语言包可从以下链接下载:
http://39.96.43.154/zhs.model.tar.bz2
3. 放置Glove文件
将wiki.zh.glove.300d.txt
文件放置到指定路径。
4. 数据集准备
在data
文件夹下建立数据集对应的文件夹,按固定格式导入名为dataset.txt
的文件,同时新建Model
和Predict
文件夹。
5. 数据集预处理
执行dataset.py
文件,生成测试集、训练集、验证集、实体和关系文件,在logs/Dataset
文件夹中查看日志信息。
6. 模型训练
执行main.py
文件进行模型训练,默认使用RGCN作为实体嵌入模型,训练日志信息可在logs/Model
文件夹中查看。
7. 模型评估
在logs/Model
文件夹中查看最新的日志信息,评估模型的性能指标如Mean Rank、MRR和Hit。
8. 预测尾实体
将predict.txt
文件导入到Data/Predict
路径中,执行test.py
文件进行尾实体预测,结果文件将自动生成。
相关参数说明
- CN:实体嵌入模型,默认RGCN,支持'Linear', 'GCN', 'LAN', 'RGCN', 'GAT'。
- dataset:数据集,默认 'Cockpit'。
- num_layers:GRU层的数量,默认 1。
- nheads:多头注意力的数量,默认 3。
- bidirectional:GRU是单向还是双向,默认 True。
- relPoolType:关系embedding的最终获取方式,默认'last',支持'last', 'max', 'mean'。
- entPoolType:实体embedding的初始化方式,默认'mean',支持'max', 'mean'。
- lr:学习率,默认0.001。
- batch_size:batch的大小,默认1024。
- n_epochs:训练集的训练次数,默认 500。
- eval_epoch:当训练集的训练次数是eval_epoch的倍数时,执行验证集,默认5。
- Hits:默认[10, 30, 50]。
- early_stop:早停,默认 10。
- use_glove:是否用glove初始化字Embedding,默认为True。False时表示使用Elmo模型初始化Embedding。
- n_bases:R-GCN时控制基分解的个数,默认 4。
- predict_num:推测尾实体时,输出尾实体的数目,默认为10。
- hidden_dim:隐藏节点的维数,默认为[300,300]。
- num_neighbors:各层进行采样(放回式采样)的个数,默认为[10,10]。
常用命令
- 执行训练模型:
bash python main.py –CN=RGCN
- 设置GAT中多头注意力:
bash python main.py –CN=GAT –nheads=2
- 设置RGCN中基分解的个数:
bash python main.py -CN=RGCN -n_bases=3
- 设置batch的大小:
bash python main.py -batch_size=512
- 设置GRU模型为单向:
bash python main.py -bidirectional=False
- 采用ELMO模型获取词向量:
bash python main.py -use_glove=False
- 设置GraphSAGE中,各阶的采样个数:
bash python main.py -CN=GraphSAGE -num_neighbors=[5,10]
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】