最近的工作就是复现完成之前提到的论文,并且阅读看到的新的论文。
上篇论文剩下的就是CAAN模块,我从网上找到了讲的很清楚的一张图:
扒源码:跳出self-attention看多头点积注意力 - 知乎 (zhihu.com)
经过多方面的了解后,这部分网络结构其实不难完成,随着这个模型的完成,剩下的就是超参数设置和训练,其中有个超参数我连调的大概范围都不知道,于是主动联系了作者,作者给予了我一些指导:
非常感谢作者的知道,让我少走了很多弯路
在复现完成的论文中,我认识到了一个作为baseline的CA-SFCN模型,表现还挺好的,而且是基于卷积网络的,我也想把它复现了看一看效果。
CA-SFCN是2020年发表在顶会的一篇文章,网络上几乎没有资料讲解,唯一可依靠的就是它的论文。
下面简单介绍一下它的模型:
这是2020年发表的一篇基于卷积和新的注意力计算方式(对我而言)的时间序列预测论文,股票预测并不在它的论文的data里面,是用来预测其他时间序列的,但因为他是基于cnn的,而且在上篇论文中作为baseline出现,表现挺好,我复现一下。
这篇论文github只有一篇官方代码,但官方的代码是基于论文的,不仅涉及近10中baseline,还有近10种数据的处理,而且没有股票data,我感觉得有几万到十几万行代码,完全不是我能看的东西。
简单来说就是通过多层SFCN(s是它论文中提到的stable),提取特征,得到一个X,再送入Temporal Attention模块中学习时间注意力。
再送入Variable Attention学习空间(股票之间的)注意力。(和TA是相似的)。这儿学习注意力的方式和之前RNN模型中不同,还是通过多个1*1的卷积和矩阵乘法进行,和CAAN中的差不多,最后送入Globaling Pooling中,每个特征图每只股票保留一个数据,然后再进行一次全连接网络和Softmax输出涨或跌。是一个分类预测。
Cross Attention在上篇论文中的CAAN中有过了解,采用的相似的算法。
我的最好有62%的正确率