AI论文速读 |(图腾) TOTEM:通用时间序列分析的token化时间序列嵌入表示

题目:TOTEM: TOkenized Time Series EMbeddings for General Time Series Analysis

作者:Sabera Talukder ; Yisong Yue ; Georgia Gkioxari

机构:加州理工学院(Caltech)

网址https://arxiv.org/abs/2402.16412

Cool Paperhttps://papers.cool/arxiv/2402.16412

代码https://github.com/SaberaTalukder/TOTEM

关键词:时间序列token化,嵌入表示,通用时间序列分析,VQVAE

TL, DR: 提出了TOTEM,这是一种新颖的通用时间序列分析方法,它利用tokenized embeddings进行跨领域训练和零样本推理。


🌟【紧跟前沿】“时空探索之旅”与你一起探索时空奥秘!🚀
欢迎大家关注时空探索之旅时空探索之旅QRCode

作者简介(通讯和二作):

通讯Gkioxari是Caltech的助理教授,Mask r-cnn的二作

Georgia Gkioxari二作岳一松是Caltech的教授

岳一松 Yisong Yue

摘要

通用时间序列分析领域最近开始探索统一建模,其中可以针对特定数据集的特定任务重新训练通用架构主干。 在这项工作中,我们从一个互补的有利角度来实现统一:跨任务和领域的统一(unification across tasks and domains)。 为此,本文探索了离散的、学习的、时间序列数据表示的影响,这些数据表示能够实现通用的、跨领域的训练。 TOTEMTOkenized Time Series EMbeddings) 提出了一种简单的tokenizer架构,该架构使用以自监督方式学习的离散向量化表示来嵌入来自不同领域的时间序列数据。 TOTEM 可以跨多个任务和领域工作,只需极少的(minimal)调整甚至无需调整。 通过对 3 个任务的 17 个真实世界时间序列数据集进行广泛评估来研究 TOTEM 的功效。 评估了专家(specialist,即在每个领域训练模型)和通才(generalist,即在多个领域训练单个模型)设置,并表明 TOTEM 在几个流行的基准测试中匹配或优于以前的最佳方法。

Q: 这篇论文试图解决什么问题?

A: 这篇论文提出了一个名为TOTEM(TOkenized Time Series EMbeddings)的方法,旨在解决通用时间序列分析中的几个关键问题:

  1. 统一建模(Unified Modeling):传统的时间序列分析通常采用专家训练(specialist training),即针对特定任务和数据集训练模型。TOTEM探索了一种跨任务和领域的统一建模方法,即在多个任务和数据集上共同训练一个模型,以实现更好的泛化能力。
  2. 跨领域和任务的通用性(Cross-Domain and Task Generality):TOTEM通过学习离散的、可学习的时序数据表示,使得模型能够在不同领域和任务之间进行迁移和泛化。这种方法减少了对特定领域知识的依赖,提高了模型的适用性。
  3. 零样本学习(Zero-Shot Learning):TOTEM还探讨了零样本学习的可能性,即在没有见过某些测试领域数据的情况下,模型能否进行有效的预测。这对于实际应用中快速适应新领域具有重要意义。
  4. 数据表示(Data Representation):论文强调了学习有效的数据表示的重要性,并提出了一种基于向量量化变分自编码器(VQVAE)的离散数据表示方法。这种表示方法有助于简化模型架构,同时保持对时间序列数据的丰富捕捉。
  5. 性能评估(Performance Evaluation):TOTEM在多个真实世界的时间序列数据集上进行了广泛的评估,包括插值(imputation)、异常检测(anomaly detection)和预测(forecasting)任务。通过与现有最佳方法的比较,TOTEM展示了其在不同任务和领域中的竞争力。

总的来说,TOTEM试图通过一种统一的、跨领域的建模方法,提高时间序列分析的通用性和适应性,同时保持或提高模型在特定任务上的性能。

Q: 有哪些相关研究?

A: 论文中提到的相关研究主要集中在时间序列建模和数据表示方法上。以下是一些关键的相关研究领域和具体工作:

  1. 时间序列建模方法
    • 统计方法:如指数平滑(Exponential Smoothing)和自回归模型(Autoregressive Models)。
    • 机器学习方法:包括多层感知器(MLPs)、卷积神经网络(CNNs)、循环神经网络(RNNs)和变换器(Transformers)。
  2. 数据表示学习
    • 向量量化变分自编码器(VQVAEs):用于学习离散的数据表示。
    • 语言和视觉建模中的统一数据表示:如自然语言处理中的通用token化表示。
  3. 时间序列分析的统一架构
    • 探索在不同时间序列任务上使用共享模型架构的方法,例如使用语言和视觉模型的骨干网络。
  4. 零样本学习和泛化能力
    • 研究在不同数据集上训练的模型在未见过的领域上的性能,以及如何通过零样本学习提高模型的泛化能力。
  5. 特定任务的时间序列分析
    • 针对特定任务(如预测、异常检测、插值)的时间序列分析方法,这些方法通常采用专家训练模式。
  6. 多任务学习
    • 同时在多个时间序列任务上训练模型,以提高模型的泛化能力和效率。
  7. 时间序列数据的预处理和特征工程
    • 研究如何通过数据预处理和特征工程来提高时间序列模型的性能。
  8. 时间序列的深度学习模型
    • 研究如何利用深度学习技术来捕捉时间序列数据的复杂模式和依赖关系。

这些相关研究为TOTEM提供了理论和技术基础,同时也展示了时间序列分析领域的多样性和不断发展。TOTEM通过结合这些研究成果,提出了一种新的统一建模方法,旨在提高时间序列分析的通用性和跨领域能力。

TOTEM

  • (a):TOTEM的VQVAE架构
  • (b):离散,自监督的codebook可利用于跨域和零样本测试

Q: 论文如何解决这个问题?

A: 论文通过提出TOTEM(TOkenized Time Series EMbeddings)方法来解决通用时间序列分析的问题。TOTEM的核心是一个简单的tokenizer架构,它使用离散的、自监督学习的方式嵌入来自不同领域的时间序列数据。以下是TOTEM解决这个问题的关键步骤:

  1. 离散数据表示:TOTEM使用向量量化变分自编码器(VQVAE)来学习时间序列数据的离散表示。这种表示方式使得模型能够在不同任务和领域之间进行泛化。
  2. 自监督学习:TOTEM的tokenizer通过自监督学习的方式训练,这意味着它不需要针对特定任务的标签。这种方法简化了训练过程,并允许模型在多个任务上进行训练。
  3. 统一的模型架构:TOTEM设计了一个统一的模型架构,该架构可以在不同的时间序列任务(如插值、异常检测和预测)上进行训练和测试,而无需进行大量调整。
  4. 跨领域和任务的泛化能力:通过在多个数据集和任务上共同训练,TOTEM能够学习到通用的特征表示,从而在不同领域和任务上实现良好的性能。
  5. 零样本测试:TOTEM在零样本测试中表现出色,即使在没有见过的领域上也能进行有效的预测。这表明模型能够很好地泛化到新的测试领域。
  6. 广泛的评估:TOTEM在17个真实世界的时间序列数据集上进行了评估,涵盖了3个不同的任务。这些评估结果证明了TOTEM在专家(针对单个领域的训练)和通用(针对多个领域的训练)设置中的有效性。
  7. 性能比较:论文将TOTEM与现有的最佳方法进行了比较,展示了TOTEM在多个流行基准数据集上匹配或超越现有方法的性能。

通过这些方法,TOTEM旨在提供一个通用的时间序列分析框架,该框架能够在不同的任务和领域中实现高性能,同时减少对特定领域知识的依赖。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

预测任务需要在VQVAE之外进行建模。TOTEM预训练的,学习到的,离散的Code作为输入数据表示,并训练一个Transformer编码器。沿着时间维度添加位置嵌入,并在最终输出之前使用线性层,以及对结果预测进行解归一化

Q: 论文做了哪些实验?

最好:蓝色

次好:浅红

第三:橘色

个人认为这个对baseline结果的说明很好:在设置一样的情况下采用前文的结果,并注明参考的是哪篇文章baseline的结果。

baseline values are from (Zhou et al., 2023(one fits all, NeurIPS23 Spotlight); Wu et al., 2022a(TimesNet, ICLR 2023))

插补(specialist)

插补(generalist)
异常检测(specialist)
异常检测(generalist)

预测(specialist)

预测(generalist)

A: 论文中进行了一系列实验来评估TOTEM方法在不同时间序列分析任务上的性能。以下是主要的实验内容:

  1. 插值(Imputation)
    • 在多个时间序列数据集上进行插值任务的评估,包括不同的掩码百分比(例如12.5%,25%,37.5%,50%)。
    • 使用均方误差(MSE)和平均绝对误差(MAE)作为评价指标。
    • 对比专家(single-task)和通用(generalist)训练设置下的性能。
  2. 异常检测(Anomaly Detection)
    • 在多个数据集上进行异常检测任务的评估,考虑已知的异常百分比。
    • 使用精确度(Precision)、召回率(Recall)和F1分数作为评价指标。
    • 同样对比了专家和通用训练设置下的性能。
  3. 预测(Forecasting)
    • 在多个数据集上进行时间序列预测任务的评估,考虑不同的预测长度(例如96, 192, 336, 720时间步)。
    • 使用MSE和MAE作为评价指标。
    • 对比了专家、通用以及零样本(zero-shot)测试设置下的性能。
  4. 消融实验(Ablations)
    • 进行了消融实验来评估离散表示(tokens)对TOTEM性能的影响,通过与没有使用VQVAE的TimeTOTEM模型进行对比。
    • 探索了码本大小(codebook size)对VQVAE重建性能的影响。
  5. 探索性研究(Exploratory Studies)
    • 训练了使用通用码本但特定于数据集的变换器预测器的模型,以进一步探索通用码本数据表示的能力。
    • 对比了混合模型(使用通用码本但特定于数据集的预测器)与通用和专家模型的性能。
  6. 零样本性能(Zero-Shot Performance)
    • 评估了在零样本设置下,专家模型和通用模型的性能,即在训练时未见过的领域上进行测试。

这些实验涵盖了时间序列分析的多个关键方面,包括模型的泛化能力、跨领域性能、以及在不同任务和数据集上的表现。通过这些实验,论文全面地展示了TOTEM方法的有效性和优越性。

附录还有好多实验,感兴趣的读者可以点击阅读原文,获取更多细节。

Q: 总结一下论文的主要内容

A: 这篇论文介绍了TOTEM(TOkenized Time Series EMbeddings),这是一个用于通用时间序列分析的方法。以下是论文的主要内容总结:

  1. 问题背景:传统的时间序列分析通常采用专家训练,针对特定任务和数据集训练模型。这种方法在泛化到新领域时可能面临挑战。为了解决这个问题,论文提出了一种跨任务和领域的统一建模方法。
  2. TOTEM方法:TOTEM通过一个简单的tokenizer架构,使用离散的、自监督学习的方式嵌入时间序列数据。这种方法允许模型在不同任务和领域之间进行泛化,而无需大量调整。
  3. 核心贡献
    • 提出了TOTEM,一个跨领域和任务的时间序列分析方法。
    • 展示了TOTEM在多个真实世界数据集上的性能,包括插值、异常检测和预测任务。
    • 在专家和通用训练设置下,TOTEM在多个流行基准数据集上匹配或超越了现有最佳方法。
  4. 实验评估:论文在17个真实世界时间序列数据集上进行了广泛的评估,包括3个不同的任务。实验结果表明,TOTEM在专家和通用设置下都表现出色,尤其是在零样本测试中。
  5. 消融实验:通过与没有使用VQVAE的TimeTOTEM模型进行对比,证明了离散表示(tokens)对TOTEM性能的重要性。
  6. 探索性研究:论文还探讨了通用码本数据表示的能力,并比较了混合模型与通用和专家模型的性能。
  7. 未来工作:论文提出了一些未来研究方向,包括动态token长度、更广泛的数据集和任务、多模态数据融合、解释性和可视化、实时预测和在线学习等。
  8. 伦理和社会影响:论文讨论了时间序列模型可能带来的隐私、误用和经济影响等伦理和社会问题。

表示的能力,并比较了混合模型与通用和专家模型的性能。
7. 未来工作:论文提出了一些未来研究方向,包括动态token长度、更广泛的数据集和任务、多模态数据融合、解释性和可视化、实时预测和在线学习等。
8. 伦理和社会影响:论文讨论了时间序列模型可能带来的隐私、误用和经济影响等伦理和社会问题。

总的来说,TOTEM是一个创新的时间序列分析方法,它通过统一的建模框架和离散的数据表示,提高了模型在不同任务和领域中的泛化能力和性能。
🌟【紧跟前沿】“时空探索之旅”与你一起探索时空奥秘!🚀
欢迎大家关注时空探索之旅时空探索之旅QRCode

  • 23
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现在Unity2D中点击某个物体后,物体改变速度,并在一段时间后恢复原始速度,可以按照以下步骤进行: 1. 创建物体:首先创建一个物体,可以使用Unity的模型编辑器或导入自定义模型。 2. 添加组件:给物体添加刚体组件和碰撞器组件,以便进行物理模拟。 3. 编写脚本:创建一个脚本来控制物体的速度变和复原。在脚本中,可以使用协程来延迟一段时间后恢复原始速度。 ```csharp using UnityEngine; public class ObjectController : MonoBehaviour { public float originalSpeed = 5f; // 物体的原始速度 public float changedSpeed = 10f; // 物体改变后的速度 public float restoreDelay = 2f; // 物体恢复原始速度的延迟时间 private Rigidbody2D objectRigidbody; private float currentSpeed; void Start() { objectRigidbody = GetComponent<Rigidbody2D>(); currentSpeed = originalSpeed; } void Update() { // 点击鼠标左键时改变物体速度 if (Input.GetMouseButtonDown(0)) { Vector2 mousePosition = Camera.main.ScreenToWorldPoint(Input.mousePosition); Collider2D collider = Physics2D.OverlapPoint(mousePosition); if (collider != null && collider.gameObject == gameObject) { ChangeSpeed(changedSpeed); StartCoroutine(RestoreSpeed(restoreDelay)); } } // 应用物体速度 Vector2 velocity = transform.up * currentSpeed; objectRigidbody.velocity = velocity; } void ChangeSpeed(float newSpeed) { currentSpeed = newSpeed; } System.Collections.IEnumerator RestoreSpeed(float delay) { yield return new WaitForSeconds(delay); currentSpeed = originalSpeed; } } ``` 4. 在场景中放置物体实例:在场景中放置一个物体的实例,并将物体控制脚本(ObjectController)添加到物体的GameObject上。 通过以上步骤,当点击该物体时,物体的速度将改变为指定的速度,并在一段时间后恢复原始速度。你可以根据需要调整原始速度、改变后的速度和恢复延迟时间。希望对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值