经常使用Transformer来启动时序预测可还行

大言语模型的成功充沛证实了Transformer架构的先进性,越来越多的人宿愿把它运行到其它畛域,而非NLP畛域自身,因此也催生了以一套Transformer架构一致各种模态的钻研热点。

而在工业界有一个十分经常出现的场景却鲜有触及,那就是结构化数据的时序预测类场景,理论以为这种模式应用统计和经典回归类模型就曾经足够了,并且确真实过去的钻研来看,以Transformer为代表的,在NLP,CV等方面大杀四方的深度学习模型在这方面体现也并不够杰出。

但这并不示意学术界和工业界没有在这方面有尝试,甚至可以说,这或许会是下一个爆点。当天咱们就围绕这个话题做一些便捷引见。

应用Transformer来启动时序预测,有两个大的方向,一个是针对下游义务训练一个专有义务模型,另一个是做预训练通用大模型。

这类思绪起步较早,以N-BEATS、N-HiTS、PatchTST和TimesNet,以及最近清华与蚂蚁金服出的iTransformer为代表,试图经过各种手腕来适配时序预测场景。它们大体可以依据能否修正组件和架构分为四类。

第一类是最基本的做法,不扭转架构,但改良组件以顺应场景,特意是用于期间依赖性建模的留意力模块和长序列的复杂性优化,以autoformer,informer为代表。但是,适配老本较高,功能也备受线性预测器应战。

第二类是在不扭转结构和组件的状况下充沛应用Transformer的个性优化模型功能,以PatchTST为代表。它更关注期间序列的固有处置,如颠簸化、通道独立性和修补,从而带来继续改良的功能。此外,面对多个变量的独立性和相互作用的日益关键。

第三类在组件和架构均对Transformer启动变革,以CrossFormer为代表。经过变革的留意力机制和架构明白地捕捉到跨期间和跨变量的依赖性。

第四类是仅调整架构,并不扭转transfomer原生组件,钻研者以为并不是这些组件不好,而是经常使用模式不当造成的,以itransformer为代表。

值得一提的是,传统的Transformer模型在期间序列预测中存在功能降低和计算爆炸的疑问,同时关于具备较大回溯窗口的序列预测也存在应战。此外,传统的Transformer模型将每个期间步的多个变量嵌入到同一个标志中,或许造成学习到的留意力有意义。作为这一方向最新停顿的代表,iTransformer经过不同的嵌入模式和编码模式,能够更好地处置多元关系性,在没有修正Transformer的任何原生组件的条件下,而是经过全新的倒置视角来成功更好的预测功能,对PatchTST(SOTA)提出了应战。

这一思绪显然遭到了GPT-3这样的通用大言语模型的启示,尝试经过预训练一个大模型,能够在zero-shot下启动时序预测。这一方向听起来十分的时尚,也同时存在渺小的危险,业内关于这样的模式也褒贬不一。其中一个最大的限度就是它很难找到像大言语模型所须要的海量的高品质训练数据。另外,不同畛域的疑问也很难像言语、图片,视频那样具备泛化性。

这一方向典型代表是TimeGPT,它是由Nixtla提出的,是一个基于Transformer的期间序列模型,驳回历史值窗口来启动预测,并减少本地位置编码来丰盛输入。该模型经过捕捉过去事情的多样性,进而正确地推断潜在的未来散布。它驳回了地下可用的最大期间序列数据集启动训练,蕴含超越1000亿个数据点。这个训练集涵盖了来自金融、经济、人口统计、医疗保健、天气、物联网传感器数据、动力、网络流量、开售、交通和银行业等宽泛畛域的期间序列。因为这种多样化的畛域汇合,训练数据集蕴含了具备各种特色的期间序列。和timeGPT同类型的还有EarthPT,一个用于地球观测的期间序列基础模型。

须要说明的是,TimeGPT并不是间接基于现有的大型言语模型。只管TimeGPT遵照在少量数据集上训练大型Transformer模型的准则,但其架构专门为用于处置期间序列数据而设计,经过训练后,旨在最小化预测误差。详细成功方法论文语焉不详,有人猜想是应用patchTST或许NHITS成功。

下表是其论文中提到的功能对比:

另一个直观的功能比拟是,应用相反的数据集(marcopeix/time-seriesanalysis/blob/master/data/medium_views_published_holidays.csv),微调TimeGPT与驳回N-BEATS, N-HiTS 和 PatchTST 这样的第一类方法训练的模型启动比拟。从结果看,经过便捷微调的TimeGPT体现比PatchTST更好,取得了第一。

详细试验可参考:

另外,TimeGPT作为一个商业模型,提供了完备的经常使用文档,可以在其模型上预估和微调自己的时序模型。

nixtla_client = NixtlaClient(# defaults to os.environ.get("NIXTLA_API_KEY")api_key = 'my_api_key_provided_by_nixtla')# df: A pandas, target_col='value',)#微调timegpt_fcst_finetune_df = nixtla_client.forecast(df=df, h=12, finetune_steps=10,time_col='timestamp', target_col='value',)

更多可参考:

综上,可以看出目前基于transformer的时序预测畛域尚处于早期阶段,两种思绪谁更优尚无法判别,能否取代传统机器学习模式也无定论,但可以必需的是,未来必需会有更多人关注这一畛域,或许随着数据和方法的始终完备,产生一个相似ChatGPT这样的新物种也未尝无法能。

本文转载自​​,作者:

您可能还会对下面的文章感兴趣: