当深度学习遇上量化交易——模型篇

2020 年 6 月 4 日 PaperWeekly


©PaperWeekly 原创 · 作者|桑运鑫

学校|上海交通大学硕士生

研究方向|图神经网络在金融领域的应用


本文介绍三篇从模型层面着手解决股价预测问题的顶会文章。


IJCAI 2019

论文标题:Enhancing Stock Movement Prediction with Adversarial Training

论文来源:IJCAI 2019

论文链接:https://www.ijcai.org/Proceedings/2019/0810.pdf


众所周知,股票市场具有噪声高和随机性强的特点,传统使用静态历史数据训练的模型很容易过拟合。为了提高模型的泛化能力,文章提出通过对数据增加扰动来解决这一问题。其最大的亮点就是提出了使用对抗训练(Adversarial Training)的方式来训练模型。

首先,为了适应股票数据时序依赖的特点,文章首先提出了 Attentive LSTM。为了预测某一时刻的股价走势(1 代表上涨,0 代表下跌),输入之前 天的数据 。之后输入一个全连接层获取特征的隐向量:

之后使用 LSTM 捕捉时序依赖,获得隐向量 , 因为不同时间的状态对时刻 的股价走势影响是不同的,使用时序注意力层(Temporal Attention Layer)来对隐向量进行加权求和:

之后将时刻  的隐向量和加权求和的结果拼接获取最终的股票表示,计算获取预测结果:

但这种训练方式不那么适用于股票市场,因为我们输入模型的数据(如各种技术因子的取值)是有随机性的,因此很容易导致过拟合而缺少泛化性能。而一个好的模型应当能捕捉随机性。所以文章提出了对抗训练的方式。

首先来思考一个问题,怎么提高模型建模随机性的能力?自然的想法就是如果我们对输入样本加一个扰动,模型仍然可以正确预测,那么模型肯定能很好的抵御随机性。那么这个扰动怎么加也很有学问,我们希望加的扰动能够让模型输出结果发生最大的改变。

那么哪个方向的扰动能够让模型输出结果发生最大的改变呢?回忆一下梯度下降法,梯度方向是下降最快的方向。显然,样本的梯度方向就是我们寻求的那个能够让模型输出结果发生最大改变的方向。

所以从本质上来说,文章提出的对抗训练就是一种梯度下降法,不过梯度下降法优化的是参数,而这里的对抗训练改变的是样本,得到对抗样本。

根据上图所示,生成对抗样本的计算过程如下:

其中 是原样本。之后将对抗样本的训练和损失也加入到目标函数中:

模型的总体结构如下:

文章在 ACL18 和 KDD17 两个数据集上进行了实验,结果证明方法了有效性,同时与 ALSTM 的对比实验表明,使用对抗样本训练的模型分类置信度更高,扩展了决策边界,增强了模型的鲁棒性和泛化性能。


KDD 2017


论文标题:Stock Price Prediction via Discovering Multi-Frequency Trading Patterns

论文来源:KDD 2017

论文链接:http://www.eecs.ucf.edu/~gqi/publications/kdd2017_stock.pdf


这是一篇应用的文章,作者还发了一篇偏理论的文章在 ICML 2017 上:State-Frequency Memory Recurrent Neural Networks, in Proceedings of International Conference on Machine Learning [1]

我们通常使用 LSTM 来建模时间序列之间的长期依赖。如果我们将股价的变动看作一种信号处理任务的话,那么利用 LSTM 来预测股价变动只捕捉了时域上的信息,而忽略了频域上的信息。

而对于股价信号来说,频域上的信息是非常有用的,其中的高频部分反应了股价的波动性,低频部分捕捉了长期的趋势和规律。基于此,文章提出了 SFM 来同时建模时间序列的时域与频域信息。

传统的 LSTM 结构大家都知道,这里不再赘述。我们来介绍下文章提出的 SFM 对于传统 LSTM 的三个改进:

  1. 将 LSTM 中的记忆细胞 变成状态-频率矩阵(the state-frequency matrix)
  2. 将遗忘门改成联合状态-频率遗忘门;

  3. 利用傅里叶变换和逆变换使信号能够在时域与频域之间转换。
对于时间步  ,模型有三个输入:数据 、上一时间步的状态-频率矩阵 、上一时间步的隐向量(hidden state) ,后两者开始时初始化为 0。
状态-频率矩阵是一个 列的矩阵,每一列可以看作多个状态,每个状态在物理意义上可以理解成代表某个引发信号波动的因子;矩阵中的一行可以看作某状态的各个频率组件的权重。
因为每个时间步传递的是状态-频率矩阵,所以遗忘门被分为状态遗忘门(state forget gate) 和频率遗忘门(frequency forget gate)

利用外积操作 (运算规则如上图所示)将两个遗忘门联合成状态-频率遗忘门 :

输入门 和输入调制(input modulation) 和 LSTM 保持一致:

对于状态-频率矩阵的更新操作向量计算形式如下:

其中 个频率部分的傅立叶基函数。 是按元素乘。
现在已经有了当前时间步的状态-频率矩阵 ,之后要更新当前时间步的隐藏状态 。首先利用欧拉公式 的更新公式分为实部和虚部两部分:

此外,复数可以表示成振幅 和相位

但后面的计算只用到了振幅 ,因为实验证明相位 对结果没有显著影响。利用振幅信息获取记忆状态:

上述过程可以被看做是傅立叶逆变换,但比起标准的傅立叶逆变换,文章选择可训练权重 来适应训练任务。之后的更新过程与 LSTM 一致:

文章使用 2007 到 2014 年的 50 只股票的股价数据作为训练集,2015 年的数据作为验证集,2016 年的数据作为测试集进行了实验,SFM 在预测 1 天后、3 天后、5 天后的股价均表现最佳:

此外,文章探索了时间窗口 、状态数量 、频率数量 三个参数的影响,结论如下:
  1. AR 的表现会随着 的增大而变差,LSTM 与 SFM 则会变好。证明了 LSTM 和 SFM 对于长期依赖的捕捉能力。
  2. 对于短期预测,太多的状态会让结果变差(过拟合),而长期预测则需要更多的状态来提供更多信息。

  3. 短期预测需要更多的频率成分来表现短期股价的高波动性,而长期预测则依赖于那些比较稳定的低频成分。


IJCAI 2017


论文标题:A Dual-Stage Attention-Based Recurrent Neural Network for Time Series Prediction

论文来源:IJCAI 2017

论文链接:https://www.ijcai.org/Proceedings/2017/0366.pdf


上一篇文章改造 LSTM 来进行股市预测,这篇文章则提出一种变种的 Seq2Seq 模型 DA-RNN 来进行端到端的时序预测任务。模型结构比较简单,如下图所示:

相比于传统的 Seq2Seq 模型,DA-RNN 在输入端增加了一个 input attention 层。可以分成两部分:Encoder with input attention、Decoder with temporal attention。

编码器部分,在时间步 ,输入有当前时间步的特征 ,上一时间步获得的隐状态 和记忆细胞 ,首先输入 Input attention Layer 获取对每个特征的加权 :

之后输入作为编码器的 LSTM 获得当前时间步的隐状态 :

解码器的结构与带 Attention 的 Seq2Seq 一致,只不过这里的 Attention 改叫 temporal attention,对于时间步  ,解码器能够获得编码器输出的隐向量 , 上一时间步的解码器隐向量 ,记忆细胞状态 , 上一时间步的真实标签
给编码器的隐向量赋予不同的注意力权重,计算当前时间步的情景(context)向量:

将上一时间步的真实标签 和情景向量拼接成当前时间步的解码器输入:


同样采用 LSTM 作为解码器,获取当前时间步的解码器隐状态

之后可以预测时刻 的输出:

文章选取了 SML 2010 和 NASDAQ 100 两个数据集进行实验。实验表明文章提出的 DA-RNN 更适合时序预测任务。

文章还将模型的输入做了扰动后拼接上正常的输入进行训练,发现 input attention 对于扰动后的数据赋予了较低的权重,证明了 input attention 让模型抗干扰能力更强。

此外,文章对模型参数时间窗口 和 LSTM 隐层大小 进行了测试,在 NASDAQ 100 Stock 上的最优参数是


总结

股价数据具有极低信噪比、随机性强、时序依赖的特点,比一般的序列预测任务相比更加困难,模型改进的方向也是尽可能的提升模型的抗干扰能力(对抗训练),从噪声中提取有价值的信号(频域、注意力机制)。希望未来在这一领域看到更多更有创造性的工作。

因为相关的资料确实相当匮乏,我在 GitHub 上新建了一个 repo 用于收集、整理相关的研究论文、书籍、数据、网站等,欢迎 star!

https://github.com/sangyx/deep-stock

如果您对深度学习在量化交易中的应用感兴趣,欢迎加我微信一起学习探讨(请备注一下姓名,机构或研究方向)。


参考链接


[1] https://dl.acm.org/doi/10.5555/3305381.3305543




更多阅读





#投 稿 通 道#

 让你的论文被更多人看到 



如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。


总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。 


PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学习心得技术干货。我们的目的只有一个,让知识真正流动起来。


📝 来稿标准:

• 稿件确系个人原创作品,来稿需注明作者个人信息(姓名+学校/工作单位+学历/职位+研究方向) 

• 如果文章并非首发,请在投稿时提醒并附上所有已发布链接 

• PaperWeekly 默认每篇文章都是首发,均会添加“原创”标志


📬 投稿邮箱:

• 投稿邮箱:hr@paperweekly.site 

• 所有文章配图,请单独在附件中发送 

• 请留下即时联系方式(微信或手机),以便我们在编辑发布时和作者沟通



🔍


现在,在「知乎」也能找到我们了

进入知乎首页搜索「PaperWeekly」

点击「关注」订阅我们的专栏吧



关于PaperWeekly


PaperWeekly 是一个推荐、解读、讨论、报道人工智能前沿论文成果的学术平台。如果你研究或从事 AI 领域,欢迎在公众号后台点击「交流群」,小助手将把你带入 PaperWeekly 的交流群里。



登录查看更多
4

相关内容

【CVPR 2020-商汤】8比特数值也能训练卷积神经网络模型
专知会员服务
25+阅读 · 2020年5月7日
最新《经济学中的强化学习》2020大综述,42页pdf128篇文献
【CVPR2020】L2 ^GCN:图卷积网络的分层学习高效训练
专知会员服务
37+阅读 · 2020年3月31日
【Texas 大学】强化学习领域的课程学习:一个框架和综述
专知会员服务
70+阅读 · 2020年3月22日
【伯克利】再思考 Transformer中的Batch Normalization
专知会员服务
40+阅读 · 2020年3月21日
【综述】金融领域中的深度学习,附52页论文下载
专知会员服务
161+阅读 · 2020年2月27日
金融时序预测中的深度学习方法:2005到2019
专知会员服务
165+阅读 · 2019年12月4日
【学界】虚拟对抗训练:一种新颖的半监督学习正则化方法
GAN生成式对抗网络
10+阅读 · 2019年6月9日
虚拟对抗训练:一种新颖的半监督学习正则化方法
人工智能前沿讲习班
8+阅读 · 2019年6月9日
量化交易系列课程
平均机器
10+阅读 · 2019年5月9日
使用LSTM模型预测股价基于Keras
量化投资与机器学习
34+阅读 · 2018年11月17日
【年度系列】使用LSTM预测股票市场基于Tensorflow
量化投资与机器学习
19+阅读 · 2018年10月16日
论文荐读 | NLP之Attention从入门到精通
人工智能前沿讲习班
5+阅读 · 2018年5月14日
基于强化学习的量化交易框架
机器学习研究会
28+阅读 · 2018年2月22日
用深度学习预测比特币价格
Python程序员
11+阅读 · 2017年12月23日
【强化学习】强化学习+深度学习=人工智能
产业智能官
52+阅读 · 2017年8月11日
Attentive Graph Neural Networks for Few-Shot Learning
Arxiv
40+阅读 · 2020年7月14日
Arxiv
3+阅读 · 2018年10月25日
Arxiv
8+阅读 · 2018年7月12日
Arxiv
11+阅读 · 2018年7月8日
Arxiv
7+阅读 · 2018年6月8日
VIP会员
相关资讯
【学界】虚拟对抗训练:一种新颖的半监督学习正则化方法
GAN生成式对抗网络
10+阅读 · 2019年6月9日
虚拟对抗训练:一种新颖的半监督学习正则化方法
人工智能前沿讲习班
8+阅读 · 2019年6月9日
量化交易系列课程
平均机器
10+阅读 · 2019年5月9日
使用LSTM模型预测股价基于Keras
量化投资与机器学习
34+阅读 · 2018年11月17日
【年度系列】使用LSTM预测股票市场基于Tensorflow
量化投资与机器学习
19+阅读 · 2018年10月16日
论文荐读 | NLP之Attention从入门到精通
人工智能前沿讲习班
5+阅读 · 2018年5月14日
基于强化学习的量化交易框架
机器学习研究会
28+阅读 · 2018年2月22日
用深度学习预测比特币价格
Python程序员
11+阅读 · 2017年12月23日
【强化学习】强化学习+深度学习=人工智能
产业智能官
52+阅读 · 2017年8月11日
Top
微信扫码咨询专知VIP会员