“Enhancing Financial Time-Series Forecasting with Retrieval-Augmented Large Language Models”
金融时间序列预测对市场稳定和效率至关重要,影响投资策略、风险管理和经济政策。股票价格变动预测是主要任务,准确预测对各类投资者和金融机构至关重要,但市场的复杂性和波动性增加了预测难度。
本文提出首个专为金融时间序列预测设计的检索增强生成(RAG)框架FinSeer。FinSeer包含三大创新:1) 以1B大语言模型(StockLLM)为基础;2) 通过LLM反馈增强的新候选选择方法;3) 最大化查询与历史重要序列相似性的训练目标。
实验表明,FinSeer优于单独的StockLLM和随机检索,FinSeer在BIGDATA22上准确率提高8%,并能检索到更具影响力的序列。
摘要
本文提出首个专为金融时间序列预测设计的检索增强生成(RAG)框架。框架包含三大创新:
-
以1B大语言模型(StockLLM)为基础;
-
通过LLM反馈增强的新候选选择方法;
-
最大化查询与历史重要序列相似性的训练目标。
FinSeer能够有效识别金融数据中的有意义模式,减少噪声。构建新数据集,整合金融指标与历史股价以支持评估。实验结果显示,RAG框架在BIGDATA22基准上比基线StockLLM和随机检索方法提高8%准确率,检索到更具影响力的序列。强调定制检索模型在金融预测中的重要性,为未来研究提供新框架。
简介
金融时间序列预测对市场稳定和效率至关重要,影响投资策略、风险管理和经济政策。股票价格变动预测是主要任务,准确预测对各类投资者和金融机构至关重要,但市场的复杂性和波动性增加了预测难度。
传统方法依赖于价格和金融指标序列分析,未能有效捕捉序列间的语义联系,而大型语言模型(LLMs)在此方面表现优异。LLM方法多集中于文本数据(如新闻、推文),忽视了历史时间序列数据的深层次信息,需整合金融时间序列数据。现有的检索增强生成(RAG)方法难以直接应用于金融时间序列检索,主要因嵌入式检索方法对数值数据处理不足,且基于距离的检索方法无法捕捉语义关系。
本文提出金融时间序列检索器(FinSeer),为股票价格预测设计的专用检索框架,训练专门针对连续复杂时间序列的检索器。新数据集整合20组金融指标,提供市场行为的深刻见解,避免仅依赖价格数据的偏差。通过领域专家咨询和互信息分析选择指标,确保检索框架能解读趋势信号的深层模式,测试集模拟真实经济分析以评估模型性能。
本文引入了一种新型检索机制FinSeer,包含三个创新点:新的基础LLM、正负候选选择方法和训练目标。通过微调1B参数的LLaMA3.2-1B Instruct,创建StockLLM作为检索器的基础模型,以提高指令跟随能力。StockLLM识别增强生成过程的时间序列片段,选择有益序列作为正候选,选择无益序列作为负候选,以对齐检索器与LLM的优先级。训练目标旨在区分历史重要序列与噪声序列,最大化查询与候选序列的相似性,提升信号与噪声的分离能力。FinSeer的推理过程包括:检索相关序列、将序列纳入StockLLM输入上下文、结合丰富上下文与原始查询进行预测,提升预测准确性。
评估RAG框架和检索器性能时,仅依赖时间信息,排除其他文本数据。RAG框架结合StockLLM和不同检索方法,结果显示其性能优于单独的StockLLM,表明时间序列数据增强了模型预测能力。使用文本数据训练的检索模型未必提升性能,甚至可能下降,反映出文本检索与时间序列数据之间的差距。FinSeer检索器在识别相关金融指标方面表现优异,超越其他检索模型,能够有效挖掘有价值的时间序列信息。
本文贡献在于:
- 提出首个金融时间序列预测的RAG框架,包含创新的检索机制。
- 构建新数据集,整合价格和金融指标,提升模型训练效果。
- FinSeer专为时间序列预测设计,利用LLM反馈和历史重要序列。
- 实验结果显示RAG框架和FinSeer在股票运动预测中显著优于现有方法,FinSeer在BIGDATA22数据集上提高了8%的准确率。
相关工作
股票走势预测
传统股票预测方法主要分析价格序列和技术指标,尝试识别历史数据中的模式,但受噪声影响大,难以有效处理多样化的金融信息。近年来,研究者尝试使用大语言模型(LLM)进行金融预测,尽管有些模型如GPT-4被应用,但其在股票运动预测中的准确性仍仅达到随机猜测水平,显示出该领域的复杂性和挑战性。
基于LLMs的时间序列预测
非检索方法主要通过将时间序列转化为文本格式或将两种模态编码为统一向量空间来提升LLM在时间序列预测中的表现。一些研究通过将时间序列数据重编程为适合LLM的文本表示,利用声明性提示提高预测准确性。现有方法在处理大规模时间序列数据时面临LLM输入限制,难以有效利用大量历史数据,需引入检索增强方法。RAG方法在时间序列预测中的应用逐渐受到关注,如TimeRAG结合动态时间规整与LLM提高预测准确性。仅依赖数值相似性不足以捕捉金融时间序列的深层语义关系,需针对金融数据复杂性的检索框架。
问题定义
**检索增强的金融时间序列预测。**通过查询序列(𝑞)和历史序列(𝑐)预测未来趋势(𝐺),检索模型(𝑅)提取有用的历史数据以提高预测模型的准确性。
**股票价格走势预测任务。**将问题框定为二分类任务,预测股票在下一个交易日的价格是上涨(𝑀 𝑞,𝑑)还是下跌。
**涨跌阈值设置。**计算收益率(𝑅𝑡),若收益率超过0.55则为上涨,低于-0.5则为下跌,介于两者之间的情况视为冻结候选。
**不平衡阈值的理由。**上涨和下跌的阈值不对称反映了市场行为,严格的上涨阈值避免小幅波动被误判为显著上涨,宽松的下跌阈值确保捕捉到重要的下跌趋势。
RAG框架
本文提出一种新颖的RAG框架,用于从大量股票数据中识别有价值的序列并进行股票运动预测。构建三个新数据集,整合金融指标与历史股价,克服现有数据集的局限性。引入StockLLM,1B参数的微调LLM,确保指令跟随能力并建立挑战性实验设置。设计新检索机制,利用LLM反馈选择正负候选,并采用新训练目标优先考虑历史重要序列。该框架连接检索模型与LLM,提升时间序列预测过程。
数据集构建
数据集构建。通过整合金融指标与历史股价,构建高交易量美国股票的数据集,涵盖2014-2015、2017-2018和2022-2023三个时期,以反映真实市场行为。
股票选择。选择高交易量股票,2014-2015使用ACL18数据集,2017-2018使用BIGDATA22数据集,2022-2023手动选择,形成STOCK23数据集。
基本价格指标收集。使用Yahoo Finance API收集开盘价、最高价、最低价、调整后收盘价和交易量等基本价格指标,计算每日价格变动作为模型训练和评估的参考。
数据集划分。按股票而非时间划分训练、验证和测试集,确保时间完整性,避免信息泄露,提升模型对新股票的泛化能力。
金融指标计算与选择。通过互信息分析选取与收益关系密切的金融指标,计算每个指标的MI分数,选出前20个指标作为候选,详细分数排名见附录B.1。
序列化
股票价格和财务指标序列化为时间序列格式,使用JSON表示,以支持LLMs解析。
查询序列选择在数据集拆分后至少一年内的日期,确保有足够的候选序列。查询序列包含前五个交易日的调整收盘价及基本股票信息,采用五天序列和一日滑动窗口。
候选序列动态更新,随着查询日期的推进,最新交易日的序列自动加入候选池。每个候选股票包含6个基本价格指标和20组财务指标,采用相同的五天序列和滑动窗口表示。
检索训练
本文引入了一种新颖的检索机制,结合了1B参数的LLM(StockLLM)、基于LLM反馈的候选选择方法和最大化查询与历史重要序列相似性的训练目标,以提高金融数据的模式识别能力。
StockLLM通过LoRA技术对LLaMA 3.2-1B-Instruct进行微调,确保在小模型下仍能有效提取金融预测中的有意义信息。
候选评分通过将查询与候选序列输入LLM,输出未归一化的置信度分数,并通过softmax转换为概率,作为候选序列的评分。
候选选择中,按评分降序排列,选择最高的序列为正候选,底部15个为负候选。
检索器的训练目标是区分历史重要序列与噪声序列,最大化查询与候选序列的相似性。
采用知识蒸馏方法,将LLM的输出分布转移到检索器,通过最小化KL散度来捕捉LLM的细微模式和预测。
𝒆 𝑞 和 𝒆 𝑐 𝑖 分别是查询和候选的嵌入表示。通过温度参数𝜏优化查询嵌入与高排名候选嵌入的相似性。该损失函数提升检索器准确预测股票价格变动的能力。
推理
RAG框架的推理过程包括三个步骤:
- FinSeer从候选池中检索相关序列,识别历史重要模式。
- 将检索到的序列纳入StockLLM的输入上下文,增强模型对时间动态的理解。
- 将丰富的上下文与原始查询结合,生成预测。
通过整合显著的历史模式与当前数据,提高了预测的准确性和稳健性。
实验
实验设置
数据集。评估RAG框架在ACL18(2,876查询)、BIGDATA22(2,868查询)和STOCK23(4,128查询)测试集上的效果,确保评估的可靠性和全面性。
基线模型。选择StockLLM和随机检索作为基线,FinSeer的基线包括五个竞争性RAG模型(Instructor-large、UAE-largev1、BGE-largeen-v1.5、LLM-Embedder、E5-mistral-7b-instruct)。
评估指标。使用准确率(ACC)和马修斯相关系数(MCC)评估FinSeer及基线模型在股票走势预测任务中的表现。
结果
RAG框架在所有数据集上均优于StockLLM和随机检索,提升了股票走势预测的有效性。FinSeer在与StockLLM结合时表现最佳,稳定提升预测准确性,其他检索方法表现不一致。
检索过程并不总能保证性能提升,检索错误可能误导LLM,强调了与LLM目标一致的检索模型的重要性。Instruction和无检索基线之间的性能差异小,反映时间序列检索的挑战。UAE检索器在数据集间表现不稳定,LLM Embedder在时间序列检索任务上泛化能力不足。
E5基线表现竞争力,但FinSeer在所有数据集上均优于E5,显示其有效学习LLM偏好并提升预测能力。
消融分析
FinSeer模型在ACL18数据集中成功提取多样化的指标,表现优越,显示出其先进的时间检索能力。其他模型如LLM Embedder和Instructor主要关注基本指标,而FinSeer能够识别多种技术指标,如kdj交叉、MACD直方图和布林带。
研究表明,StockLLM的最终预测与检索序列的运动趋势(涨跌)之间没有显著相关性,表明其分析具体内容以推断运动方向。检索质量在RAG模型中至关重要,影响预测性能。FinSeer通过检索丰富的时间敏感信息,成功提升了StockLLM的预测准确性,展示了其在金融时间序列预测中的潜力。
案例分析
本案例研究强调了检索器与LLM预测偏好之间的对齐在金融时间序列分析中的重要性。以2015年6月25日的XOM股票为例,FinSeer成功帮助StockLLM预测出价格下跌。
FinSeer检索了五个多样化指标(收盘价、调整后收盘价、alpha021、alpha054和最高价),提供了全面的股票行为视角。alpha021基于短期和长期价格平均及成交量识别趋势,alpha054结合价格和成交量排名评估表现。其他检索器(如Instructor、BGE等)提取的序列主要集中在收盘价,未能提供有效的未来走势预测,导致StockLLM错误预测上涨。UAE检索的序列显示超买和超卖状态,但因趋势混淆,StockLLM也做出了错误预测。FinSeer在检索有意义和多样化指标方面表现优越,促进了更准确的预测。
指示序列可视化
使用LargeVis将FinSeer的指标序列嵌入降维到二维进行可视化。图3展示了九个指标的向量空间,包括调整后的收盘价、开盘价、高价、低价、收盘价、成交量、运动、收益和加权平均价。运动信息(绿色点)聚集良好,表明FinSeer有效捕捉了有意义的模式。这也暗示股票运动与指标之间的深层关系仍需进一步探索,提示未来研究的潜力。
总结
本文提出了首个用于金融时间序列预测的RAG框架,包含三项创新:1B参数的微调LLM(StockLLM)、基于LLM反馈的候选选择方法、最大化查询与历史重要序列相似性的训练目标。构建了新数据集,结合金融指标和历史股价,通过专家咨询和互信息分析选取,以训练检索器并确保评估的稳健性。检索器FinSeer利用这些数据集和LLM反馈,发现超越数值相似性的深层模式。实验表明,RAG框架优于单独的StockLLM和随机检索,FinSeer在BIGDATA22上准确率提高8%,并能检索到更具影响力的序列。强调了定制检索模型在金融预测中的重要性,为未来研究提供了稳健框架。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。