首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

利用显著-偏置卷积神经网络处理混频时间序列

显著-偏置卷积神经网络简介

金融时间序列通常通常包含多个维度,不同维度数据的采样频率也不一致。例如螺纹钢研究员通常关心螺纹钢的因素有日频更新的现货螺纹钢价格,周频更新的螺纹钢库存,高炉开工率和线螺采购量,而月频更新的则有商品房销售面积等。如果其中某些可观测因子发生了变化,投资者对未来螺纹钢期货涨跌的预期也应发生变化,但是如何处理这些不同频率的数据是量化模型的一大难题。一种比较简单直接的方法就是降低数据的采样频率,例如把日频数据统一为周频(甚至更低如月频),再基于周频数据进行预测。但这种方法的缺点也很明显,期货本身波动就比较大,通过低频采样的数据只能按低频预测的结果来交易,如果在一周中期货价格发生了大变,也无法根据量化模型做出合理的应对。另外某些影响期货价格的数据也并非在周末统一更新,例如周频发布的螺纹钢库存通常坐在周四更新而同是周频发布的线螺采购量则可能是周五更新。如果模型统一为周频则有可能错过了最佳的投资入场点。

本报告介绍一种可用于处理混频时间序列的神经网架构:显著-偏置卷积神经网络(Significance-Offse Convolutional Neural Network,SOCNN),这种网络架构由Mikolaj Binkowski等人在最近提出(Autoregressive Convolutional Neural Networks for Asynchronous Time Series,2017),并成功应用到多个混频金融数据集中,他们发现使用这种网络架构处理混频数据要比经典的向量自回归、卷积神经网络和长短时记忆网络等方法要好。虽然这种方法初步的研究阶段,但是由于其新颖的网络构造方法以及应用前景而值得了解。

在本报告里首先介绍了显著-偏置卷积神经网络架构,然后尝试利用周频的螺纹钢库存数据和日频的螺纹钢期货主力数据进行预测,发现这种网络架构在处理混频数据上有一定潜力。

SOCNN研究背景

在同频率时间序列的处理上,宏观经济或计量上用得较多的是自回归(Autoregression, AR)、向量自回归(Vector Autoregression, VAR)和向量自回归—移动平均(Vector autoregressive–moving-average, VARMA )等线性模型。这类模型的优势是模型的参数就是可观测因子的系数,通过检测系数的统计显著性可以分析出因子对待预测变量的影响,因而能够协助研究人员找出经济变量直接的因果关系。在混频时间序列的处理上,则通常会使用状态空间模型,即假设存在一系列不可观测的状态,这些不可观测状态往往代表的是低频因子,再通过可观测的高频数据对不可观测的状态进行推断,最后根据这些状态进行预测。虽然这些传统的经济学模型具有良好的可解释性,但是由于其简单的线性关系在预测的准确度往往有所欠缺。

在进行预测方面,当前的研究热点是深度神经网络模型,这类模型在图像处理和自然语言处理等多个领域里都能取得较好的预测效果,但是这类模型相当于一个黑盒子,并不具备可解释性,把其直接应用到期货交易上有一定的潜在风险。经济学研究强调的是变量之间的因果关系,但是期货交易则更强调预测的准确性。如果量化模型能同时具备可解释性和预测准确性当然就完美了,而当两者不可兼得时,往往就要牺牲一方而换取另一方的提高。而且金融时间序列的预测与语言序列的特征并非完全一致,这意味着直接把经典的深度学习模型应用在可能仍需要一些改进。

在这种背景下,Mikolaj Binkowski等人提出了显著-偏置卷积神经网络(Significance-Offse Convolutional Neural Network,SOCNN),这种网络架构把传统的经济学自回归模型与深度学习相结合用于处理混频时间序列。这种模型的原理是仿照自回归模型保留待预测变量的时间序列特征,而该时间序列的权重则不再是简单的固定系数,而是一个卷积神经网络。另外SOCNN里也有经典的神经网络选通机制(gating mechanism):

SOCNN原理

SOCNN的数据结构

在期货预测中使用到的变量因子通常都是在不同时间点观测得到的,例如螺纹钢期货的收盘价在每天收盘后获得,而螺纹钢库存则通常在周四下午公布,如果周四是非交易日,则没有螺纹钢期货的收盘价,而库存的发布则由于节假日等原因有可能延迟发布。这些不同频率的时间序列很难利用传统的同频率模型进行处理。所以Mikolaj Binkowski等人提出来了SOCNN的网络架构来处理这个问题。他们首先把多维混频的时间序列使用了一种新的方法表示,如下图所示。图中包含了X和Y两个按不同频率采样的时间序列。由于采样时间完全不一样,这两个时间序列的值可以合并到一个维度,然后再分别使用X和Y两个指标来表示当前列的意义,还有一个维度就是用来表示该值持续的时间间隔。例如第一列中X指示的值为1,Y指示的值为0表明的是当前时间序列上的值为X=4.0,持续时间是0.3.。第二列上X指示的值为0,Y指示的值为1,表明当前时间序列上的值为Y=7.5,持续时间为0.7。

采用这种混频数据格式的一个好处就是混频数据的表示更为紧凑,每个数据维度不需要单独的时间标记,取而代之的是用0和1标记数据维度,即使不同维度的数据长度可能不同,这种表示方法仍能把其紧凑地用矩阵表示。虽然这种方法在人类看来并不直观,但是对计算机的识别效率可能更高。

卷积神经网络原理

SOCNN由卷积网络堆积构成,上述的混频数据输入格式可以被这种网络直接读入,其原理可由下图表示。这里使用一维的卷积核,长度为4,该卷积核相当于一个4维的向量,然后点乘下表中每一列的值,由左往右依次进行,如果输入的时间序列有8列则经过这一层卷积层后由之前的4*8=32个数据被压缩为1*8个数据,这相当于一个降维压缩的过程。如果使用两个卷积核则可以得到2*8=16个数据,然后这16个数据再经过激活函数后进入下一个卷积层。这样通过卷积层的堆积就可以形成深度神经网络了。

SCONN架构

得到最终输出。

SOCNN应用实例

与经典的卷积神经网络相比,SOCNN没有使用池化层(pooling layer),所以输入的时间序列长度能够一直保持直到最后的全连层。正是这种做法才部分保留了神经网络最终输出的可解释性,即可以使用显著网络的权重对某个时间节点上变量的显著性做出分析。但另一方面如果选取的时间序列长度不恰当的话,则包含的数据实际维度在每个样本里都可能不一致。

在这一节里尝试使用SOCNN预测螺纹钢期货主力合约的收益率。预测是基于每周发布的螺纹钢库存以及主力期货合约的日度收盘价收益率这两个因子。训练样本的长度为10个交易日,通常包含1-2个周频数据,数据的组织形式如图1 所示,用于预测下个交易日期货的收益率。使用的数据为螺纹钢主力期货的日收益率和库存的周度变化率,数据日期从2009年3月至2017年11月,约2500个交易日。

SOCNN的keras源代码可以从作者Mikolaj Binkowski的github网站下载。这篇报告里使用的显著网络使用了2个卷积层,使用的卷积核个数为2,偏置网络则只使用了1个卷积层。目前由于使用日频和周频数据,样本数量不多,并没有添加过多的层数神经网络可调的参数控制在100个以下。SOCNN的训练使用简单的交叉验证法,约70%的样本用于训练集,10%的样本用于验证集,20%的样本用作测试集。神经网络训练时使用提早停止的方法,即验证集误差开始增大时停止。神经网络的超参数包括隐藏层神经元数量,学习速度和主成份个数等,由于神经网络训练耗时较长,这里并没有对超参数空间进行全局搜索,因此所使用的超参数并非最优。

目前该模型用于螺纹钢期货主力合约,每个交易日收盘后对下个交易日的收益率进行预测,收益为正则进场做多,反之则做空。下图给出了SOCNN模型在螺纹钢期货上的训练集(Training set)和验证集(Validation set)的表现。训练集和验证集的数据是从2009年4月至2016年3月,占所有样本数量的80%,在这些样本中再随即抽取所有样本数量的10%作为验证集,用于超参数筛选和训练的提前停止。在训练集和验证集这段时间内,螺纹钢主力期货基本呈现下跌趋势,直至2015年底开始出现回升,而SCONN策略则基本上能捕捉到2008年至2013年中旬的下跌趋势,但之后该策略便开始回撤,知道2015年11月才开始出现反弹,回撤幅度达到42.8%。在这段期间SOCNN策略的年化收益达到9.68%,年化波动率17.3%,夏普率0.56,胜率为51.57%。

图5给出的是SOCNM模型在测试集上的表现,时间从2016年4月中旬到2017年11月,可以看到螺纹钢主力期货在这段时间里先跌后涨,SOCNN策略的表现与之比较一致,但从曲线上看SOCNN的震荡幅度要小一些,整体收益不如螺纹钢的纯多头,只有年化19.1%,波动率为38.1%,夏普率为0.5,胜率为52.5%。回撤期是从2016年4月中旬到2016年11月初,时间接近半年,幅度达39%。

从收益方面来看SOCNN在测试集的收益比其在训练集还要高,但这主要是因为螺纹钢本身在测试集这段期间的波动比较大,在训练集和验证集的时间段里,螺纹钢的年化波动率只有17.3%,而到了测试集里则高达38.2%,是之前的2倍,而SOCNN的胜率在两段时间里的差异并不太大前者是51.57%,后者是52.5%,都不是特别高,但由于最近一年多时间里螺纹钢的波动比较剧烈,即使胜率不高,SOCNN策略也能有所盈利。另外SOCNN策略的回撤期比较长,达到半年甚至更长,回撤幅度也达到40%左右,这可能是因为只使用螺纹钢库存和日收益率动量这两个因子没法准确很好地预测螺纹钢走势,添加其他因子例如其现货或上下游产物等因素会有所帮助。另外SOCNN的作者Mikolaj Binkowski给出的源代码程序中,包含了大量的模型超参数,例如ResNet的使用,目标损失函数的选择以及激活函数的选择等也未在本报告中作进一步探索和优化。SOCNN的原始论文中使用的是训练数据样本在一万以上,远远高于目前螺纹钢的日频数据。样本数据的缺乏应该是目前限制深度神经网络使用的主要原因,因此一种可能的操作是把模型参数,即神经网络权重进行贝叶斯化,这将有助于解决神经网络参数过多,容易出现过度拟合的问题。

结果讨论

本报告首先对Mikolaj Binkowski等人提出的SOCNN网络,即显著-偏置网络模型进行了基本介绍,包括其原理、框架以及数据组织方法等。这种网络架构主要是为了适应混合频率的金融时间序列,其主要原理是使用了多重卷积网络对混频时间序列进行特征提取,然后计算时间序列上各个时间节点的权重,所以构造出的神经网络作者Mikolaj Binkowski等人是认为部分可解释的。在本报告里尝试使用了螺纹钢日频收益率和周频库存来训练SOCNN,并能取得一定效果,虽然策略的回撤大,夏普率也不高,但是SOCNN在处理混频数据上的创新性的尝试也为基本面量化的研究提供了一个新的思路。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20171226G03PQ800?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券