DTGB
收藏DTGB: A Comprehensive Benchmark for Dynamic Text-Attributed Graphs
数据集
DTGB提供了八个动态文本属性图数据集,可以从这里下载。
数据格式
每个图数据集包含三个文件:
- edge_list.csv: 存储每条边的信息,格式为
(u, v, r, t, l),其中u是源实体的ID,v是目标实体的ID,r是关系的ID,t是边的发生时间戳,l是边的标签。 - entity_text.csv: 存储实体ID与实体文本描述的映射。
- relation_text.csv: 存储关系ID与关系文本描述的映射。
使用方法
- 下载数据集后,应将其解压缩到
DyLink_Datasets文件夹中。 - 运行
get_pretrained_embeddings.py获取基于Bert的节点和边文本嵌入,分别保存为e_feat.npy和r_feat.npy。 - 运行
get_LLM_data.ipynb获取文本关系生成任务的训练和测试集,分别保存为LLM_train.pkl和LLM_test.pkl。
结果复现
未来链接预测任务
-
在 GDELT 数据集上训练 DyGFormer 模型,不使用文本属性的示例: bash python train_link_prediction.py --dataset_name GDELT --model_name DyGFormer --patch_size 2 --max_input_sequence_length 64 --num_runs 5 --gpu 0 --use_feature no
-
在 GDELT 数据集上训练 DyGFormer 模型,使用文本属性的示例: bash python train_link_prediction.py --dataset_name GDELT --model_name DyGFormer --patch_size 2 --max_input_sequence_length 64 --num_runs 5 --gpu 0 --use_feature Bert
-
测试集的 AP 和 AUC-ROC 指标将自动保存到
saved_resuts/DyGFormer/GDELT/DyGFormer_seed0no.json。 -
最佳检查点将保存到
saved_resuts/DyGFormer/GDELT/文件夹中。
目标节点检索任务
在获得未来链接预测任务的最佳检查点后,可以通过运行以下命令复现目标节点检索任务的 Hits@k 指标: bash python evaluate_node_retrieval.py --dataset_name GDELT --model_name DyGFormer --patch_size 2 --max_input_sequence_length 64 --negative_sample_strategy random --num_runs 5 --gpu 0 --use_feature no
negative_sample_strategy参数控制候选采样策略,可以是random或historical。use_feature参数控制是否使用基于Bert的嵌入,可以是no或Bert。
边分类任务
-
在 GDELT 数据集上训练 DyGFormer 模型,不使用文本属性的示例: bash python train_edge_classification.py --dataset_name GDELT --model_name DyGFormer --patch_size 2 --max_input_sequence_length 64 --num_runs 5 --gpu 0 --use_feature no
-
测试集的 Precision、Recall 和 F1-score 指标将自动保存到
saved_resuts/DyGFormer/GDELT/edge_classification_DyGFormer_seed0no.json。
文本关系生成任务
在获得 LLM_train.pkl 和 LLM_test.pkl 文件后,可以通过运行以下命令复现原始LLMs的性能:
bash
python LLM_eval.py -config_path=LLM_configs/vicuna_7b_qlora_uncensored.yaml -model=raw
- 可以通过
config_path参数更改LLMs。 - 生成的文本将保存到
s_his_o_des_his_result_vicuna7b.pkl。
然后,可以通过更改 LLM_metric.py 中的文件路径并运行以下命令获取 Bert_score 指标:
bash
python LLM_metric.py
如果需要微调LLMs,可以运行: bash python LLM_train.py LLM_configs/vicuna_7b_qlora_uncensored.yaml
然后通过运行以下命令复现微调后LLMs的性能: bash python LLM_eval.py -config_path=LLM_configs/vicuna_7b_qlora_uncensored.yaml -model=lora




