这篇文章主要讲的是利用推特内容和股票历史价格推测股票走势。
Abstract
股票市场是随机的,预测是基于混沌的数据,本文提出一种深度生成网络–基于文本和价格信号,该模型介绍了recurrent,连续的潜在变量(continuous latent variable)来更好的处理随机性。然后利用神经变分推断(neural variational inference)来解决难以处理的后验推理,他们也提供带有时间辅助的混合目标函数,来灵活捕捉预测依赖。
1. Introduction
在NLP中,新闻和社交媒体是两大主要的信息资源,而他们对应的模型通常是有区别的(discriminative)。传统方法使用特征工程,而随着神经网络的出现,事件驱动的方法 和 结构化的事件 表示开始被研究起来。更有直接利用层次attention对新闻序列进行直接挖掘的。但股票预测还是很难,因为他被新闻时间随机影响着,从而导致一种随机游走(random-walk)的特征。相比于判别式(discriminative)模型,生成式(generative)模型在描绘从市场信息到股票信号的生成过程并引入随机性方面具有天然优势。然而,这些模型用词袋来代表混乱的社会文本,并使用简单的离散潜变量。本质上,股票走势预测是一个时间序列问题。 现有的 NLP 研究没有解决运动预测之间时间依赖性的重要性。例如,当一家公司遭遇重大丑闻时 d1 交易日,一般到 d2 日,其股价在接下来的交易日会出现下跌趋势,即 [d1, d2]。
如果股票预测器可以识别这种下降模式,则可能有利于 [d1, d2] 期间的所有走势预测。 否则,此区间的准确性可能会受到损害。 这种预测依赖性是公共信息的结果,例如 公司丑闻,需要随着时间的推移来被吸收(影响的滞后性?),而这种预测依赖性也很大程度上在时间很接近的预测中被共享。
旨在解决上述在高市场随机性、混乱市场信息和时间相关预测建模方面的突出研究空白, 本文提出StockNet, 一个深度生成模型。我们提出了一种具有变分架构的新型解码器,并为端到端训练推导出一个循环变分下界。
为了全面的探索市场信息,StockNet直接学习没有预-提取 结构化的事件的data。我们通过参考基本信息来建立市场资源,比如推特内容,科技特征,历史股价等。为了准确描述预测依赖性,我们假设股票的运动预测可以从学习在滞后窗口中预测其历史运动中受益。我们建议将交易日对齐作为框架基础(第 4 节),并进一步提供新的多任务学习目标(第 5.3 节)。
2. Problem formulating
我们的目标是在目标交易日 d 预测预选股票集合 S 中目标股票 s 的走势。我们使用由相关社交媒体组成的市场信息语料库 M, 比如推特、历史价格, 区间lag为[d-Δ\DeltaΔd, d-1], 其中Δ\DeltaΔd是固定长度的lag。然后只有两种走势,1表示升,0表示降:
Y=1(Pdc>Pd−1c)Y=1(P_d^ c > P_{d-1}^ c)Y=1(Pdc>Pd−1c)
其中pdcp_d^cpdc表示针对影响股价的公司行为调整的调整后收盘价。调整后的收盘价被广泛用于预测股价 或金融波动。
3. Data Collection
金融里,股票被分为9类:
Basic Materials, Consumer Goods, Healthcare,
Services, Utilities, Conglomerates, Financial, Industrial Goods and Technolog
由于高交易量股票往往在 Twitter 上被更多地讨论,我们选择了 88 只股票从 2014 年 1 月 1 日到 2016 年 1 月 1 日的两年价格变动,这些股票来自Conglomerates (综合企业集团)的所有 8 只股票和 其他8个行业资本规模排名前10的股票。我们观察到有许多目标的移动比率非常小。 在三向股票趋势预测任务中,通过设置股价变化的上限和下限,将这些变动归为另一个“保留”类别。由于我们针对可从社交媒体识别的股票变化的二元分类,我们设置了两个特定的阈值,0.5%和0.55%,并且简单地移除掉了38.72%的移动百分比介于两个阈值之间的选择目标。移动百分比≤-0.5% 和 >0.55% 的样本分别标记为 0 和 1。选择两个阈值来平衡两个类别,从而在整个数据集中产生了 26,614 个预测目标,其中两个类别分别占 49.78% 和 50.22% 。对数据进行划分:从2014年1月1日到2015年8月1日的20339个数据(movements)用作training,2015年8月1到10月1的2555个数据用来validation,2015年10月1日到2016年1月1日的3720个数据用来Testing。
对于推特数据,他们使用了正则表达式来踢去股票相关的文本,具体怎么操作可以看文章,不再介绍。
4. Model Overview
我们概述了数据对齐(data alignment)、模型分解(model factorization)和模型组件(model component)。
如第 1 节所述,我们假设预测交易日 d 的走势可以受益于预测其前交易日的走势。 然而,由于样本独立的一般原则,直接在具有时间接近的目标日期的样本之间建立连接对于模型训练是有问题的。作为替代方案,我们注意到,在目标交易日为 d 的样本中,很可能存在滞后期 d 以外的其他交易日,可以模拟接近 d 的预测目标。受启发于这个观测和多任务学习,我们不只是对d天做预测,而是所有存在于lag中的交易日。比如,如下图Figure-2,要预测8月7号并且lag=5天,那么从8月2号到8月6号都应该预测,这些预测之间的关系可以因此被捕获在样本范围内。

考虑到lag中并不是每一天都是交易日,比如周末和假期,他们只把交易日当作最基础的单位,而不是按照正常日历中的日子来计算。为此,我们首先找出一个样本中引用的所有T个符合条件的交易日,换句话说,存在于时间间隔内[d−Δd+1,d][d-\Delta d +1, d][d−Δd+1,d],为清楚起见,在一个样本的范围内,我们将这些交易日索引为t∈[1,T]t \in [1,T]t∈[1,T],并且他们中的每一个都被映射到交易日dtd_tdt上。于是该文提出交易日匹配(trading day alignment),会把这些包括推特内容和价格信息的input匹配到这T个交易日上。特别地,在第t个交易日,他们会使用Corpus语料库MtM_tMt中[dt−1,dt][d_{t-1}, d_t][dt−1,dt]的市场信号以及dt−1d_{t-1}dt−1中的股票信息ptp_tpt,用来预测dtd_tdt的movements yty_tyt (涨 or 跌)。在Figure2中他们展示了一个匹配样本,并且可以产生一个预测序列y∗=[y1,...yT−1]y^* = [y_1, ... y_{T-1}]y∗=[y1,...yT−1

本文提出了StockNet,一个基于深度生成网络的模型,用于结合推特内容和股票历史价格预测股票走势。StockNet利用循环变分下界和神经变分推断处理随机性和时间依赖性,通过多任务学习捕捉预测依赖性。实验表明,StockNet在股票趋势预测中优于传统方法和技术分析,验证了社交媒体信息和历史价格对预测效果的积极影响。
最低0.47元/天 解锁文章
535

被折叠的 条评论
为什么被折叠?



