背景介绍
- 时间序列预测与其他序列建模问题(如文本、音频或视频)类似,但有两个特别的挑战。不同于视频或音频通常具有一致的输入规模和采样率,聚合的时间序列数据集通常包含来自截然不同来源的序列,有时还包含缺失值。
- 时间序列预测的常见应用,如天气或金融数据,需要从只含有一小部分可能信息的观察结果中进行外推,这使得精确的点预测几乎不可能,并使得不确定性估计尤为重要。
- 尽管大规模预训练已成为训练大型视觉和文本神经网络的关键元素,使得性能可以直接随数据可用性扩展,但预训练通常不用于时间序列建模,在这一领域中,没有共识的无监督学习目标,且大型、统一的预训练数据集并不容易获得。
- 因此,在流行的基准测试中,简单的时间序列方法(如ARIMA和线性模型)通常会胜过深度学习方法。
- 在本文中,我们展示了大型语言模型(LLM)如何自然地弥合传统方法的简单偏见与现代深度学习的复杂表征学习和生成能力之间的差距。
- 我们引入了一种极其简单的方法LLMTIME2,将预训练的LLMs应用于连续时间序列预测问题,如图1所示。该方法的核心是将时间序列表示为数字串,并将时间序列预测视为文本中的下一个标记预测,从而开启了使用大型预训练模型的可能性。
相关工作
时间序列数据通常与语言模型数据的形式非常相似,都是由一系列的序列构成。但时间序列中的 是数值型数据。由于语言模型旨在表示序列上复杂的概率分布,从理论上讲,它们非常适合于时间序列建模。然而,在实践中,将语言模型应用于数值数据时会受到数字标记化(tokenizing)细节的限制。字节对编码(Byte Pair Encoding, BPE)会基于在训练数据中出现的频率来压缩数字,这可能导致数字被分解成不易于学习基本数值操作的笨拙块。因此,Touvron 等人设计了LLaMA标记器,将数字映射到各个数字上,这可以在数学能力方面带来显著的提升,即使是小型LLaMA模型也能超过GPT-4的表现
-
使用预训练的语言模型编码器:一些研究提出了将预训练的语言模型编码器用作时间序列模型的初始配置。例如,Zhou等人提出了FPT,它微调一个BERT编码器来执行时间序列预测。同样,Zhang等人介绍了Meta-Transformer,这是一个用于微调语言模型以适应非文本模态的框架,包括时间序列。
-
不需要微调的LLMs作为预测器:有较少的研究探索了不通过微调直接使用LLMs进行预测的方法。作者知道的唯一方法是PromptCast,它通过提示(prompting)将预测问题设定为问答任务
-
本工作的特点:与其他利用LLM骨干结构的方法不同,作者的方法完全是零样本(zero-shot)的,不需要微调。与PromptCast不同,作者展示了LLMs可以直接用作预测器,而无需添加任何文本或提示工程,只要我们仔细地预处理数值本身。作者的方法仅依赖于LLM推断一般序列中模式的能力,并不特定于英语或任何其他语言。
-
超越先前的工作:作者还开发了利用大型语言模型的概率本质及其捕获高度随机时间序列不确定性的能力,这超越了之前的工作
方法设计
-
数字预处理(Tokenization):
- 标记化对于形成标记化序列中的模式以及语言模型能够学习的操作类型至关重要。
- 常见的标记化方法(如BPE)往往会将一个数字分解成与数字位数不对齐的标记,这可能会使得算术变得更加困难。例如,数字42235630在GPT-3标记器中可能被分解为[422, 35, 630]。
- 为了改进GPT模型的标记化问题,作者将数字之间用空格分开,以迫使每个数字单独进行标记化,并使用逗号来分隔时间序列中的每个时间步。由于给定固定精度后小数点是多余的,所以在编码时会丢弃它们以节省上下文长度。
-
重新缩放(Rescaling):
- 当输入值非常大时,为了避免浪费标记,作者将值缩小,使得重新缩放的时间序列值的α-百分位数为1。
- 避免按最大值缩放,以便LLM能看到一些示例(1−α),其中数字的位数发生变化,并在其输出中复制这种行为,以产生比它看到的值更大的值。
- 作者还尝试使用基于输入数据的百分位数计算的偏移量β,并在验证对数似然上调整这两个参数。
-
采样/预测(Sampling / Forecasting):
- 为了进行预测,从LLM中抽取多个样本(例如20个),并使用每个时间步的样本统计数据来构建点估计(例如中位数)或概率预测(例如分位数)。
- 为了控制采样,作者使用温度缩放、对数偏差和核采样。
-
连续似然(Continuous likelihoods):
- 将个别数字序列建模除了能提供好的样本外,还有额外的好处。
- 在基数B下,每个小数点后n位数字的序列对应B的n次方可能的箱子,每个箱子的宽度为B的−n次方。
- 由于每个分布p(uj∣u0:j−1;θ)是在可能的数字上的softmax,我们可以将每个单独数字上的分布视为一个分层softmax,即p(u1,...,un)=p(un∣un−1,...,u0)⋅p(u1∣u0)⋅p(u0)。
- 虽然语言模型的概率分布是离散的,但我们可以轻松地将其适应为提供连续概率分布。
-
划分区间(Bins):
- 我们将连续的数值范围划分成很多小的区间(bins),每个区间代表一个可能的数字序列。
- 假设我们使用基数B 和 n 位数字的精度,那么每个区间就有 B^-n的宽度。
-
均匀分布:
- 在每个区间内,我们假设数值是均匀分布的。这样,每个区间就像是一个小桶(bin),桶里的数值都是等概率出现的。
-
混合分布:
- 我们将这些均匀分布的桶组合成一个混合分布。每个桶都有一个概率pk,这个概率表示数值落入该桶的概率。
-
连续概率密度函数(Continuous Probability Density Function):
- 这个混合分布可以被写作p(x)=∑k∈NpkUk(x),其中Uk(x) 是一个指示函数,表示数值x 是否落在第k 个桶内。
-
连续对数似然(Continuous Log Likelihood):
- 如果一个数据点落在第k 个桶里,它的连续对数似然就是
-
变量变换(Change of Variables):
- 为了将这个连续概率密度函数转换回原始的输入空间,我们需要加上一个变量变换因子。这个因子是
-
结果:
- 尽管我们的模型原本是用来处理离散的数字序列,但通过上述构建,我们可以用它来高效地表示连续数据的概率分布,而且分辨率很高
实验
评估Zero-Shot的表现
-
Darts 数据集:
- 包括 8 个真实的单变量时间序列数据集。
- Darts 包内实现了多种方法,包括神经网络模型(例如 TCN、N-BEATS、N-HiTS)和简单移动平均模型(例如 ARIMA)。
- Darts 支持带有易于处理的似然性的观测模型学习,特别适合用来基准测试 LLMTIME 的概率预测。
-
Monash 预测归档:
- 包含 30 个公开可用的数据集以及 12 个预测模型的基线性能数据,包括简单的指数平滑(例如 ETS)、梯度提升(例如 CatBoost)和深度学习模型(例如 DeepAR、WaveNet)。
- Monash 归档包含超过 400,000 个个别时间序列,对于最大的可用语言模型来说,使用整个数据集进行评估是不可行的。
- 为了降低计算负担,作者评估了 GPT-3 在基线模型表现最好的前 16 个数据集上的零样本(zero-shot)性能。
-
Informer 数据集:
- 评估了用于基准测试高效 Transformer 模型的广泛使用的多变量数据集。
- 为了用 LLMTIME 预测多变量数据,作者独立预测了每个协变量。
- 他们使用 Autoformer 和 FEDFormer 代码库的公共实现作为基线对比。