论文笔记 | PromptCast: A New Prompt-based Learning Paradigm for Time Series Forecasting


前言

这篇论文的核心思想就是把原始的时序数据转换成文本提示,对大模型进行微调,通过对话的方式进行预测。
笔者是根据原文逐一翻译并阅读,文章可能有点长,有需要的可以直接看对应部分。这也是笔者第一次分享论文笔记,有不好的地方还请读者多见谅。

Paper:https://arxiv.org/abs/2210.08964
Code :https://github.com/HaoUNSW/PISA
参考解读 知乎:https://zhuanlan.zhihu.com/p/673922129


一、Abstract

原文翻译:
本文提出了时间序列预测的新视角。在现有的时间序列预测方法中,模型以数值序列作为输入,以产量数值作为输出。现有的SOTA模型主要基于Transformer体系结构,并使用多种编码机制进行了修改,以便将历史数据周围的上下文和语义结合起来。受预训练语言基础模型成功的启发,我们提出了一个问题,即这些模型是否也可以适用于解决时间序列预测。
因此,我们提出了一种新的预测范式:基于提示的时间序列预测(PromptCast)。在这个新颖的任务中,数字输入和输出被转换成提示,预测任务以句子对句子的方式框架,使得直接应用语言模型进行预测成为可能。为了支持和促进这项任务的研究,我们还提出了一个大型数据集(PISA),其中包括三个现实世界的预测场景。我们评估了不同的基于数字的SOTA预测方法和语言生成模型。各种预测设置的基准测试结果表明,基于语言生成模型的PromptCast是一个很有前途的研究方向。
此外,与传统的基于数值的预测相比,PromptCast在零采样设置下表现出更好的泛化能力。

二、Introduction

背景

时间序列预测是一个研究密集型的领域,特别是随着各种深度学习框架的应用越来越多,如基于LSTM、基于Temporal Convolutional Network (TCN)和Transformer的模型。最近,我们在自然语言处理(NLP)领域见证了大规模预训练模型的快速增长,然而,我们也注意到,大模型主要局限于NLP和CV领域。
提出问题:是否可以利用大规模预训练的基础模型,并使这些模型适应于预测时间序列。为了研究这个问题,在本文中,我们正式引入了一个新的任务:基于提示的时间序列预测(PromptCast)。

概念框图

概念说明:(a)现有数值预报方法的典型框架;(b)建议的PromptCast的架构;(c)基于PromptCast的潜在预测聊天机器人应用现有的研究方法,包括最先进的基于Transformer的预测模型可以简化为如图1(a)所示,将时序数据(数值)输入Transformer模型中通过编码解码获得预测结果。
相反,本文提出的基于提示的预测(图1 (b))的输入和输出是自然语言句子。这种范式的改变使得可以利用语言生成模型进行预测。

贡献

我们的贡献有三个方面:
(1)我们提出了一种新的基于提示的预测范式,它不同于现有的预测方法。这是第一次以自然语言生成的方式解决一般时间序列预测问题。
(2)针对新引入的任务,我们发布了一个包含311,932个数据实例的大规模数据集(PISA)。该数据集涵盖了不同的时间序列预测场景。
(3)我们在拟议的PISA数据集上开发了一个基准(我们的基准数据和代码可在https:// github.com/HaoUNSW/PISA获得)。它评估了最先进的基于数字的预测方法和流行的语言生成模型。

三、DATASET DESIGN AND DESCRIPTION

论文的关于数据集这一章主要包括:
(1)预处理以数字格式给出的原始数据(原始数据),用于预测任务设置(第III-A节);
(2)将数字数据转换为带有提示的自然语言输入/输出格式(第III-B节)。我们还描述了特征和统计数据(第III-C节)

Data Sources and Processing

数据集来自不同领域的三个现实世界预测场景(PISA数据集的3个子集):天气预报、能源消耗预测和人类流动性预测。
City Temperature (CT):全球多个城市的日平均温度(以华氏度为单位)。该数据集是随机抽取的110个国际城市。
Electricity Consumption Load (ECL):原始数据包括321个用户的用电量(千瓦时)。我们排除了记录不完整的用户,并随机选择了50个数据完整的用户作为整个集合,每个选定用户的每小时使用值被合并为每日使用数据。
SafeGraph Human Mobility Data (SG): 记录的每日访问POI的访客数,随机选择了324个记录完整的POI15个月的访客数。
详细数据介绍,以及训练集、验证集、测试集划分(7:1:2)可以看下表
在这里插入图片描述
输入序列长度为15,输出为1,(前15个数据预测后1个数据)
为了区分用于数值方法的数值数据和用于语言模型的基于语言的数据集,由上述滑动窗口处理的数值序列称为PISA-numerical,而另一个称为 PISA-prompt (参见下一小节)。

Template-Based Prompting

使用基于模板的描述是实现数据到文本转换的一种有效且高效的方法。在这项工作中,我们明确地为三个子集引入了三个模板,表1列出了模板和相应的示例。
在这里插入图片描述
模板由两个主要部分组成:
输入提示符:包括历史观测的描述和预测目标时间步长的指标,可以分为上下文部分和问题部分。上下文提供了用于预测的历史信息,问题部分可以看作是关于未来的输入查询。
输出提示符:处理所需的预测值,输出提示符是对问题作出响应的基本事实答案(用作训练或评估的基础真值标签)基于模板和处理过的数字序列,然后生成pisa提示符。

从官方代码中查看数据集(以CT为例)

  • 输入:
From May 01, 2019, Wednesday to May 15, 2019, Wednesday, the average temperature of region 1 was 54, 58, 53, 59, 56, 58, 58, 63, 57, 63, 65, 53, 46, 48, 56 degree on each day. What is the temperature going to be on May 16, 2019, Thursday?
  1. 输出:
The temperature will be 64 degree.

四、BENCHMARK

在本节中,我们将对提议的PromptCast任务进行基准测试研究和分析。通过对已建立的PISA数据集进行实验,我们旨在解决以下两个主要研究问题:
RQ1:我们可以使用语言生成模型来预测时间序列吗?与传统的基于数字的时间序列预测方法相比,我们的PromptCast的性能如何?
RQ2:使用提示预测时间序列以及使用语言生成模型是否可以获得更好的泛化能力?

Evaluation Metrics

首先是将数据集数值变为文本(从生成的句子中提取预测的数值),引入缺失率作为一个评估指标,定义为 ( n t e s t − n d e c o d e d ) / n t e s t × 100 % ({n_{{\rm{test}}}} - {n_{{\rm{decoded}}}})/{n_{{\rm{test}}}} \times 100\% (ntestndecoded)/ntest×100%其中 n t e s t {n_{{\rm{test}}}} ntest n d e c o d e d {n_{{\rm{decoded}}}} ndecoded分别是测试集中实例的总数,以及能够成功解码预测值的生成实例的数量。
在提取预测数值后,对PromptCast任务的评估将类似于传统的基于数值的预测方法的评估。
指标:均方根误差(RMSE)和平均绝对误差(MAE)

Baselines

  1. 我们在我们的PISA数据集(即PISA-prompt)上测试了10个流行的自然语言生成模型的性能。这些语言模型是T5、Bart、BERT、RoBERTa、Electra、Bigbird、ProphetNet、LED、blendbot和Pegasus。

为了进行比较(RQ1),还包括传统数值范式预测方法在PISA-numerical上的表现。

  1. 我们考虑了3种朴素预测方法:Copy Yesterday(CY), Historical Average (HA), and Copy Last Week (CLW).
  2. 还考虑了3种基本的数值预测方法:AutoARIMA、LSTM和时间卷积网络(TCN)。
  3. 还包括基于Transformer的预测方法,包括vanilla Transformer、最先进的Informer、Autoformer和FEDformer。

Implementation Details

  • 对于评估的数值预测方法
    其实现基于官方的FEDformer4存储库,该存储库还包括Transformer、Informer和Autoformer的实现。(这里笔者没有详细去看这些库的使用,论文对于一些参数的说明就没有列举出来,有兴趣的可以自己去看看)
  • 对于基准测试中的语言模型
    分为两种:
    1.第一类遵循EncoderDecoderModel框架: BERT, RoBERTa, Electra
    2.第二类是HuggingFace中的ConditionalGeneration框架:其余7种模型
    微调过程是基于HuggingFace提供的标准Trainer(应用sequence-to-sequence训练器),没有对损失函数进行任何修改

我们想强调的是,语言模型和数值预测方法在我们的基准中得到了平等和公平的对待和处理。PromptCast也没有特定的超参数调优。对于语言模型和数值模型,我们都使用官方实现提供/推荐的默认设置。

Experimental Performance

  • Numerical-Based Methods:对于transformer中的temporal embeddings 本文充分研究和测试了三种不同的嵌入方法,即timeF、fixed和learned。结果如表三所示:
    在这里插入图片描述
    结果分析
    一般来说,FEDformer, Informer和Autoformer在不同的子集中达到最佳性能。在大多数情况下,这些先进的时间序列预测框架优于普通的Transformer、朴素的方法和非Transformer方法。
    对于不同的嵌入,the fixed embedding 总体上表现出良好的性能。

  • Pre-trained Language Models:
    使用HuggingFace提供的现成的预训练权值进行初始化。配置细节如表6所示,根据表中给出的模型密钥,可以从HuggingFace访问和下载相应的预训练模型。
    在这里插入图片描述
    原始的预训练模型不包括PISA数据集,这也防止了潜在的数据泄露。在实验中,每个语言模型都使用PISA中每个子集的训练集进行微调。结果如表四所示:
    在这里插入图片描述
    结果分析:
    Bigbird在6个指标中的4个上表现最佳,联合表三一起分析,可以看到使用语言模型在CT和ECL子集上的表现相当好,对于ECL来说,虽然使用语言模型的MAE比表III中的最佳表现略差,但RMSE有相对较大的改进。与数值方法相比,使用语言模型也能得到相当的结果。 该基准回答了RQ1,并表明基于提示的语言模型预测是时间序列预测研究的一个有前途的方向。
    缺失率:
    表五显示了结果,只有三种方法(ProphetNet, Electra和BERT)有少量(小于0.5%)的缺失例子(表中没有显示的表示没有缺失),研究发现失败案例是相关的,并且可能是由负值引起的。
    在这里插入图片描述

  • Performance of ChatGPT:
    使用相同的PISA子集来评估GPT-3.5(未进行微调),在评估过程中,我们使用来自PISA测试集的输入提示作为查询,并收集来自API的响应。表8总结了GPT-3.5的最终性能。
    在这里插入图片描述
    结果分析:
    GPT-3.5在所有三个子集中都显示出更高的RMSE和MAE值。从表中,我们也可以清楚地注意到GPT3.5有很大的缺失率,特别是在SG子集上。

others

文章还做了很多实验,包括Training From Scratch、Zero-shot Performance、Prompts Ablation Study等,这里笔者暂时没有细读,大家有兴趣可以自己去读一读。

五、 DISCUSSION AND CONCLUSION

本文介绍了一个新的任务PromptCast,它利用语言模型以语言生成的方式来预测时间序列。由于这是关于PromptCast任务的第一个工作,并且没有现有的数据集适合,因此我们构建了第一个数据集PISA来研究基于提示的预测。
这个大规模的数据集包含三个真实世界的时间序列预测场景。为了进一步推进PromptCast的研究,我们还在发布的数据集上建立了一个基准,并提供了一套强大的基线,包括最先进的数值预测方法和语言生成模型。实验结果表明,在PromptCast设置中使用语言模型具有良好的预测性能和泛化能力。

同时讨论了未来研究的一些潜在方向
(1)自动提示:本文通过模板实现数值数据到文本的转换。尽管基于模板的提示是有效的,但是很难产生不同的提示,并且固定的模板可能会引入偏差(对某些模板的偏差)。开发自动时间序列提示或时间序列字幕(类似于图像字幕),它利用生成模型来描述时间序列数据。
(2)可解释性:研究为什么为语言建模任务设计的模型能够预测时间序列。

  • 29
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值