Project Icon

EasyTemporalPointProcess

灵活可配置的时序点过程开源工具包 支持多框架和结果复现

EasyTemporalPointProcess是一个用于时序点过程开发和应用的开源工具包。该工具包具有配置灵活、兼容性强和结果可复现等特点,支持多种先进TPP模型,提供预处理数据集和超参数优化功能。EasyTPP同时兼容TensorFlow和PyTorch框架,可用于学术研究和工业实践。研究人员和从业者可以利用它轻松定制TPP模型并进行开放基准测试。

EasyTPP [ICLR 2024]

EasyTPP是一个易于使用的时间点过程(TPP)开发和应用工具包,其主要特点在于可配置性、兼容性和可复现性。我们希望这个项目能够为研究人员和实践者带来益处,目标是在TPP领域实现易于定制的开发和开放的基准测试。

| 特性 | 模型列表 | 数据集 | 快速开始 | 基准测试 | 文档 | 待办事项 | 引用 | 致谢 | Star历史 |

新闻

- ![新](https://yellow-cdn.veclightyear.com/0a4dffa0/5cddb04b-016b-487d-9697-9e50ee841561.png) [2024-02-17] EasyTPP 支持 HuggingFace 数据集 API:所有数据集已发布在 [HuggingFace 仓库](https://huggingface.co/easytpp),使用示例请参见[教程笔记本](https://github.com/ant-research/EasyTemporalPointProcess/blob/main/notebooks/easytpp_1_dataset.ipynb)。 - ![新](https://yellow-cdn.veclightyear.com/0a4dffa0/5cddb04b-016b-487d-9697-9e50ee841561.png) [2024-01-16] 我们的论文 [EasyTPP: 面向时间点过程的开放基准测试](https://arxiv.org/abs/2307.08097) 被 ICLR'2024 接收! - ![新](https://yellow-cdn.veclightyear.com/0a4dffa0/5cddb04b-016b-487d-9697-9e50ee841561.png) [2023-09-30] 我们发布了两个文本事件序列数据集 [GDELT](https://drive.google.com/drive/folders/1Ms-ATMMFf6v4eesfJndyuPLGtX58fCnk) 和 [Amazon-text-review](https://drive.google.com/drive/folders/1-SLYyrl7ucEG7NpSIF0eSoG9zcbZagZw),这些数据集在我们的论文 [LAMP](https://arxiv.org/abs/2305.16646) 中使用,可以应用大语言模型进行事件预测!更多详情请参见[文档](https://ant-research.github.io/EasyTemporalPointProcess/user_guide/dataset.html#preprocessed-datasets)。 - ![新](https://yellow-cdn.veclightyear.com/0a4dffa0/5cddb04b-016b-487d-9697-9e50ee841561.png) [2023-09-30] 我们的两篇论文 [语言模型可通过少样本溯因推理改进事件预测](https://arxiv.org/abs/2305.16646)(LAMP)和 [基于提示的时间点过程用于流式事件序列](https://arxiv.org/abs/2310.04993)(PromptTPP)被 NeurIPS'2023 接收!
点击查看往期新闻

- [2023-09-02] 我们发布了两个非人为数据集 [地震](https://drive.google.com/drive/folders/1ubeIz_CCNjHyuu6-XXD0T-gdOLm12rf4) 和 [火山喷发](https://drive.google.com/drive/folders/1KSWbNi8LUwC-dxz1T5sOnd9zwAot95Tp?usp=drive_link)!详情请参见数据集。 - [2023-05-29] 我们发布了 ``EasyTPP`` v0.0.1! - [2022-12-27] 我们的论文 [Bellman 遇上 Hawkes:基于时间点过程的模型化强化学习](https://arxiv.org/abs/2201.12569) 被 AAAI'2023 接收! - [2022-10-01] 我们的论文 [HYPRO:用于长期事件序列预测的混合归一化概率模型](https://arxiv.org/abs/2210.01753) 被 NeurIPS'2022 接收! - [2022-05-01] 我们开始开发 `EasyTPP`。

特性 [返回顶部]

  • 可配置和可自定义:模型模块化且可配置,提供抽象类以支持开发自定义 TPP 模型。
  • 同时兼容 Tensorflow 和 PyTorch 框架EasyTPP 实现了两套等效的模型,可分别在 Tensorflow(包括 Tensorflow 1.13.1 和 Tensorflow 2.0)和 PyTorch 1.7.0+ 下运行。虽然 PyTorch 模型在研究人员中更受欢迎,但与 Tensorflow 的兼容性对工业实践者来说很重要。
  • 可重现:所有基准测试都可以轻松重现。
  • 超参数优化:提供基于 optuna 的 HPO 流程。

模型列表 [返回顶部]

我们提供了各种最先进的 TPP 论文的参考实现:

序号发表会议模型论文实现
1KDD'16RMTPP循环标记时间点过程:将事件历史嵌入向量[Tensorflow](https://github.com/ant-research/EasyTemporalPointProcess/blob/main/easy_tpp/model/tf_model/tf_rmtpp.py
[Torch](https://github.com/ant-research/EasyTemporalPointProcess/blob/main/easy_tpp/model/torch_model/torch_rmtpp.py
2NeurIPS'17NHP神经霍克斯过程:神经自调制多变量点过程[Tensorflow](https://github.com/ant-research/EasyTemporalPointProcess/blob/main/easy_tpp/model/tf_model/tf_nhp.py
[Torch](https://github.com/ant-research/EasyTemporalPointProcess/blob/main/easy_tpp/model/torch_model/torch_nhp.py
3NeurIPS'19FullyNN基于全神经网络的通用时间点过程模型[Tensorflow](https://github.com/ant-research/EasyTemporalPointProcess/blob/main/easy_tpp/model/tf_model/tf_fullnn.py
[Torch](https://github.com/ant-research/EasyTemporalPointProcess/blob/main/easy_tpp/model/torch_model/torch_fullynn.py
4ICML'20SAHP自注意力霍克斯过程[Tensorflow](https://github.com/ant-research/EasyTemporalPointProcess/blob/main/easy_tpp/model/tf_model/tf_sahp.py
[Torch](https://github.com/ant-research/EasyTemporalPointProcess/blob/main/easy_tpp/model/torch_model/torch_sahp.py
5ICML'20THPTransformer霍克斯过程[Tensorflow](https://github.com/ant-research/EasyTemporalPointProcess/blob/main/easy_tpp/model/tf_model/tf_thp.py
[Torch](https://github.com/ant-research/EasyTemporalPointProcess/blob/main/easy_tpp/model/torch_model/torch_thp.py
6ICLR'20IntensityFree无强度学习时间点过程[Tensorflow](https://github.com/ant-research/EasyTemporalPointProcess/blob/main/easy_tpp/model/tf_model/tf_intensity_free.py
[Torch](https://github.com/ant-research/EasyTemporalPointProcess/blob/main/easy_tpp/model/torch_model/torch_intensity_free.py
7ICLR'21ODETPP神经时空点过程(简化版)[Tensorflow](https://github.com/ant-research/EasyTemporalPointProcess/blob/main/easy_tpp/model/tf_model/tf_ode_tpp.py
[Torch](https://github.com/ant-research/EasyTemporalPointProcess/blob/main/easy_tpp/model/torch_model/torch_ode_tpp.py
8ICLR'22AttNHP不规则间隔事件及其参与者的Transformer嵌入[Tensorflow](https://github.com/ant-research/EasyTemporalPointProcess/blob/main/easy_tpp/model/tf_model/tf_attnhp.py
[Torch](https://github.com/ant-research/EasyTemporalPointProcess/blob/main/easy_tpp/model/torch_model/torch_attnhp.py

数据集 [返回顶部]

我们预处理了一个合成数据集和五个来自广泛引用的研究的真实世界数据集,这些数据集在应用领域和时间统计特性方面具有多样性:
  • 合成数据:使用Tick库模拟的单变量Hawkes过程。
  • Retweet(Zhou, 2013):带时间戳的用户转发事件。
  • 出租车(Whong, 2014):带时间戳的出租车接客事件。
  • StackOverflow(Leskovec, 2014):StackOverflow中带时间戳的用户徽章奖励事件。
  • 淘宝(Xue et al, 2022):淘宝平台上带时间戳的用户在线购物行为事件。
  • 亚马逊(Xue et al, 2022):亚马逊平台上带时间戳的用户在线购物行为事件。

应用户要求,我们还处理了两个非人为数据集:

  • 地震:1996年至2023年美国本土地区带时间戳的地震事件,数据来源于USGS
  • 火山喷发:近几百年来全球带时间戳的火山喷发事件,数据来源于史密森学会

所有数据集都被预处理成TPP研究者广泛使用的Gatech格式,并保存在Google Drive中,可公开访问。

快速开始 [返回顶部]

我们为用户提供了一个端到端的示例,用于使用EasyTPP运行标准TPP模型。

步骤1. 安装

首先,我们可以通过pip或从Github上的源代码安装软件包。

安装最新稳定版本:

pip install easy-tpp

从GitHub安装最新版本:

git clone https://github.com/ant-research/EasyTemporalPointProcess.git
cd EasyTemporalPointProcess
python setup.py install

步骤2. 准备数据集

在运行模型之前,我们需要将数据集放在本地目录中,且数据集应遵循特定格式。详情请参见在线文档 - 数据集

假设我们在示例中使用出租车数据集

步骤3. 训练模型

开始训练之前,我们需要为流程设置配置文件。我们在示例配置中提供了一个预设配置文件。配置详情可在在线文档 - 训练流程中找到。

完成数据和配置设置后,目录结构如下:

    data
     |______taxi
             |____ train.pkl
             |____ dev.pkl
             |____ test.pkl

    configs
     |______experiment_config.yaml

然后,我们只需运行以下脚本即可开始训练:

import argparse
from easy_tpp.config_factory import Config
from easy_tpp.runner import Runner

def main():
    parser = argparse.ArgumentParser()

    parser.add_argument('--config_dir', type=str, required=False, default='configs/experiment_config.yaml',
                        help='训练和评估模型的配置yaml文件目录。')

    parser.add_argument('--experiment_id', type=str, required=False, default='NHP_train',
                        help='配置文件中的实验ID。')

    args = parser.parse_args()

    config = Config.build_from_yaml_file(args.config_dir, experiment_id=args.experiment_id)

    model_runner = Runner.build_from_config(config)

    model_runner.run()

if __name__ == '__main__':
    main()

更详细的示例可以在在线文档 - 快速开始中找到。

文档 [返回顶部]

EasyTPP的类和方法已经有了详细的文档说明,用户可以通过以下方式生成文档:

cd doc
pip install -r requirements.txt
make html

注意:

  • doc/requirements.txt仅用于Sphinx生成文档,可由Github actions .github/workflows/docs.yml自动生成。(由拉取请求触发。)

完整文档可在网站上查阅。

基准测试 [返回顶部]

在 [examples](https://github.com/ant-research/EasyTemporalPointProcess/tree/main/examples) 文件夹中,我们提供了一个[脚本](https://github.com/ant-research/EasyTemporalPointProcess/blob/main/examples/benchmark_script.py)来对TPPs进行基准测试,使用Taxi数据集作为输入。

要运行该脚本,您需要按照上述说明下载Taxi数据。配置文件已经设置好了。然后运行:

cd examples
python benchmark_script.py

许可证 [返回顶部]

本项目采用 Apache License (Version 2.0) 许可。此工具包还包含一些根据其他开源许可证修改的代码。更多信息请参见 NOTICE 文件。

待办事项 [返回顶部]

  • 新数据集:
    • 地震:源数据可在 USGS 获取。
    • 火山喷发:源数据可在 NCEI 获取。
  • 新模型:
    • Meta Temporal Point Process,ICLR 2023。
    • 基于TPP的模型based RL,AAAI 2022。

引用 [返回顶部]

如果您发现EasyTPP对您的研究或开发有用,请引用以下论文

@inproceedings{xue2024easytpp,
      title={EasyTPP: Towards Open Benchmarking Temporal Point Processes}, 
      author={Siqiao Xue and Xiaoming Shi and Zhixuan Chu and Yan Wang and Hongyan Hao and Fan Zhou and Caigao Jiang and Chen Pan and James Y. Zhang and Qingsong Wen and Jun Zhou and Hongyuan Mei},
      booktitle = {International Conference on Learning Representations (ICLR)},
      year = {2024},
      url ={https://arxiv.org/abs/2307.08097}
}

致谢 [返回顶部]

本项目由支付宝机器智能组和阿里巴巴达摩院联合发起。

EasyTPP使用了以下仓库,或以接近原始形式使用,或作为灵感来源:

Star历史 [返回顶部]

Star历史图表

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

白日梦AI

白日梦AI提供专注于AI视频生成的多样化功能,包括文生视频、动态画面和形象生成等,帮助用户快速上手,创造专业级内容。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

讯飞绘镜

讯飞绘镜是一个支持从创意到完整视频创作的智能平台,用户可以快速生成视频素材并创作独特的音乐视频和故事。平台提供多样化的主题和精选作品,帮助用户探索创意灵感。

Project Cover

讯飞文书

讯飞文书依托讯飞星火大模型,为文书写作者提供从素材筹备到稿件撰写及审稿的全程支持。通过录音智记和以稿写稿等功能,满足事务性工作的高频需求,帮助撰稿人节省精力,提高效率,优化工作与生活。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号