23- TIME-LLM: TIME SERIES FORECASTING BY REPRO- GRAMMING LARGE LANGUAGE MODELS
解决问题
用LLM来解决时序预测问题,并且能够将时序数据映射(reprogramming)为NLP token,并且保持backbone的大模型是不变的。解决了时序序列数据用于大模型训练数据稀疏性的问题。
方法
Input Embedding
输入:
X
N
∗
T
X^{N*T}
XN∗T,首先对
X
i
X_i
Xi进行均方差归一化,再对
X
i
X_i
Xi进行类似卷积操作的分块,每个分块长度为
L
p
L_p
Lp, 滑动步长为
s
s
s,那么分块后新的序列长度为
再将
X
p
∈
P
∗
L
p
X_{p}\in{P*L_p}
Xp∈P∗Lp通过线性映射层映射为
X
p
∈
P
∗
d
m
X_{p}\in{P*d_m}
Xp∈P∗dm(相当于将每个段时序信息的数据映射为一个embeding,来描述该时段的信息)。
Patch Reprogramming
将时序数据进行数据对齐,为nlp能理解的信息
文中学习一个
E
′
∈
V
′
∗
D
E'\in{V'*D}
E′∈V′∗D, 其中
V
′
V'
V′远小于原词典大小,这样可以提升效果。
E
′
E'
E′在模型中进行学习,学习词典与path的相关性信息。
再将
E
′
E'
E′作为attention中的V和K,path embedding作为attention中的Q,这样就可以得到path与每个nlp token之间的相关性。
Prompt-as-Prefix.
同时在序列特征前面构造一些提示词信息,来帮助学习。
在打包和前馈时,prompt and patch嵌入
O
i
O_i
Oi, 通过如图2所示的冻结LLM,我们丢弃前置Prompt-as-Prefix部分并获得输出表示。在此之后,将它们展平并线性投影,以得出最终预测
Y
i
Y_i
Yi. (丢弃指得是只用他们来计算attention吗,最终输出的embedding表示丢弃掉?)
整体结构
其中LLM是冻结的
实验
在few-shot(减少训练集数量)和zero-shot(训练集和测试集不同)都进行了评估,都获得了很好的效果
Reprogramming Interpretation
可以看出,在经过充分的学习之后,不同的patch有不同的语意含义,需要不同的原型来表示。
可以借鉴的点
- 对序列特征进行滑动窗口的划分,每段有不同的含义,生成对应的embedding
- 通过学习与nlp词典的相关性来减少词表大小,加速训练
原文地址:https://blog.csdn.net/yinyu19950811/article/details/145164712
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!