社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

TFT:一种可以解释时间序列预测结果的深度学习模型

kaggle竞赛宝典 • 4 年前 • 1132 次点击  

 

↑↑↑关注后"星标"kaggle竞赛宝典

  kaggle竞赛宝典技巧 
作者:雨夜,文章摘自时序人

TFT:一种可以解释时间序列预测结果的深度学习模型

简介

多水平预测,即在未来多个时间步预测感兴趣的变量,是时间序列机器学习中的一个关键挑战。大多数现实世界的数据集都有时间成分,预测未来可以释放巨大的价值。

例如,零售商可以利用未来的销售额来优化他们的供应链和促销活动,投资经理有兴趣预测金融资产的未来价格以最大化他们的业绩,医疗机构可以利用未来的入院人数来拥有足够的人员和设备.

深度神经网络(DNN)越来越多地用于多层面预测,与传统时间序列模型相比,表现出强大的性能改进。虽然许多模型(例如DeepAR、MQRNN)都专注于循环神经网络( RNN ) 的变体,但最近的改进,包括基于 Transformer 的模型,已经使用基于注意力的层来增强过去对相关时间步长的选择。

RNN 的归纳偏置——信息的顺序有序处理,包括。然而,这些通常不考虑多层面预测中普遍存在的不同输入,或者假设所有外生输入 未来已知或忽略重要的静态协变量。


此外,传统的时间序列模型受许多参数之间复杂的非线性相互作用控制,因此很难解释这些模型是如何得出预测的。不幸的是,解释 DNN 行为的常用方法有局限性。例如,事后方法(例如,LIME和SHAP)不考虑输入特征的顺序。提出了一些具有内在可解释性的基于注意力的模型对于顺序数据,主要是语言或语音,但多层面预测有许多不同类型的输入,而不仅仅是语言或语音。

基于注意力的模型可以提供对相关时间步长的洞察,但它们无法区分给定时间步长不同特征的重要性。需要新方法来解决多层面预测中数据的异质性以实现高性能,并使这些预测具有可解释性。

为此,本文介绍一篇发表在International Journal of Forecasting 上的“用于可解释多水平时间序列预测的时间融合变换器”,其中提出了时间融合变换器 (TFT),一种基于注意力的 DNN 模型,用于多水平预测。TFT 旨在将模型与通用多水平预测任务明确对齐,以实现卓越的准确性和可解释性,作者在各种用例中展示了这一点。



时间融合变换器


TFT 旨在有效地为每种输入类型(即静态、已知或观察到的输入)构建特征表示,以实现高预测性能。TFT的主要成分(如下所示)是:


  1. 跳过模型的任何未使用组件(从数据中学习)的门控机制,提供自适应深度和网络复杂性以适应广泛的数据集。


  2. 变量选择网络在每个时间步选择相关的输入变量。虽然传统的 DNN可能会过度拟合不相关的特征,但基于注意力的变量选择可以通过鼓励模型将大部分学习能力锚定在最显着的特征上来提高泛化能力。


  3. 静态协变量编码器集成了静态特征来控制时间动态的建模方式。静态特征可能对预测产生重要影响,例如,商店位置可能具有不同的销售时间动态(例如,乡村商店可能会看到更高的周末客流量,但市中心商店可能会在下班后看到每日高峰)。


  4. 从观察到的和已知的时变输入中学习长期和短期时间关系的时间处理。序列到序列采用层用于本地处理,因为它具有用于订购信息处理归纳偏置是有益的,而长期依赖性使用新颖的可解释的多头关注块捕获。这可以缩短信息的有效路径长度,即可以直接关注具有相关信息(例如去年的销售额)的任何过去时间步长。


  5. 预测区间显示分位数预测,以确定每个预测范围内的目标值范围,帮助用户了解输出的分布,而不仅仅是点预测。



作者将 TFT 与用于多水平预测的各种模型进行比较,包括具有迭代方法(例如DeepAR、DeepSSM、ConvTrans)和直接方法(例如 LSTM Seq2Seq、MQRNN)的各种深度学习模型,以及传统的模型如ARIMA,ETS和TRMF。TFT 在各种数据集上的表现优于所有基准测试。这适用于点预测和不确定性估计,与次优模型相比,TFT 的 P50 损失平均降低 7%,P90 损失平均降低 9%。


可解释性用例

‍‍‍‍


作者展示了 TFT 的设计如何允许分析其各个组件,以通过三个用例增强可解释性。

变量重要性
人们可以通过观察模型权重来观察不同变量如何影响零售销售。例如,静态变量的最大权重是特定的商店和商品,而未来变量的最大权重是促销期和国定假日(如下所示)。


持久时间模式
可视化持久时间模式有助于理解给定数据集中存在的时间依赖关系。我们通过测量过去在不同范围内的预测中固定滞后的特征的贡献来识别类似的持续模式。如下所示,注意力权重揭示了 TFT 决策所依据的最重要的过去时间步长。


上面显示了随时间变化的注意力权重模式,表明 TFT 如何在没有任何硬编码的情况下学习持久的时间模式。这种能力有助于与用户建立信任,因为输出确认了预期的已知模式。模型开发人员还可以将这些用于模型改进,例如,通过特定的特征工程或数据收集。


识别重大事件


识别突然的变化可能很有用,因为重大事件的存在可能会导致暂时的转变。TFT 使用每个点的注意力模式与平均模式之间的距离来识别显着偏差。下图显示 TFT 可以在事件之间改变其注意力——当波动率较低时,对过去的输入给予同等的关注,而在高波动期间更多地关注急剧的趋势变化。


在高波动期附近可以观察到注意力模式的显着偏差,对应于在 dist(t) 中观察到的峰值,注意力模式之间的距离(红线)。我们使用阈值来表示重要事件,如紫色突出显示。

关注2008 年金融危机前后的时期,下面的底部图放大了重大事件的中途:从对急剧趋势变化的关注度增加可以看出,与顶部图中的正常事件相比(在低波动时期的关注度相同)。




总结


作者提出了一种新的基于注意力的模型,用于高性能多水平预测。除了在一系列数据集上提高性能外,TFT 还包含用于固有可解释性的专门组件——即变量选择网络和可解释的多头注意力。通过三个可解释性用例,我们还展示了如何使用这些组件来提取对特征重要性和时间动态的见解。


作者将TFT 用于通过提高预测准确性和提供可解释性功能来帮助零售和物流公司进行需求预测。此外,TFT 还具有应对气候相关挑战的潜在应用:例如,通过实时平衡电力供需来减少温室气体排放,以及提高降雨预测结果的准确性和可解释性。



Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/127211