探索Transformer在金融行情预测领域的应用——预测银行间回购市场加权价格

简介: 文章先发在公众号上来,顺便在这里也写一下,主要思路其实就是模仿盘古天气大模型的方法,来试试能不能用来预测全国银行间市场质押式回购每日的加权平均价格,目前模型主要架构和训练粗略的跑了出来,效果不是太好,目前看了点其他paper,希望尝试利用已经开源的各种大模型做微调。欢迎大家批评指正。

2023年以来华为、谷歌等基于深度学习的天气预报大模型的出现,打破了人们对天气预报只能建立在复杂的物理、统计学基础的数值预报基础上的认知,而如今指导各行业和人们生活的数值天气预报更是经过上百年的系统性科学发展。虽然,目前这些天气大模型的基础数据还要部分依赖数值模型,但为深度学习能够产生精确天气预报已经做出了不小的贡献,并且模型已经投入到实际应用当中。举一反三,如果类似的模型架构也能应用到对银行间质押式回购资金面预测当中效果将会如何呢。

带着这种好奇和疑问,我找到了华为盘古天气(Pangu-Weather)发表在Nature上的论文—Accurate medium-range global weather forecasting with 3D neural networks并且以此为线索找到了论文的开源伪代码,在其论文和伪代码中,作者展示了模型的详细架构和工作原理。虽然开源的只是关于模型架构的简单代码,但在引用部分,作者详细指出其最基础的参考既是微软的Swin Tranformer——一种用于图像识别的移动窗口Transfromer模型。由于Swin模型同样是以论文的形式发表,且同样的,为了模型架构被大家理解,模型的所有基础代码作者全部做了开源。所以,我很顺利的集齐了这次举一反三所需要的所有跟模型架构有关的所有信息。(在这里要感谢下论文和开源这两大人类的精妙发明,简直就是在促进人类知识传播方面的天花板)

接下来就是对模型代码的逐行解析。简而言之,Swin模型通过对图片进行分块的多头注意力以及移动切割后再分块的多头自注意机智,已经使得其在图像识别领域有了不小的优势,同时节省了计算资源。因为Swin模型对像素块的切割处理以及通过移动窗口来构建切割块之间的联系的方式,盘古天气模型将这一特性应用到了以经纬度和高度为分割的3D地球气象模型中,并且通过继承Swin模型中的相对位置编码特性构建了在3D空间的相对位置编码,从而让模型在信息流中嵌入了不同经纬度的相对位置关系,以此将数据放入到encoder和decoder的流程中,并最终直接得到预报数值。

借鉴于此,对比银行间资金面相关的影响数据,如果将同业存单的不同信用等级和期限、市场行情的不同期限和不同行情指标(加权价格、当日最高最低价等)、央行公开市场操作的不同指标、分机构类型资金日内行情数据等一系列2D平面数据进行叠加,那么在初始状态即可得到一张能够描述银行间资金面影响因素的当日状态数据图,通过对此数据图应用Swin Transformer架构,对传入的各类型数据进行绝对位置编码以明确不同类型数据的不同位置信息,并改变最终返回的数据维度,最终得到我想要的预测银行间质押式回购R001-R1M这5个期限,最高成交、最低成交、加权平均价格、前加权平均价格这四个市场行情价格,组成的2D数据组。这个就是我这个模型的大致架构,我将其取名为IB Financial Liquidity Transformer(翻译成中文既是银行间资金面流动性模型),简称就是IBFL了。

下面是简要的模型结构图,涉及到参数和运算部分全部用的椭圆表示,有学习参数的部分用紫色进行了标注(其实一开始的想法是直接开源,无奈最终的结果太差,也就没有开源的必要了)
640.jpg

在采用近两年的数据将2D数据做96dim,同时encoder做2 layer,down sample之前做4 depth,之后做12 depth之后,(最后模型参数量为12,109,216个)。得到了对比真实世界数据差值最优的结果。如下表所示:

640-2.png
640-3.png

可以说如果用这样的结果来指导投资,不能说完全不能用,只能说用了可能就直接亏上天。虽然说一开始的想法是一次性把这个事情给做完,做到从0到1再到100,但是现在回想起来未免有点过于乐观。记得在吴恩达的深度学习课上,其所提出的一个评估深度学习最终模型效果的观点,就是模型最后的结果是否能达到人类所能达到的最好水平。如果以这个标准,在预测未来市场的加权平均价格方面,毕竟最智慧的人类也不能做到对第二天的市场加权价格手拿把掐,那么一个几乎是照搬过来的模型所得到的结果是这样的也不奇怪了。其次,模型无论是在数据量、各个指标的位置关系编码、不同指标在初始输入时embeding阶段的处理方面,我觉得都还有很大的改进空间。特别是受限于现在本身数据的不足,仔细甄别数据的有用程度便是提升模型本身训练可用数据的关键。所以,下一步的迭代,预计会从提取最优模型参数的自注意力权重,观察哪些权重占比更高从而改进数据输入开始。无论如何,感谢自己有毅力坚持从0做到了0.5,希望自己接下来能够继续保持求知欲,永远迭代!

相关文章
|
11月前
|
机器学习/深度学习 数据采集 并行计算
多步预测系列 | LSTM、CNN、Transformer、TCN、串行、并行模型集合研究(Python代码实现)
多步预测系列 | LSTM、CNN、Transformer、TCN、串行、并行模型集合研究(Python代码实现)
1043 2
|
消息中间件 负载均衡 监控
【ZMQ PUB模式指南】深入探究ZeroMQ的PUB-SUB模式:C++编程实践、底层原理与最佳实践
【ZMQ PUB模式指南】深入探究ZeroMQ的PUB-SUB模式:C++编程实践、底层原理与最佳实践
4837 1
|
10月前
|
存储 SQL 分布式计算
告别 Hadoop,拥抱 StarRocks!政采云数据平台升级之路
政采云平台作为政府采购数字化的创新典范,集监管、交易、服务于一体,经过近九年的发展,已成为行业内服务范围最广、用户数量最多、交易最活跃、监管产品最丰富的跨区域、跨层级、跨领域的一体化采购云服务平台,日均处理海量高并发数据。Hadoop 作为早期构建大规模数据平台的基石,为政采云平台打开了低成本处理海量非结构化、半结构化数据的可能。然而,伴随业务激增、复杂分析需求及严苛的时效要求,曾经“功臣”的局限性和沉重包袱日益凸显,逐渐成为数据价值释放的“枷锁”。
|
机器学习/深度学习 数据可视化 PyTorch
深入解析图神经网络注意力机制:数学原理与可视化实现
本文深入解析了图神经网络(GNNs)中自注意力机制的内部运作原理,通过可视化和数学推导揭示其工作机制。文章采用“位置-转移图”概念框架,并使用NumPy实现代码示例,逐步拆解自注意力层的计算过程。文中详细展示了从节点特征矩阵、邻接矩阵到生成注意力权重的具体步骤,并通过四个类(GAL1至GAL4)模拟了整个计算流程。最终,结合实际PyTorch Geometric库中的代码,对比分析了核心逻辑,为理解GNN自注意力机制提供了清晰的学习路径。
1001 7
深入解析图神经网络注意力机制:数学原理与可视化实现
|
机器学习/深度学习 自然语言处理 数据可视化
【由浅到深】从神经网络原理、Transformer模型演进、到代码工程实现
阅读这个文章可能的收获:理解AI、看懂模型和代码、能够自己搭建模型用于实际任务。
2348 56
|
机器学习/深度学习 搜索推荐 算法
深度学习推荐模型-DIN
Deep Interest Network(DIN)是盖坤大神领导的阿里妈妈的精准定向检索及基础算法团队,在2017年6月提出的。 它针对电子商务领域(e-commerce industry)的CTR预估,重点在于充分利用/挖掘用户历史行为数据中的信息。
1816 1
深度学习推荐模型-DIN
|
机器学习/深度学习 调度 计算机视觉
深度学习中的学习率调度:循环学习率、SGDR、1cycle 等方法介绍及实践策略研究
本文探讨了多种学习率调度策略在神经网络训练中的应用,强调了选择合适学习率的重要性。文章介绍了阶梯式衰减、余弦退火、循环学习率等策略,并分析了它们在不同实验设置下的表现。研究表明,循环学习率和SGDR等策略在提高模型性能和加快训练速度方面表现出色,而REX调度则在不同预算条件下表现稳定。这些策略为深度学习实践者提供了实用的指导。
1030 2
深度学习中的学习率调度:循环学习率、SGDR、1cycle 等方法介绍及实践策略研究
|
SQL 人工智能 自然语言处理
2024年代码大模型论文精选第五期
本文整理了2024年9月至10月中旬全球各大高校与科研机构发布的70篇代码大模型相关论文,涵盖基座模型、代码微调、测试基准、代码Agent、代码生成、SQL生成、漏洞检测与修复等多个主题。文章详细介绍了各篇论文的主要内容和创新点,并提供了链接和发布机构信息。全文篇幅较长,建议电脑端阅读。若想了解更多相关内容,可关注我们的代码大模型综述和GitHub开源项目。
1668 0
|
存储 人工智能 自然语言处理

热门文章

最新文章