five

BenchTemp

收藏
arXiv2023-08-31 更新2024-07-30 收录
下载链接:
https://github.com/qianghuangwhu/benchtemp
下载链接
链接失效反馈
官方服务:
资源简介:
BenchTemp是一个用于评估时间图神经网络模型的通用基准,提供了多种工作负载下的数据集,以公平比较不同的TGNN模型。

BenchTemp is a universal benchmark for evaluating temporal graph neural network models, which provides datasets under various workloads to enable fair comparisons between different TGNN models.
创建时间:
2023-08-31
原始信息汇总

BenchTemp: A General Benchmark for Evaluating Temporal Graph Neural Networks

Overview

BenchTemp is a general Benchmark Python Library for evaluating Temporal Graph Neural Networks (TGNNs) quickly and efficiently on various workloads. It provides Benchmark Datasets, and unified pipelines (DataPreprocessor, DataLoader EdgeSampler, Evaluator, EarlyStopMonitor, BenchTempLoss, BenchTempOptimizer, and Leaderboard) for evaluating Temporal Graph Neural Networks on both link prediction task and node classification task.

News

  • 5/1/2024 - The Myket Dataset used in paper has been added to BenchTemp. Data preprocess code at preprocess/Myket.py
  • 2/9/2023 - All datasets have been hosted on Zenodo with DOI 10.5281/zenodo.8267846.
  • 20/8/2023 - Four large-scale datasets (eBay-Large, DGraphFin-Large, YouTubeReddit-Large, and Taobao-Large) have been added.
  • 12/7/2023 - Experimental codes uploaded in folder experimental_codes.
  • 25/6/2023 - BenchTemp website updated.
  • 24/6/2023 - Reference of BenchTemp updated on GitHub.

Installation

Requirements

  • numpy >= 1.18.0
  • pandas >= 1.2.0
  • sklearn >= 0.20.0

PyPI install

bash pip install benchtemp

Usage Example

Dynamic Link Prediction

BenchTemp provides components for dynamic link prediction task: python import benchtemp as bt

data = bt.lp.DataLoader(dataset_path="./data/", dataset_name=mooc) node_features, edge_features, full_data, train_data, val_data, test_data, new_node_val_data, new_node_test_data, new_old_node_val_data, new_old_node_test_data, new_new_node_val_data, new_new_node_test_data, unseen_nodes_num = data.load()

train_rand_sampler = bt.lp.RandEdgeSampler(train_data.sources, train_data.destinations) monitor = bt.EarlyStopMonitor()

model = TGNN(parameters) for epoch in range(args.epochs): size = len(train_data) _, negatives_batch = train_rand_sampler.sample(size) pre_positive, pre_negative = model(positive_batch, negatives_batch) loss = loss_function(pre_positive, pre_negative, labels) val_ap = model(val_data) if monitor.early_stop_check(val_ap): break

pre = model(test_data) results = bt.evaluator(pre, labels)

Dynamic Node Classification

BenchTemp provides components for dynamic node classification task: python import benchtemp as bt

data = bt.nc.DataLoader(dataset_path="./data/", dataset_name=mooc) node_features, edge_features, full_data, train_data, val_data, test_data = data.load()

model = TGNN(parameters) for epoch in range(args.epochs): size = len(train_data) pre_positive, pre_negative = model(positive_batch, negatives_batch) loss = loss_function(pre_positive, pre_negative, labels) val_ap = model(val_data) if monitor.early_stop_check(val_ap): break

pre = model(test_data) results = bt.evaluator(pre, labels)

BenchTemp Reference

DataPreprocessor

Preprocesses datasets for TGNNs: python import benchtemp as bt

processor = bt.DataPreprocessor(data_path="./data/", data_name="mooc") processor.data_preprocess(bipartite=True)

TemporalGraph

Represents a temporal graph: python import benchtemp as bt

graph_df = pd.read_csv("dataset_path") full_data = bt.TemporalGraph(sources, destinations, timestamps, edge_idxs, labels)

lp.DataLoader

DataLoader for link prediction tasks: python import benchtemp as bt

data = bt.lp.DataLoader(dataset_path="./data/", dataset_name=mooc) node_features, edge_features, full_data, train_data, val_data, test_data, new_node_val_data, new_node_test_data, new_old_node_val_data, new_old_node_test_data, new_new_node_val_data, new_new_node_test_data, unseen_nodes_num = data.load()

lp.RandEdgeSampler

Negative edge sampler for link prediction: python import benchtemp as bt

train_rand_sampler = bt.lp.RandEdgeSampler(train_data.sources, train_data.destinations) _, negatives_batch = train_rand_sampler.sample(size)

nc.DataLoader

DataLoader for node classification tasks: python import benchtemp as bt

data = bt.nc.DataLoader(dataset_path="./data/", dataset_name=mooc, use_validation=True) node_features, edge_features, full_data, train_data, val_data, test_data = data.load()

EarlyStopMonitor

Early stopping monitor: python import benchtemp as bt

early_stopper = bt.EarlyStopMonitor(max_round=args.patience) if early_stopper.early_stop_check(val_ap): break

Evaluator

Evaluator for different tasks: python import benchtemp as bt

evaluator = bt.Evaluator(task_name="LP") results = evaluator.eval(pred_score, true_label)

搜集汇总
数据集介绍
main_image_url
构建方式
在时序图神经网络领域,先前研究因数据集预处理不一致、评估管线各异而导致结果矛盾。为应对这一挑战,BenchTemp 精心构建了一套标准化基准数据集。其构建过程包含两个关键步骤:首先,统一节点特征维度至172,以消除不同研究因特征维度差异带来的性能偏差;其次,执行节点重索引操作,针对异构与同构图分别采用不同策略,确保节点索引连续且高效,例如在淘宝数据集上,该操作将节点特征矩阵规模缩减了62.53倍。最终,来自社交、电商、交通等多领域的15个公开数据集被整合为统一的基准。
特点
BenchTemp 数据集具备多重显著特性。它涵盖了从社交网络到经济贸易的广泛领域,包含15个规模与密度各异的时序图,为全面评估模型提供了丰富场景。数据集的构建标准化程度极高,统一了节点特征维度与索引方式,彻底规避了以往研究中因数据预处理差异导致的“苹果与橘子”式比较。此外,该数据集支持多种任务类型(如链接预测与节点分类)及多种设置(直推式与归纳式),并进一步细分为归纳式中的“新-旧”与“新-新”场景,为深入剖析模型泛化能力提供了坚实基础。
使用方法
使用 BenchTemp 数据集时,研究者可借助其统一且模块化的评估管线。该管线包含数据集加载、数据划分、边采样、模型训练、早停监控、评估及排行榜等七大模块。数据划分严格按时间顺序进行,支持70%-15%-15%的训练-验证-测试拆分。在归纳式设置下,管线会自动掩蔽部分节点以模拟未见场景。用户既可直接调用已实现的七种主流时序图神经网络模型,也可通过库接口轻松集成自定义模型。评估指标包括ROC AUC与平均精度,结果会推送至排行榜,便于横向对比,从而高效、公平地推动时序图神经网络研究。
背景与挑战
背景概述
时序图神经网络(TGNN)作为图深度学习领域的前沿方向,致力于捕捉随时间演化的图结构与节点特征变化,在社交网络、交通系统及生物信息学等动态场景中展现出重要价值。然而,现有TGNN研究长期受困于评估体系的不统一,具体表现为数据集预处理方式各异、评估流程缺乏标准化、任务覆盖范围有限以及效率对比缺失。为填补这一空白,由武汉大学、苏黎世联邦理工学院及eBay等机构的研究人员于2023年共同构建了BenchTemp基准数据集。该基准系统性地整合了15个来自社交、电商、交通等多领域的时序图数据,并设计了统一的评估管线,覆盖链接预测与节点分类任务下的直推式与归纳式场景。BenchTemp的提出不仅为TGNN模型提供了公平比较的标准化平台,更通过开源框架与排行榜机制推动了该领域的可复现研究与技术迭代。
当前挑战
BenchTemp所应对的核心挑战可归纳为三方面:其一,领域问题层面,TGNN模型在动态图上的性能评估长期受困于数据集不一致与评估流程碎片化,导致不同研究间的对比结果相互矛盾,亟需建立统一的基准框架以实现公平比较。其二,数据集构建过程中,面临节点特征维度不统一(先前研究从2维到172维不等)以及节点索引不连续导致特征矩阵膨胀的难题,为此BenchTemp通过标准化特征维度(172维)与节点重索引策略,将Taobao数据集的特征矩阵规模缩减62.53倍。其三,评估管线设计需兼顾任务多样性(涵盖直推式、归纳式及归纳式下的New-Old与New-New子场景)与效率对比,包括统一的数据加载器、负边采样器、早停机制及效率指标(运行时、内存占用、GPU利用率),从而全面揭示模型在效果与效率间的权衡关系。
常用场景
经典使用场景
在时序图神经网络(TGNN)蓬勃发展的背景下,BenchTemp作为首个通用基准测试平台,其经典使用场景在于为不同TGNN模型提供公平、统一的性能评估环境。该数据集整合了来自社交网络、电商、交通、政治等多个领域的十五个真实时序图数据,并标准化了节点特征维度与索引重映射流程。研究者可借助BenchTemp在链接预测与节点分类两大任务上,对JODIE、DyRep、TGN等七种代表性模型进行直推式与归纳式设置的全面对比,从而系统性地衡量模型在有效性与效率上的表现差异。
衍生相关工作
BenchTemp的提出催生了一系列后续研究工作。首先,论文本身基于对现有模型的剖析,提出了新型TGNN模型TeMP,该模型融合图神经网络聚合与时序结构,在平衡性能与效率上表现优异。其次,BenchTemp的开源框架(含PyPI包与排行榜)为社区提供了持续迭代的基准,鼓励研究者开发更优的模型组件,如改进的时序采样器或内存模块。此外,该工作启发了对历史负采样与归纳负采样策略的探索,为处理高AUC数据集中的过拟合问题提供了新思路。这些衍生工作共同推动了时序图学习从实验性研究向工程化应用的迈进。
数据集最近研究
最新研究方向
在时序图神经网络领域,针对现有评估中数据集不一致、评估流程不统一、工作负载多样性匮乏及效率比较缺失等关键问题,最新研究聚焦于构建通用基准平台BenchTemp。该研究通过标准化基准数据集构建与统一评估管线,在链接预测与节点分类任务上,系统比较了JODIE、DyRep、TGN、TGAT、CAWN、NeurTW及NAT等代表性模型在直推与归纳设定下的效果与效率。研究揭示了基于时序游走的模型(如CAWN和NeurTW)在捕捉图结构动态演化方面的突出优势,同时指出NAT通过联合邻域学习在性能与效率间取得了良好权衡。此项工作为时序图神经网络的可重复性研究奠定了坚实基础,推动了该领域向更加标准化、系统化的方向迈进。
相关研究论文
  • 1
    BenchTemp: A General Benchmark for Evaluating Temporal Graph Neural Networks · 2023年
以上内容由遇见数据集搜集并总结生成
5,000+
优质数据集
54 个
任务类型
进入经典数据集
二维码
社区交流群

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

二维码
科研交流群

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

数据驱动未来

携手共赢发展

商业合作