大语言模型关于时间序列预测的文章和关于LLM做金融预测的文章
任务: 寻找大语言模型关于 时间序列预测的 文章 和 关于LLM做TS预测的文章
下面是我的总结:
所有的文章都是为了解决一个问题:TS数据和文本数据之间的对齐问题。
将时间序列(Time Series, TS)与LLM融合的方式有两条路线:
(1)LLM-for-TS:针对TS数据,从头开始设计并预训练一个基本的大型模型,然后为各种下游任务相应地微调模型;
(2)使用现有的预训练模型,仅创建一个TS专用的embedding层;
(3)使用现有的预训练模型,创建一个TS专用的embedding层,并对某些层进行简单微调
(4)使用现有的预训练模型,创建一个TS专用的embedding层,并对某些层进行简单微,提示学习。Prompt + 高效微调(lora)
总结:有用的Patching方法(这个就是为TS创建专用embedding层)、基于提示学习的方法、使用lora微调位置编码层和归一化层
下面是每一篇的文章:
-------------------------------------------------------------------------------------------------
1. 路线(1)
TimeGPT:第一个时间序列的大模型
知乎介绍 https://zhuanlan.zhihu.com/p/663615513
论文地址 https://arxiv.org/pdf/2310.03589.pdf
TimeGPT是一个预训练模型,
首个时间序列基础大模型
多层Encoder+Decoder组成
训练集:1000亿行的金融、天气、能源和网络数据。
评估指标包括相对平均绝对误差和相对均方根误差
2.路线(2)
TEST:Text Prototype Aligned Embedding to Activate LLM’s Ability for Time Series
中文标题:基于对比学习的时序数据embedding
知乎介绍 https://zhuanlan.zhihu.com/p/678655295
论文地址 https://arxiv.org/abs/2308.08241v1
创建一个新的embdeeing层,仅供TS数据使用
其它的数据如提示语进入之前LLM的embedding层
(1)将TS token化,并训练编码器的encoder,用对比学习表征TS tokens;
对比学习中:时间序列标记 和 文本标记词(大、小、上升、下降、稳定、波动) 在embedding层的向量相似度拉近或远离。
冻结原始LLM的所有参数,只训练新创建的embedding层。
损失函数 = 对比学习的损失函数
(2)然后使用prompt learning来训练提示词模板
3.路线(2)
One Fits All: Power General Time Series Analysis by Pretrained LM
知乎介绍 https://zhuanlan.zhihu.com/p/650863164
论文地址 https://arxiv.org/abs/2302.11939
使用LM大模型+微调时间序列,对时间序列的下游任务进行预测;
微调方法:
冻结原本LLM的所有参数
创建一个新的embedding层,仅供TS数据使用
新增加一个Normalization 层,输入是TS数据,输出是均值和方差,输出和新的embedding的TS的token拼接,输入到LLM中
因为LLM的上下文长度受限,使用 补丁Nie聚合相邻的方式保证输入给LLM的token的长度不变。
只调整新的embedding层。
4.路线(2)
Large Language Models Are Zero-Shot Time Series Forecasters
这篇文章:说的是一种构造新的embedding层的方法,仅供TS数据使用。
具体的方式:(具体我没看懂,但是应该挺简单的)
利用语言模型的条件概率建模数字,就是根据前面的数字预测下一位为各个数字的概率,是一种迭代的层次softmax结构,加上大模型的表征能力,可以适配各种各样的分布类型,这也是大模型可以以这种方式用于时间序列预测的原因。同时,模型对于下一个数字预测的概率,也可以转换成对不确定性的预测,实现时间序列的不确定性预估。
5.路线(2)
TIME-LLM: TIME SERIES FORECASTING BY REPROGRAMMING LARGE LANGUAGE MODELS
提出了一种reprogramming方法,将时间序列映射到文本,实现时间序列和文本这两种模态之间的对齐
具体实现方法为,首先将时间序列分成多个patch,每个patch通过MLP得到一个embedding。然后,将patch embedding映射到语言模型中的词向量上,实现时间序列片段和文本的映射和跨模态对齐。 这个patch就是文章9中的patching思想。
从图中可以看出:冻结了LLM的所有的参数,只调整了红框中的两部分。
6.路线(2)
Lag-Llama: Towards Foundation Models for Time Series Forecasting
核心包括特征层面和模型结构层面的设计
原始时间序列不同时间窗口的历史序列统计值,获得lag features
将 lag features 输入到 LLM 中
只调整llama模型中的normalization方式和position encoding,注意不是微调,是直接写死。LLM模型参数冻结。
修改模型的最后的输出层,拟合概率分布函数如高斯分布,获得freedom、mean、scale三个参数传入到MLP中,获得最后的结果
7.路线(2)
Spatial-Temporal Large Language Model for Traffic Prediction
交通预测,预测交通流量
新增embedding层仅用TS层
冻结前F层的LLM的所有参数,全量调F层后面的LLM的多头注意力层的参数
LLM的输出接入回归卷积层
8.路线(3)
LLM4TS:Two-Stage Fine-Tuning for Time-Series Forecasting with Pre-Trained LLMs
知乎介绍 https://zhuanlan.zhihu.com/p/652524958
论文地址 https://arxiv.org/pdf/2308.08469.pdf
注:因本文没有开源源代码,所以争议性很大。但确实是一篇好文章
PatchTST方法基于patching通道独立性的思想将多变量时间序列数据视为多个单变量时间序列,将单个序列划分成不同的patch。
首先通过监督微调将模型与时间序列的特性进行对其,引导LLM适应时间序列的数据;
接下来以下游预测任务为导向进一步对模型进行微调,从而保障不破坏语言模型固有特性的基础上使得模型能够更好地适配配各类不同域的数据和下游任务
专门为Ts创建的embedding层、
文章写了微调(分为两步:自回归的微调和下有任务的微调)、
使用lora和layer normalization turn 的方式进行微调、
9.路线(2)
A Time Series is Worth 64 Words: Long-term Forecasting with Transformers
知乎介绍 https://zhuanlan.zhihu.com/p/602332939
论文位置 https://arxiv.org/pdf/2211.14730.pdf
本文提出了Patching的思想,它可以将TS和文本数据对齐。很多文章都引用这个文章。
它们都是将时间序列分成若干个时间段(可以重叠,也可以不重叠),每一个时间段就是一个token,再加上位置编码,输入到Transformer的Encoder中,Encoder输出向量flatten得到预测头
本文还有其它的知识点(还没有认真的看):Channel-independence、自监督学习
- 路线(2)Preformer
论文地址 https://arxiv.org/pdf/2202.11356.pdf
本文提出了Preformer的思想,它可以将TS和文本数据对齐。
它们都是将时间序列分成若干个时间段,每一个时间段就是一个token
Preformer 是在 Patching前提出来的,效果没有Patching好。 Patching是根据这篇文章继续研究得出来的。
- 路线(3)
OFA:One Fits All:Power General Time Series Analysis by Pretrained LM
知乎介绍 https://zhuanlan.zhihu.com/p/664785806
论文地址 https://arxiv.org/abs/2302.11939
冻结预训练模型的embedding层和自注意力块
对位置嵌入和层归一化进行了微调
没有为TS数据专门重新创建embedding层
采用可逆实例归一化来解决实例分布变化影响大多数时间序列预测方法准确性的问题。这种方法通过计算输入时间序列的均值和方差进行归一化,然后将它们添加回输出
采用了缺失填充来提取局部语义信息。通过聚合相邻的时间步形成基于补丁的单个令牌,填充大大增加了输入的历史时间范围,同时保持了令牌长度相同并减少了转换器模型的冗余信息。
采用Patching的思想
- 路线(3)
PromptCast: A New Prompt-based Learning Paradigm for Time Series Forecasting
知乎介绍 https://zhuanlan.zhihu.com/p/673922129
论文地址 https://arxiv.org/pdf/2210.08964.pdf
基于提示的时间序列预测学习范式 PromptCast
通过提示此模板,将TS转换为文本信息
提出了一个方案,使用prompt turning或者p-turning的方式来对LLM进行微调,使LLM适应TS数据
- 路线(2)
TEMPO: Prompt-based Generative Pre-trained Transformer for Time Series Forecasting
Tempo:基于提示工程的预训练时序预测模型
知乎地址 https://zhuanlan.zhihu.com/p/675515880
论文地址 https://web3.arxiv.org/pdf/2310.04948.pdf
Tempo模型首先将复杂的时间序列解耦为趋势项、季节项和残差项,进一步将其映射到相应的隐藏空间,以构建GPT能够识别的输入。
Tempo构造了一个prompt池,为解耦得到的不同成分分配不同的提示词,使得模型利用历史信息来适应时间序列分布的变化。