arXiv | https://arxiv.org/abs/2412.09880
GitHub | https://github.com/pfnet-research/timesfm_fin
摘要:
本文通过评估最新时间序列基础模型 TimesFM 在价格预测中的表现,研究将市场价格视为时间序列大模型能否用于市场预测。由于价格数据的不规则性,直接应用 TimesFM 效果不佳,因此提出在金融数据上对 TimesFM 进行微调以完成价格预测任务。具体做法是,在包含 1 亿个时间点的价格数据上对最新时间序列基础模型 TimesFM 进行持续预训练,涵盖了小时和日粒度范围内的多种金融工具。
一、引言
预测市场长期以来一直是研究者们感兴趣的课题。使用预训练 LLMs 的优势在于,能够结合文本上下文与数值数据以提高预测准确性,并且得益于其强大的编码器/解码器结构,仅需调整嵌入层以适应数值时间序列数据,即可将 LLM 输出调校至时间序列预测任务。
TimesFM 是一个专门为时间序列预测任务从头训练的基础时间序列模型,在多个预测基准测试中达到了最先进的性能。然而,这些基准测试通常包含规律性和季节性数据,与我们感兴趣的金融数据大相径庭。
二、金融微调方法
2.1 TimesFM
在 TimesFM 中,输入的时间序列数据被分割成 i n p u t _ p a t c h _ l e n = l i input\_patch\_len=l_i input_patch_len=li 的输入片段,这些片段通过堆叠的 Transformer 层进行处理,从中预测出包含 o u t p u t _ p a t c h _ l e n = l o output\_patch\_len=l_o output_patch_len=lo 时间点的输出块。在这些 l o l_o lo 点上计算均方误差(MSE)损失:
T r a i n _ L o s s = 1 N ∑ j = 1 N M S E ( y ^ l i j + 1 : l i j + l o , y l i j + 1 : l i j + l o ) Train\_Loss=\frac{1}{N}\sum_{j=1}^N MSE(\hat{y}_{l_ij+1:l_ij+l_o},y_{l_ij+1:l_ij+l_o}) Train_Loss=N1j=1∑NMSE(y^lij+1:lij+lo,ylij+1:lij+lo)
通常设置 l i = 32 , l o = 128 l_i=32,l_o=128 li=32,lo=128,建议 l o > l i l_o>l_i