首页 > 其他分享 >使用 Temporal Fusion Transformer 进行时间序列预测

使用 Temporal Fusion Transformer 进行时间序列预测

时间:2022-09-18 12:00:38浏览次数:140  
标签:Transformer 预测 Temporal Fusion 时间 序列 TFT 模型

目前来看表格类的数据的处理还是树型的结构占据了主导地位。但是在时间序列预测中,深度学习神经网络是有可能超越传统技术的。

为什么需要更加现代的时间序列模型?

专为单个时间序列(无论是多变量还是单变量)创建模型的情况现在已经很少见了。现在的时间序列研究方向都是多元的,并且具有各种分布,其中包含更多探索性因素包括:缺失数据、趋势、季节性、波动性、漂移和罕见事件等等。

通过直接预测目标变量往往是不够的,我们优势还希望系统能够产生预测区间,显示预测的不确定性程度。

并且除了历史数据外,所有的变量都应该考虑在内,这样可以建立一个在预测能力方面具有竞争力的模型。

所以现代时间序列模型应该考虑到以下几点:

  • 模型应该考虑多个时间序列,理想情况下应该考虑数千个时间序列。
  • 模型中应该使用单维或多维序列。
  • 除了时态数据之外,模型还应该能够使用过去数据。这个限制影响了所有的自回归技术(ARIMA模型),包括亚马逊的DeepAR。
  • 非时间的外部静态因素也应加以考虑。
  • 模型需要具有高度的适应性。即使时间序列比较复杂或包含一些噪声,模型也可以使用季节性“朴素”预测器预测。并且应该能够区分这些实例。
  • 如果可以的话模型可以进行多步预测功能。也就是不止预测下一个值们需要预测下几个值。
  • 直接对目标变量预测是不够的。模型能够产生预测区间,这样显示预测的不确定性程度。
  • 生产环境应该能够顺利地集成最优模型,该模型也应该易于使用和理解。

什么是Temporal Fusion Transformer?

Temporal Fusion Transformer(TFT)是一个基于注意力的深度神经网络,它优化了性能和可解释性,顶层架构如下图所示。

TFT架构的优点如下:

能够使用丰富的特征:TFT支持三种不同类型的特征:外生类别/静态变量,也称为时不变特征;具有已知输入到未来的时态数据,仅到目前已知的时态数据;具有未知输入的未来时态数据。

区间预测:TFT使用分位数损失函数来产生除实际预测之外的预测区间。

异构时间序列:允许训练具有不同分布的多个时间序列。TFT设计将处理分为两个部分:局部处理,集中于特定事件的特征和全局处理,记录所有时间序列的一般特征。

可解释性:TFT的核心是基于transformer的体系结构。该模型引入的多头注意力机制,在需要对模型进行解释时提供了关于特征重要性的额外知识。另外一个性能良好的DNN实现是Multi-Horizon Quantile Recurrent Forecaster(MQRNN)。但是它没有提供如何解释这些特征重要程度的指导。

性能:在基准测试中,TFT 优于基于 DNN 的模型,如 DeepAR、MQRNN 和深度状态空间模型(Deep Space-State Models)以及传统统计模型 (ARIMA,DSSM等)。

与传统方法不同,TFT的多头注意力提供了特征可解释性。通过TFT的多头注意力添加一个新的矩阵或分组,允许不同的头共享一些权重,然后可以根据季节性分析来解释这些全红的含义。

 

完整文章:

https://avoid.overfit.cn/post/be0a146627ed45eca224f88fa6452b77

标签:Transformer,预测,Temporal,Fusion,时间,序列,TFT,模型
From: https://www.cnblogs.com/deephub/p/16704554.html

相关文章

  • 为 Transformer 实现形式化算法,第 1 部分:注意力
    为Transformer实现形式化算法,第1部分:注意力边做边学的机器学习。使用DeepMind的伪代码从头开始编写多头注意力的教学实现2017年的论文中介绍了transformer架构注......
  • Transformer中的Position Embedding和RNN/CNN中的Position Encoding的区别
    区别:PositionEmbedding是学习式,PositionEncoding是固定式Transformer的结构是基于Self-Attention的,与RNN/CNN不同,不包含序列信息,但是序列信息又极其重要,为了融合序列信......
  • ubuntu20上配置ElasticFusion
    1、安装cmake3.22版本以上的版本(因为在进行编译时,要求cmake版本需3.22以上)1.1、查看当前版本cmake---version1.2、卸载cmakesudoaptremovecmake1.3、下载官......
  • ECCV 2022 | k-means Mask Transformer
    前言 目前,大多数现有的基于transformer的视觉模型只是借用了自然语言处理的思想,忽略了语言和图像之间的关键差异,特别是空间扁平像素特征的巨大序列长度。这阻碍了在像素特......
  • Diffusion模型学习
    参考资料:https://huggingface.co/blog/annotated-diffusion注:本文只为了给作者自己记录简洁的高层模型要点,如有未注明的符号请参考参考资料。1.两个过......
  • MS-TCT: Multi-Scale Temporal ConvTransformer for Action Detection概述
    1.针对的问题为了在未修剪视频中建模时间关系,以前的多种方法使用一维时间卷积。然而,受核大小的限制,基于卷积的方法只能直接获取视频的局部信息,不能学习视频中时间距离......
  • 基于Hugging Face的transformers包的微调模型训练
    transformersAPI参考链接:https://huggingface.co/docs/transformers/v4.21.2/en/trainingtrain.pyfromdatasetsimportload_datasetfromtransformersimportAutoT......
  • 混淆矩阵(Confusion Matrix)
    混淆矩阵(ConfusionMatrix)1.混淆矩阵引入在机器学习领域,当我们想要衡量一个模型的优劣时,经常用到一些分析指标,如:错误率、准确率等。但是这两个指标并不能满足所有任务......
  • Transformer——Attention Is All You Need经典论文翻译
    转载自:Transformer——AttentionIsAllYouNeed经典论文翻译(邓范鑫——致力于变革未来的智能技术) 本文为Transformer经典论文《AttentionIsAllYouNeed》的中文翻......
  • 如何估算transformer模型的显存大小
    在微调GPT/BERT模型时,会经常遇到“cudaoutofmemory”的情况。这是因为transformer是内存密集型的模型,并且内存要求也随序列长度而增加。所以如果能对模型的内存要求进......