five

Ablated Datasets 和 Semi-Synthetic dataset

收藏
github2024-07-19 更新2024-07-22 收录
下载链接:
https://github.com/moritzblum/LiteralEvaluation
下载链接
链接失效反馈
官方服务:
资源简介:
我们提出了消融数据集来测试模型在某些文字信息或关系信息从数据集中移除时的性能,以评估文字信息的重要性。消融数据集是从现有的包含文字的链接预测数据集创建的。我们还提出了半合成数据集来测试模型在需要理解实体的文字值以做出正确预测时的性能。

We propose an ablation dataset to evaluate the importance of textual information by testing model performance when certain textual or relational information is removed from the dataset. This ablation dataset is constructed from existing text-containing link prediction datasets. We also propose a semi-synthetic dataset to test model performance when the model needs to comprehend the textual values of entities to generate correct predictions.
创建时间:
2024-07-19
原始信息汇总

数据集概述

本仓库包含以下资源,用于论文《Numerical Literals in Link Prediction: A Critical Examination of Models and Datasets》:

  • 源代码:用于创建提出的数据集,包括Ablated数据集和Semi-Synthetic数据集。(/preprocessing_literalevaluation)
  • 评估命令和设置:用于在数据集上评估所调查模型的命令和设置。(/slurm)
  • 训练日志:我们在实验期间获得的训练日志。(/data/results & /data/saved_models)
  • Jupyter Notebooks:我们用于基于训练日志创建论文中的可视化和表格的Jupyter Notebooks。(/evaluation_notebooks)

创建数据集

Ablated数据集

我们提出Ablated数据集,以测试模型在移除某些文字信息或关系信息后的性能,评估文字信息的重要性。Ablated数据集是从现有的包含文字的链接预测数据集中创建的。所有消融策略在论文中都有描述。

创建Ablated数据集的命令如下: shell python preprocessing_literalevaluation/get_literalevaluation_dataset.py --dataset {FB15k-237, YAGO3-10, LitWD48K} --features {org, rand, attribute} --literal_replacement_mode {sparse, full} --relation_ablation {0..10} --max_num_attributive_relations {1..} --data_dir {data path} --run_id {run id}

例如,创建FB15k-237的Ablated数据集,其中每个实体随机分配所有属性,并且20%的关系三元组被消融,运行以下命令: shell python preprocessing_literalevaluation/get_literalevaluation_dataset.py --dataset FB15k-237 --features "rand" --literal_replacement_mode "full" --relation_ablation 20 --data_dir "data"

新数据集将存储为data/FB15k-237_rand_rel-20_full

Semi-Synthetic数据集

我们提出Semi-Synthetic数据集,以测试模型在需要理解实体的文字值才能做出正确预测时的性能。我们用于评估的Synthetic数据集是从FB15k-237数据集生成的。

我们提供了Synthetic数据集在data目录中。

如果要重新创建Synthetic数据集,或创建另一个数据集的Semi-Synthetic版本,可以使用以下脚本: shell python preprocessing_literalevaluation/get_synthetic_dataset.py --dataset_name {new semi-synthetic dataset name} --dataset {FB15k-237, YAGO3-10, LitWD48K} --class_mapping_file {class mapping file} --relevant_class_label {relevant class label}

例如,基于FB15k-237数据集创建Semi-Synthetic数据集Synthetic,运行以下命令: shell python preprocessing_literalevaluation/get_synthetic_dataset.py --dataset_name Synthetic --dataset "FB15k-237" --class_mapping_file "data/FB15k-237/FB15k-237_class_mapping.csv" --relevant_class_label "human"

重新创建评估

LiteralE

设置literale conda环境并评估数据集的步骤如下: shell conda create --name literale python=3.6.13 pip install -r requirements-literale.txt conda activate literale git clone git@github.com:SmartDataAnalytics/LiteralE.git cd LiteralE

将数据集放置在data目录中并预处理数据集以进行评估。使用占位符[eval-datadet]表示数据集。

  1. mkdir saved_models
  2. python wrangle_KG.py [eval-datadet]
  3. python preprocess_kg.py --dataset [eval-datadet]
  4. 连续运行以下命令预处理属性数据:
    1. 创建词汇文件:python main_literal.py dataset [eval-datadet] epochs 0 process True
    2. 数值文字:python preprocess_num_lit.py --dataset [eval-datadet]

然后可以训练模型: shell python main_literal.py dataset [eval-datadet] model {DistMult, ComplEx} input_drop 0.2 embedding_dim 100 batch_size 128 epochs 100 lr 0.001 process True

TransEA

设置transea conda环境并训练模型的步骤如下: shell conda create --name transea python=3.10 pip install -r requirements-transea.txt conda activate transea

然后可以训练模型: shell python transea/main_transea.py --model transea --dataset [eval-datadet] --alpha 0.3 --lr 0.001 --hidden 100 --saved_models_path="./saved_models"

KGA

设置kga conda环境并应用文字变换和训练模型的步骤如下: shell conda create --name kga python=3.8 conda activate kga pip install torch pip install numpy pip install pandas git clone git@github.com:Otamio/KGA.git cd KGA

然后可以应用文字变换并训练模型: shell python augment_lp.py --mode "Quantile_Hierarchy" --bins 32 --dataset [eval-datadet] python run.py --dataset [eval-datadet]_QHC_5 --model {distmult, tucker}

重现实验

slurm目录中的脚本包含重现实验的命令。在slurm集群上运行以下脚本:

  • ./slurm/slurm_FB15k-237.sh (LiteralE)
  • ./slurm/slurm_LitWD48K.sh (LiteralE)
  • ./slurm/slurm_YAGO3-10.sh (LiteralE)
  • ./slurm/slurm_Synthetic.sh (LiteralE)
  • ./slurm/slurm_TransEA.sh (TransEA)
  • ./slurm/slurm_KGA.sh (KGA)

可视化结果

可以使用evaluation_notebooks目录中的Jupyter Notebooks可视化结果:

  • evaluation_notebooks/evaluate_ablations.ipynb - 绘制结果并创建所有消融实验的Latex表格。
  • evaluation_notebooks/evaluate_synthetic.ipynb - 实现Acc指标,绘制结果并创建Semi-Synthetic数据集实验的Latex表格。

引用

如果您在工作中使用了我们的评估数据集,请引用我们的论文: plaintext @inproceedings{mblum-etal-2024-literalevaluation, title = "Numerical Literals in Link Prediction: A Critical Examination of Models and Datasets", author = "Blum, Moritz and Ell, Basil and Ill, Hannes and Cimiano, Philipp", booktitle = "Proceedings of the 23rd International Semantic Web Conference (ISWC 2024)", month = November, year = "2024" }

搜集汇总
数据集介绍
main_image_url
构建方式
在链接预测领域,Ablated Datasets和Semi-Synthetic dataset的构建旨在深入探讨模型对数值文字信息的依赖性。Ablated Datasets通过对现有包含文字信息的链接预测数据集进行特定文字信息或关系信息的移除,评估模型在缺失这些信息时的表现。具体构建方法包括选择特定数据集(如FB15k-237、YAGO3-10、LitWD48K),定义文字替换模式(如随机、属性),以及关系移除比例。Semi-Synthetic dataset则通过生成半合成数据集,测试模型在需要理解实体文字值以做出正确预测时的性能。该数据集基于FB15k-237生成,用户可通过指定数据集名称、类映射文件和相关类标签来重新生成或创建新的半合成数据集。
特点
Ablated Datasets和Semi-Synthetic dataset的主要特点在于其设计目的的针对性。Ablated Datasets通过系统性地移除或替换数据集中的文字信息,提供了对模型在不同信息缺失情况下的鲁棒性评估。这种设计有助于识别模型对特定类型信息的依赖程度。Semi-Synthetic dataset则通过引入半合成数据,强调了模型在理解和利用实体文字值方面的能力,从而填补了现有数据集在评估模型对数值文字理解能力方面的空白。两者共同为链接预测模型的全面评估提供了新的视角和工具。
使用方法
使用Ablated Datasets和Semi-Synthetic dataset进行模型评估时,首先需根据提供的脚本创建数据集。对于Ablated Datasets,用户需指定数据集名称、特征类型、文字替换模式和关系移除比例等参数。对于Semi-Synthetic dataset,用户需提供数据集名称、基础数据集、类映射文件和相关类标签。创建数据集后,用户可使用提供的conda环境设置和训练脚本,对模型进行训练和评估。具体步骤包括设置环境、预处理数据、训练模型,并通过Jupyter Notebooks可视化评估结果。此外,用户还可通过运行slurm目录下的脚本,在集群环境中重现所有实验。
背景与挑战
背景概述
在知识图谱研究领域,链接预测是一个核心问题,旨在预测实体间缺失的关系。Ablated Datasets和Semi-Synthetic dataset的创建,源于对模型在处理数值文字信息时性能的深入探究。这些数据集由Moritz Blum、Basil Ell、Hannes Ill和Philipp Cimiano等研究人员于2024年提出,主要用于评估模型在缺失或合成数值文字信息情况下的表现。通过这些数据集,研究者们能够更精确地分析模型对数值文字信息的依赖程度,从而推动知识图谱领域的进一步发展。
当前挑战
Ablated Datasets和Semi-Synthetic dataset在构建过程中面临多项挑战。首先,如何设计有效的数据集以准确评估模型在缺失或合成数值文字信息时的性能,是一个复杂的问题。其次,数据集的生成需要对现有数据进行精细的修改和处理,确保数据的完整性和一致性。此外,评估这些数据集时,需要考虑模型在不同数据集上的泛化能力,以及如何量化和解释这些性能差异。这些挑战不仅涉及技术层面的实现,还需深入理解数值文字信息在链接预测中的作用。
常用场景
经典使用场景
在链接预测领域,Ablated Datasets和Semi-Synthetic dataset被广泛用于评估模型在不同数据条件下的性能。Ablated Datasets通过移除或替换数据集中的数值文字信息或关系信息,来测试模型在缺失特定信息时的表现。Semi-Synthetic dataset则通过生成半合成数据,测试模型在需要理解实体数值文字信息以进行正确预测时的性能。这些数据集的经典使用场景包括模型鲁棒性测试、特征重要性分析以及模型在不同数据条件下的适应性评估。
实际应用
在实际应用中,这些数据集被用于开发和验证新的链接预测算法和模型。例如,在知识图谱补全任务中,通过使用Ablated Datasets,可以评估算法在缺失特定类型信息时的表现,从而优化算法的鲁棒性和适用性。Semi-Synthetic dataset则被用于测试算法在需要数值文字信息进行推理时的性能,确保算法在实际应用中的有效性和可靠性。这些数据集的应用场景涵盖了从学术研究到工业应用的多个领域。
衍生相关工作
基于这些数据集,研究者们开发了多种新的链接预测模型和算法。例如,通过分析Ablated Datasets的结果,研究者们提出了改进的特征选择和模型训练方法,以提高模型在缺失信息情况下的性能。Semi-Synthetic dataset则激发了新的模型设计思路,如结合数值文字信息的推理模型和增强学习方法。这些衍生工作不仅丰富了链接预测领域的研究内容,也为实际应用提供了更多有效的解决方案。
以上内容由遇见数据集搜集并总结生成
5,000+
优质数据集
54 个
任务类型
进入经典数据集
二维码
社区交流群

面向社区/商业的数据集话题

二维码
科研交流群

面向高校/科研机构的开源数据集话题

数据驱动未来

携手共赢发展

商业合作