标题 | TSI-Bench:Benchmarking Time Series Imputation |
---|---|
作者 | Wenjie Du; Jun Wang; Linglong Qian; Yiyuan Yang; Fanxing Liu;Zepu Wang;Zina Ibrahim; Haoxin Liu; Zhiyuan Zhao; Yingjie Zhou5; Wenjia Wang; Kaize Ding; Yuxuan Liang; B. Aditya Prakash; Qingsong Wen |
机构 | PyPOTS Research |
邮箱 | wenjay.du@gmail.com |
论文 | https://arxiv.org/abs/2406.12747 |
代码 | https://github.com/WenjieDu/Awesome_Imputation |
1 摘要
有效插补是时间序列分析的关键预处理步骤。尽管开发了许多用于时间序列插补的深度学习算法,但社区缺乏标准化和全面的基准平台来有效评估不同设置下的插补性能。此外,尽管许多深度学习预测算法表现出了优异的性能,但它们的建模成果是否可以转移到时间序列插补任务中仍有待探索。为了弥补这些差距,我们开发了 TSI(Time Seires Imputation)-Bench,这是第一个(据我们所知)利用深度学习技术进行时间序列插补的综合基准套件。TSI-Bench pipeline标准化了实验设置,以便能够公平评估插补算法,并识别适合领域的缺失率和模式对模型性能影响的有意义的见解。此外,TSI-Bench 创新性地提供了一种系统范例,可以为插补目的定制时间序列预测算法。我们对 34,804 个实验、28 种算法和 8 个具有不同缺失场景的数据集进行了广泛研究,证明了 TSI-Bench 在不同下游任务中的有效性,以及开启时间序列插补研究和分析未来方向的潜力。源代码和实验日志可在 https://github.com/WenjieDu/Awesome_Imputation 获取。
2 问题及贡献
问题:时间序列插补任务缺乏一个标准的benchmark,用于公正地评估时间序列填补算法性能。
贡献:
第一个用于评估时间序列插补任务的综合基准,包含 28 种即用型算法,涵盖基于预测和基于填补的方法。 该基准提供了跨越四个不同领域(空气质量、交通、电力和医疗保健)的八个数据集,并且维度、缺失模式和数据类型各不相同。
TSI-Bench 提供研究和应用驱动的基准测试视角,能够对我们通过研究各个领域的要求确定的插补过程的四个关键角度进行标准化分析:1.能够模拟不同程度的缺失并分析其对模型性能的影响;2. 除了时间序列中的单点缺失之外,能够根据特定领域的要求将缺失模式的变化(例如,子序列缺失和块缺失)合并到时间序列中;3. 所采用的估算或预测模型的类型;4.预期的下游任务。任何遇到数据缺失的研究人员都可以使用 TSI-Bench 来探索不同插补范式对特定问题、数据集和下游任务的适用性。
识别并解决 TSI 现有评估方案固有的局限性,以确保严格和公平的比较。 我们构建了一个开源生态系统,其中包括用于数据预处理、灵活且用户驱动的缺失模拟、指标利用和超参数调整的标准化管道。该生态系统不仅有助于轻松复制我们的结果,还为用户提供了轻松评估其数据集和模型并将其集成到我们的生态系统中的工具。
3 TSI-Bench的设置
3.1 TSI-Bench组成部分
我们的 TSI-Bench 工作流程如图 2 所示。首先,从我们的时间序列数据库 TSDB(充当数据仓库)加载数据。然后使用 PyGrinder 将加载的数据转换为部分观测时间序列 (POTS),该模型执行灵活且用户驱动的缺失模拟。接下来,POTS 使用 BenchPOTS 进行处理,BenchPOTS 提供标准数据预处理管道来对 POTS 上的机器学习算法进行基准测试。随后,将预处理后的时间序列输入到 PyPOTS 中实现的插补模型中,以估计缺失值,从而得到插补时间序列。最后,将估算的数据提供给下游模型以执行其他数据分析任务,例如 分类、回归和预测。
3.2 选用的数据集和模型
数据集:选择了8个不同且具有代表性的数据集进行实验,包括空气质量(BeijingAir和ItalyAir)、交通(PeMS和Pedestrian)、电力(ETTh1和ECL)、医疗保健(PhysioNet2012和PhysioNet2019)。
模型:
Transformer架构: Transformer 、Pyraformer 、Autoformer 、Informer、Crossformer、PatchTST、ETSformer、Nonstationary Transformer、SAITS和 iTransformer。 RNN架构: MRNN、BRITS和 GRUD。 CNN架构:MICN、SCINet和TimesNet。 GNN架构:StemGNN。 MLP架构:FiLM、DLinear、Koopa和FreTS。 基于VAE、GAN 和扩散模型的生成架构:GP-VAE、US-GAN和 CSDI。 传统方法:均值插补、中位数插补、LOCF(Last Observation Carried Forward)和线性插值。
3.3 实现细节
数据集预处理:除了Physionet2012、Physionet2019和Pedestrian已经包含分离的时间序列样本外,所有其他数据集都根据时间段分为训练集、验证集和测试集,然后应用滑动窗口函数生成分离数据 样品。标准化应用于所有数据集的样本。
缺失模式:为了使缺失模式多样化,我们在实验中应用了三种不同类型的缺失(点、子序列和块)。评估指标:MAE(平均绝对误差)、MSE(均方误差)和 MRE(平均相对误差)用于评估插补性能。 此外,还收集了推理时间和可训练参数的数量以供讨论。
超参数优化:为了获得公平的比较和结论,对所有深度学习插补算法都进行了超参数优化。此功能是通过 PyPOTS和 NNI 实现的。
下游任务设计:为了探索插补如何影响下游分析,我们使用 XGBoost、RNN 和 Transformer 对插补数据集执行各种任务以进行评估。
4 实验
实验分为三个主要部分:
数据视角:在所有数据集中测试不同的缺失率(10%、50%和90%)和各种缺失模式(点、子序列、块)。如图所示,热图中黑色块代表观测到的数据,灰色块代表缺失数据。 模型视角:根据目标任务类型(预测、插补)和架构类型(Transformer/attention、RNN、CNN、MLP等)来分析所有方法,同时还考虑模型大小和推理时间对 实际应用。 下游任务视角:使用三种不同的架构(XGBoost、RNN、Transformer)在三个经典时间序列下游任务(分类、回归和预测)中评估估算数据质量,以证明下游估算的意义和重要性 任务。
4.1 数据角度
从应用的领域来看:不同模型在不同应用领域的数据集上表现出显着的性能差异;传统方法在某些简单领域(如电力数据集)上表现的更好,似乎无法找到一个在所有应用场景下都表现完美的模型。
从缺失率的角度来看:随着缺失数据率从 10% 增加到 90%,所有模型和数据集都存在性能下降的总体趋势,但仍存在低缺失率插补损失高于高缺失率;此外不同的模型对缺失数据表现出不同的敏感性,与其他模型相比,BRITS 保持相对较低的错误,而 CSDI 显示出极高的敏感性。
从缺失模式的角度来看:不同的缺失模式显著影响模型性能,块和子序列缺失模式会导致更高的填补损失,因为它们更难进行插值或者估计相邻的点。
4.2 模型角度
从架构角度来看:基于 Transformer/Attention 的模型(例如 Autoformer 和 Informer)表现出了出色的性能,但一些模型(例如 Crossformer 和 SAITS)的模型尺寸较大,可能会导致推理效率较低。BRITS 等基于 RNN 的模型表现出良好的性能(低 MSE、MAE),但推理时间较长且模型大小适中。SCINet 等基于 CNN 的模型具有更快的推理时间,但模型尺寸相对较大,与 Transformer 和 RNN 架构相比,性能略低。DLinear 等基于 MLP 的模型在推理时间和模型大小方面具有明显优势,且性能适中,适合需要快速推理和较小模型的应用。CSDI作为生成模型,在某些指标(例如MAE)上表现良好,但推理时间极长,模型大小适中,适合对性能要求很高的场景。传统方法由于范围有限,通常不会产生最佳结果,特别是在缺失率和复杂性较高的数据集中。然而,它们可以更高效,并且在更简单的数据集上表现更好总之,不同的架构模型在推理时间、模型大小和性能指标方面都有自己的优点和缺点,需要根据具体的应用需求选择合适的模型 。
从用于填补的预测backbone来看:通过适应SAITS论文的填补范式,我们将时间序列预测模型的backbone转移到插补任务,并将其性能与典型插补方法进行比较。从实验结果来看,最初为填补而设计的方法与为预测而设计的方法相比并没有表现出非凡的性能。在许多情况下,经过调整的预测方法往往会表现更好。 一个潜在的原因是,与时间序列插补相比,关于时间序列预测的论文更多。因此,时间序列预测模型在捕获时间信息和多元相关性方面更加更新和先进。
4.3 下游任务角度
分类任务:在这个消融测试中,我们首先应用不同的模型执行插补任务,然后基于三种类型的分类器执行分类任务。我们希望探索各种插补方法对下游分类任务的性能提升,如图 6 所示。例如,iTransformer 在没有插补的情况下显示 ROC_AUC 为 0.771,在插补后显着提高到 0.852。此外,非平稳方法在插补方面表现最佳,达到 0.860 的 ROC_AUC,在处理缺失数据和对下游任务做出积极贡献方面表现出强大的鲁棒性。总体而言,插补在预处理的分类任务中起着至关重要的作用,因为大多数方法的性能在插补后显着提高。 此外,选择适当的插补方法可以提高下游性能。因此,未来的研究和应用可能会更加注重插补技术的开发和优化,以提高各种下游分类算法的鲁棒性和效果。
回归任务:如表 2 所示,具有不同缺失模式(50% 点、子序列和块缺失)的插补方法显着影响下游回归任务的性能。例如,BRITS 模型是一种基于 RNN 的方法,在块缺失场景中实现了 0.826 的最低 MAE,表明其在维护数据完整性方面的稳健性以及在支持准确回归结果方面的有效性。这表明其在维护数据完整性方面的稳健性以及在支持准确回归结果方面的有效性。这表明,尽管存在大量数据丢失,BRITS 仍能够捕获时间依赖性,从而转化为更可靠的回归预测。同样,Autoformer 和 Informer 等基于 Transformer 的模型也表现出了强大的性能,在块缺失场景中 MAE 值分别为 1.327 和 1.158,凸显了它们在处理复杂缺失数据模式和增强下游回归任务的预测准确性方面的有效性。相反,在相同场景下,Mean 和 Median 等传统插补方法显示出较高的 MAE 值,分别为 1.413 和 1.496,这凸显了它们的局限性并导致回归结果不太准确。应用于插补数据的简单 XGBoost 模型的性能优于未调整的深度学习分类器,进一步强化了稳健插补的重要性。这表明高质量插补不仅保留了数据的完整性,而且还显着增强了回归模型的预测能力。
预测任务: 使用高级算法插补缺失值可以提高下游任务的性能,而使用 像平均值这样的简单方法可能不会对预测性能产生积极影响。
5 总结
在本文中,我们介绍了 TSI-Bench,一种时间序列插补的综合基准。我们对 8 个真实数据集上的 28 种算法进行的评估表明,成功的数据插补取决于多种因素,包括深度学习结构、缺失率和跨时空模式以及数据集本身。尽管这个过程很复杂,但我们的基准套件和实验结果可以作为未来研究的参考,并在实际场景中提供实用的插补指南。我们将 TSI-Bench 视为一个长期发展的项目,并致力于其持续发展。我们未来的路线图包括集成更先进的深度学习模型和扩大数据集的范围。此外,我们的目标是增强 TSI-Bench 的用户友好性,目标是将其打造成时间序列插补的流行工具。
6 思考
这篇文章做了大量的实验并分析了实验结果,具有一定的工作量。论文提出的三种缺失模式启发了我:现实生活中还存在着各种意外事件导致传感器数据的丢失。当我们对数据集进行人为掩码时,应该根据数据集的领域来选择更贴切的掩码方式,让训练出来的模型更贴切实际;又或者同时使用不同的掩码方式来综合评估模型面对不同缺失模式的插补能力。