Liheng Zhang§, Charu Aggarwal, Guo-Jun Qi*, Stock Price Prediction via Discovering Multi-Frequency Trading Patterns, in Proceedings of ACM SIGKDD Conference on Knowledge Discovery and Data Mining (KDD 2017), Halifax, Nova Scotia, Canada, August 13-17, 2017. [pdf] [code]
该篇论文还有一篇偏理论的论文,发表在了2017 ICML上:
Hao Hu§, Guo-Jun Qi*. State-Frequency Memory Recurrent Neural Networks, in Proceedings of International Conference on Machine Learning (ICML 2017), Sydney, Australia, August 6-11, 2017. [pdf] [code]
1 背景
在股票投资方面,对长期投资者来说,短期的价格波动不应该对其预测的长期股价产生太大影响,这类投资者更应该关注的是股价在更大周期上的波动,即低频率、长周期的股价信号应该对预测长期股价更有价值;对短期投资者、特别对高频交易的投资者来说,他们更关心的是短期的价格波动。也就是说,这类短期投资者对高频地、短周期的股价波动更敏感。
同样地,在分析、预测社会活动时,这种特定周期或频率的特征模式往往也是非常常见的。比如,在分析交通流量时,上下班周期、在一个星期内不同天的周期等,对交通流量的分析预测都会起到非常关键的作用。找到并针对性地量化分析这些周期对预测未来趋势的影响,往往是分析序列数据的关键。
这些都启发我们:在对信号进行预测时,需要对不同频率的信号区别对待,针对特定的任务加以合理应用。
2 相关研究
目前,也已经有一些研究考虑到了频域信息,比如Clockwork RNN(时钟频率驱动循环神经网络)和Phased LSTM(阶段性LSTM)。但这些研究都只是隐式地建模了频率信息,难以有效地捕获输入序列潜在的频域模式。
Clockwork RNN把隐藏层状态分为了多个组,每组的隐藏层状态的更新频率都不同。更新速度快的组用于对高频信息进行建模,更新速度慢的组用于对低频信息进行建模。
另一方面,循环神经网络(如LSTM,GRU)是时间序列建模最普遍的深度学习方法。尽管,循环神经网络在许多时间序列建模任务上都取得了很大的成功,但是这类网络都只关注于捕获时域上的依赖关系,而忽略了对频域特征的建模。因此,在有一些场景,比如高频交易中预测短期投资策略中就表现得不那么出色了。换句话说,在这类高波动性、非平稳序列建模任务上,RNNs存在着一定的局限性。
3 模型
简单来说,本文的思想就是对LSTM的结构进行改进,使其除了能够建模时域上的特征模式以外,还能同时建模频域上的特征模式。为了使得网络能够建模频域信息,作者主要对LSTM的网络结构做了三个改变:
- 将LSTM中的 状态向量 C t C_t Ct 改为了 状态-频率矩阵 S t S_t St;
- 将LSTM中的遗忘门改成了联合状态-频率遗忘门;
- 采用离散时间傅里叶变换和傅里叶逆变换使信号能在时域和频域之间相互转换。
3.1 状态-频率矩阵
经典的LSTM仅仅将时域上的状态向量作为记忆元(Memory Cell)进行建模,而忽略了另一个重要维度频率 。而本文提出的模型将状态(state)-频率(frequency)联合起来,形成一个状态-频率矩阵(State-Frequency Matrix,SFM) 作为记忆元,而非仅仅用一个向量来存储记忆信息。
矩阵中的一列可以看作多个状态,每个状态在物理意义上可以理解成代表某个引发信号波动的因子;矩阵中的一行可以看作某状态的各个频率组件的权重。
有了SFM做为记忆元,我们就可以像一般LSTM里那样定义输入门、输出门、遗忘门和控制信息的流向。特别地,如果我们对高频、短周期信号(比如短期高频的交易时)更关心,对应SFM矩阵的高频部分的信息流就会被输入门、输出门选定出来对信号序列进行建模。反之,如果我们对低频的、长周期信号(比如长期投资时)更有兴趣,那么我们就可以让模型聚焦在用SFM中的低频部分进行分析。
具体SFM矩阵中高、低频分量的选择,将由针对特定问题所定义的目标函数,通过训练的方法来自动完成。
LSTM状态向量更新公式:
c t = f t ∘ c t − 1 + i t ∘ c t ~ ∈ R D c_t=f_t\circ c_{t-1}+i_t\circ \tilde{c_t}\in\mathbb R^D ct=ft∘ct−1+it∘ct~∈RD(其中 c t , c t ~ , f t , i t ∈ R D c_t, \tilde{c_t},f_t,i_t\in\mathbb R^D ct,ct~