这几天亚马逊发布了一篇使用大模型做时间序列预测的工作,属于大模型在时序预测中的第一次探索,利用大模型提升金融场景预测中的多模态数据处理能力和可解释能力。这篇文章属于一个比较有意思的探索工作,思路可以借鉴,但是想要达到SOTA效果还有待进一步研究。下面给大家介绍一下这篇文章的建模思路。
论文标题:Temporal Data Meets LLM - Explainable Financial Time Series Forecasting
下载地址:https://arxiv.org/pdf/2306.11025v1.pdf
1、问题背景
金融领域是时间序列预测技术的一个重要应用场景。与普通的时序预测不同,金融领域的时间序列预测建模面对着更加复杂的挑战,而这些挑战可以使用大模型来解决,主要体现在以下3个方面。
第一点是如何建模复杂的序列间关系。在股价预测中,不同股票价格之间存在很强的依赖关系或关联关系,因此能否建模好序列间关系至关重要。大模型的序列建模能力和多序列关系建模很强,因此我们可以尝试将大模型这些能力应用到序列预测中。
第二点是对文本数据的处理能力。目前的金融场景时间序列预测问题,很多都重点研究如何处理金融资讯信息,融入到时间序列预测建模中。股价的波动很多程度上来源于金融资讯,只靠单纯的时间序列建模是无法涵盖全部信息的。这种多模态信息的有效引入,对于金融场景时序预测效果有很大帮助。大模型天然的具有强大的文本处理能力,因此自然成为这个问题的有力解决方案。
第三点是可解释性,这也是各个领域的深度学习模型都追求的一个点,如何让模型的预测结果更具可解释性,能让预测结果更有价值,指导我们的行动。大模型的可解释性也很强,例如通过思维链等方式让大模型生成给出答案的原因。
基于以上考虑,本文尝试了利用大模型做时间序列,同时解决上述3个问题。
2、实现方法
整体的建模方法主要包括对时间序列的处理、对文本信息的引入、prompt设计、基于Instruction Tuning的大模型微调4个部分。
时间序列处理:文中将时间序列通过离散化的方式转换为符号表示,文中的预测目标是纳斯达克100各个公司股票投资回报,即周期末相比周期初股价涨幅。文中将涨幅变成符号,比如D1代表跌1%以内,U2代表涨2%以内等等。处理成这种符号化的表示,方便输入到后续的大模型中。
文本信息引入:在文本信息方面,文中利用GPT4进行信息生成,包括公司的整体介绍、可能影响股价的优势和劣势等文本信息。此外,对于新闻资讯信息,使用GPT4进行摘要生成和关键字抽取,作为后续的输入。公司介绍和摘要生成的例子如下:
prompt设计:有了上述信息,整体的预测prompt如下图所示,输入包括离散化后的时间序列符号化表示、GPT4生成的公司简介、新闻摘要等信息,让大模型给出预测结果。
Instruction Tuning:只基于这种zero-shot的方式可能无法发挥大模型最强的能力,因此文中进一步采用了Instruction Tuning,使用上述方式构造30k的周预测和7k月预测数据,用开源的LLaMa模型进行Instruction Tuning。(关于Instruction Tuning在之前的文章有过多次介绍,本质上就是将任务转换成文本,以语言模型为目标微调大模型)
3、实验结果
下表是文中的实验结果,主要对比大模型之间的效果,以及其与一些简单时间序列预测方式的效果差异。整体来看,用大模型进行这种粗粒度预测是可行的,同时GPT4的效果非常显著,GPT4的few-shot效果要优于基于LLaMa的instruction tuning方法。
4、总结
大模型在序列数据上的应用,是一个值得研究的点。文中通过这种离散化时间序列的方式,进行基于大模型的预测,是有潜力改变金融场景时间序列预测范式的一个方式。