前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >用Transformer预测明天的行情,但是……

用Transformer预测明天的行情,但是……

原创
作者头像
shallty
发布2024-01-07 17:09:09
1940
发布2024-01-07 17:09:09
举报
文章被收录于专栏:shallty的深度学习之路

小字:文章先发在公众号上来,顺便在这里也写一下,主要思路其实就是模仿盘古天气大模型的方法,来试试能不能用来预测全国银行间市场质押式回购每日的加权平均价格,目前模型主要架构和训练粗略的跑了出来,效果不是太好,后期还会继续调试迭代。欢迎大家批评指正。

太长不看版本:

1、在2023年华为和谷歌的基于深度学习的天气预报大模型均取得了不错的效果,打破了天气预报领域不能被深度学习所克服的论断

2、受启发于上述模型,我根据华为盘古天气和其原生模型swin-transformer的基础结构尝试构建了一个用于预测银行间质押式回购每日加权平均平均价格的模型,我将其取名为IBFL-Transformer

3、模型主要采用了市场普遍认为能反映资金面状况的同业存单认购情况、政府债缴款、央行公开市场操作以及来自iData的分机构类型质押式回购资金日流向数据等,由于部分数据的可得性问题目前只取到了近3年的数据

4、利用手上数据进行训练后,模型的实际效果并不理想,对隔夜加权价格的预测与实际值差值的方差最好结果在22BP,差值的极值也到了最大94BP,还不能达到用于实践的目的

5、总结:如果说现阶段的深度学习模型在很多方面已经达到了人类对同种工作的尖端误差,那在预测市场运行结果这种人类尚未企及的工作方面达到这种结果也不奇怪。下一步,我将仔细检索模型中自注意参数的各项权重,找出模型对源数据的不同侧重,持续优化和更新迭代模型

正文:

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了。

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

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

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档