研报&论文

Two Sigma:高频数据的机器学习模型的例子

由small_q创建,最终由small_q 被浏览 108 用户

摘要

机器学习是当前金融建模、预测和决策的最先进技术。然而,实现这一潜力需要克服许多复杂的挑战。在本次演讲中,Two Sigma的Justin Sirignano——他也是牛津大学数学副教授——讨论了金融领域机器学习的机遇和挑战。Justin介绍了用于高频数据的机器学习模型的例子,并涵盖了包括训练深度学习模型来尝试预测价格波动,以及使用强化学习来尝试确定最优执行策略。我们今天先分享第一个案例,使用RNN预测股票高频价格。

正文

{w:100}{w:100}{w:100}深度学习在高频价格预测中的应用

Sirignano首先介绍了深度学习模型在高频价格预测中的应用。订单簿数据反应的是股票当前的供需,每个时间点买卖量价订单流数据是一个高维序列。

{w:100}{w:100}{w:100}

作者使用了1000个NASDAQ股票的高频价格数据,只选取了原始数据中价格发生变化的数据点,这样能有效降低数据量。预测的目标是下一时间点股价涨跌的方向。模型的训练一共使用了500张GPU。

{w:100}{w:100}{w:100}

VAR模型对比评估RNN模型

为了更清晰的评估深度学习模型(这里使用的是RNN模型)的效果,作者选用了VAR模型作为对比。

{w:100}{w:100}{w:100}

{w:100}{w:100}{w:100}

在训练过程中,由于高频序列的长度非常长,RNN反向传播梯度计算非常耗时。于是作者采用了TBTT的梯度计算法,TBPTT对于一个目标序列,每次处理一个时间步(timestep),当处理到k1个时间步时,使用TBPTT后向传播k2个时间步。如果k2比较小,那么其计算开销就会降低。这样,它的每一个隐层状态可能经过多次时间步迭代计算产生的,也包含了更多更长的过去信息。在一定程度上,避免了上面方法中无法获取截断时间步之外信息的问题。

{w:100}{w:100}{w:100}

最终RNN模型的效果显著优于VAR模型的效果,如下图所示,作者使用了2015年6月至8月共计500只股票的数据作为样本外数据进行测试。右图蓝色的直方图是线性VAR模型的500支股票预测准确率的分布,红色直方图是RNN模型的预测准确率分布。可以明显看出红色表示RNN模型效果更好。

{w:100}{w:100}{w:100}

1只股票一个模型 or 1000只股票一个模型

在模型训练的时候,我们通常面临这样的选择:比如一共有1000个股票,我们应该是针对每个股票训练一个模型,总计1000个模型;还是使用1000个股票的所有数据训练一个通用模型?这样的选择实际上很大程度取决于这1000个股票数据平稳性的差异。

{w:100}{w:100}{w:100}

但实证表明,训练一个通用模型至少有以下优点:

  • 更少的过拟合
  • 更高的准确度
  • 当某只股票数据较少时,可以作为迁移学习使用的模型
  • 更低的计算成本

{w:100}{w:100}{w:100}

实证测试也表明,通用模型在不同股票不同板块的表现都非常稳定,而且在一年样本外的表现也很稳定。 \n {w:100}{w:100}{w:100}

以下是通用模型相对于500个特定模型的准确率优势分布图,是左偏的。也就是说对于大部分股票,通用模型的效果更好。

{w:100}{w:100}{w:100}

当使用样本外的数据(不同的股票),我们发现模型在两个样本外时间段,在训练时未曾使用的股票上的表现也很稳定。

{w:100}{w:100}{w:100}

在具体训练过程中,500块GPU中每块GPU都是独立训练。也就是说,从所有数据中随机抽取一部分数据,随机放到某块GPU中,该GPU基于这些数据独立完成前向后向的计算,此时通用模型是异步同步的。

{w:100}{w:100}{w:100}

本案例来自作者论文《Universal features of price formation in financial markets: perspectives from Deep Learning》。

下载地址:https://arxiv.org/abs/1803.06917?context=q-fin

标签

机器学习机器学习模型
{link}