摘要: 本文主要讲述了机器学习用于金融市场预测难在哪?——金融间序是典型的部分可见马尔科夫决策过程(POMDP)
金融市场已经成为最早的采用机器学习(ML)市场之一。20世纪80年代以来,人们一直在使用ML以发现市场上的规律。尽管ML在预测市场结果方面取得了巨大成功,但最近的深度学习并没有对金融市场的预测有多大帮助。虽然深度学习和其他ML技术终于使Alexa,Google Assistant和Google Photos成为可能,但在股票市场上没有取得多大进展。
但是,我将机器学习应用于现实世界的金融预测问题。尽管有很多论文声称成功应用了深度学习模式,但我还是持怀疑态度来看待这些结果。有些模型确实有更好的精度。然而,差异的量级往往还不够大。
NLP的改进有助于提高依赖文档分析的定量策略的有效性。这是在金融市场中深度学习模型的一个不可多得的好处。
所有这一切证实了金融市场本质上是不可预测的事实。这里有很多原因让人难以预测。我想强调一些使它变得困难的主要原因:
数据分布:
数据分布问题至关重要——几乎所有的做金融预测的研究论文都忽略了这一点。
我们可以将金融数据集与图像分类数据集进行对比,以更好地理解这一点。让我们考虑CIFAR-10数据集.它包括了10个类。每个类的训练集中有5000个图像,每个类的测试集中有1000个图像。
我们期望在狗分类的训练集中,像素权重的分布与狗分类测试集中的分布相似。换而言之,狗的图像将包含在训练集以及测试集中的狗。这比较傻的说明了:狗的图像必须包含狗。
对于大多数金融数据集来说,这种明显的属性没有效。你将来可能看到的和你目前看到的数据完全不同。事实上,将机器学习应用于现实世界是一个比较常见的问题。除了确保测试和训练的数据集具有相似的分布以外,还必须确保只有当将来的数据遵循训练/验证的分布才在产品里使用训练过的模型。
虽然大多数研究者都注意不去把预测偏差纳入到他们的研究中,但几乎每个人都不承认涉及数据分布问题。
向前优化是解决这个问题的一种可能的选项。这在从事者中是已知的,但是研究人员常常忘记提到这一点。然而,即使是向前推进优化也不是解决潜在问题的灵丹妙药——它假设未来数据分布将是什么样的。这就是为什么向前优化的方法并不能真正给你带来高精度——它只是比较实用。
小样本大小(Small Sample Sizes)
机器学习经常需要从小数据集做预测。一个例子是劳动力统计,例如失业率和非农收入。每个月得到一个数据点,没有足够的历史数据。一个极端的例子是金融危机—只有一个数据点供我们借鉴。
这使得应用自动化的学习方法变得非常困难。许多人最终采取的一种途径是将不太频繁的统计数据与相对频繁的数据结合起来。例如,你可以结合非农收入与每日股票收益率,并且把相结合的数据集提供给模型。然而,往往需要进行大量的监督,以消除对模型质量的怀疑。
难以计算的数据(Unquantifiable Data)
有人可能会说,我们金融历史的时间表同人类历史本身一样。不幸的是,转换成量化的数据以让算法能理解的形式是比较困难的。例如,即使我们对1930年代大萧条期间发生的事情有一个全面的了解,也很难把它转化成一种可以用于自动化的学习过程的形式。
十分复杂(It’s Quite Complex)
各种各样的因素在不同的规模驱动着价格:
· 高频交易和算法交易是短期内价格的主要驱动力(小于1天);
· 开盘价和收盘价都有自己的模式- 包括在股票和期货-我所使用的两个资产类;
· 当涉及到多日线时,新闻和谣言是驱动力。详细的公司新闻可以在任何时候不预先通知的情况下发生。然而,某些事件的时间表是事先知道的,比如公司的计划报表和经济数据一览;
· 价值投资和经济周期在涉及多年内价格变化时最为重要。
专家群可以被用来组合不同规模的模型,但这也是一个难题。(请注意,专家群是把相同规模的模型进行组合的一个很常见的技术—几乎所有定量资产管理公司都采用。)
部分可见马尔科夫决策过程(Partially Observable Markov Decision Process)
我乐于考虑把价格的时间序列作为部分可见马尔科夫决策过程(POMDP).没有人在任何时间点都有完整的图片。不知道明天会发生什么—但你仍然要对交易做出决定。你得到的信息非常少。同时,数据的分布也在不断变化。
我已尝试将强化学习方法应用于金融问题。即使我把问题(即状态和行为空间)简化了,也学不到有用的东西。我花了几个星期对于为什么不工作而进行调试—结果是RL算法需要足够的可预测性。
推荐系统的相似性(Similarities to Recommender Systems)
ML可应用于非常广泛的领域。在所有这些中,我发现推荐系统是最贴近金融预测问题的。对比来说提出了潜在问题的难点。跟娱乐Recsys系统比较,分析提出了潜在问题的难点。
· 两者都有相对较低的精度.让我们考虑一下Netflix的例子。Netflix在主页上至少显示了20种电影选项。因此,对于每个建议,选择观看电影的用户的平均可能性小于1/20。有一个“小于”的标志,因为用户可能只是不看任何东西就离开了。同样地,金融时间序列中的大多数二进制分类问题的准确率已经徘徊在50%左右了。
· 两者的数据都有很多的杂音(noise).在这两种情况下,信噪比都很高。在金融时间序列离杂音较高,因为很多不同的因素影响着价格。Recsys数据集包含杂音(PDF),因为用户的浏览通常是受影响的-用户可以访问特定的亚马逊产品页面,完全无意从这类产品中买任何东西—这就结束添加杂音(noise)了。
· 两者的数据集都有季节性.假期间Amazon的购买模式(即产品销售分销)将与今年其它时间段不同。同样适用于其它的Recsys问题,如电影的兴趣和YouTube视频的选择还取决于在全年的时间。金融数据也是季节性的,最常见的季节性问题是经济周期。
· 两者都必须处理看不见的“事件/商品”.亚马逊在其目录中添加新商品,不断增加Netflix标题到商品列表,每一分钟新的视频都被上传到YouTube。推荐系统必须解决这个问题——如何推荐那些不是训练集一部分的商品。正如数据分布部分所提到的,金融数据可以包含与模型训练期间可用的完全不同的事件。
· 两者都必须结合不同类型的数据进行模型训练.YouTube上有一些独立的功能,比如“最后N个看过的视频列表”,它也有连续的功能,比如“最后一个视频的观看时长”。同样,金融数据集可以由较高的频率价格以及较低的频率经济数字组成。
结束思考:
如果因为一件事你要离开这个岗位,应该这样:金融时间序列是一个部分信息博弈(POMDP),甚至对于人类也是很难的,我们不应该期望的机器和算法突然超越人的能力。
这些算法擅长的是发现一个硬编码的模式并应用,这是一把双刃剑,但有时可以有时不行。它帮助绝大多数的简单模式来识别实例都已经被详细讨论了。通过无监督学习在金融时间序列中识别模式的下一阶段仍然是一个难以实现的梦想。
本文由阿里云云栖社区组织翻译。
文章原标题《Why is machine learning in finance so hard? | Hardik Patel》
作者:Hardik Patel