Multi-task Learning for Stock Selection
Joumana Ghosn and Yoshua Bengio
摘要
用人工神经网络预测未来回报以便于做出对应的金融决策时,我们需要考虑是为每支stock训练一个独立的网络结构还是所有的stocks能够共享一个网络结构。本文采用了一种折中的方案:将每支股票的未来回报作为一个task,那么不同股票间的模型会共享一些参数,这是一种多任务学习的形式。这种方法的年收益比多种benchmarks高14%。
前言
以往的对于金融时间序列的研究展现了很强的非线性,由此可以理解ANN的应用广泛。这些模型融合多类解释变量:(1)技术变量:包括过去的价格序列;(2)微观经济股票变量(股票收益);(3)宏观经济变量(商业周期相关的信息)。本文重点探索这样的问题:不同股票对待不同变量的方式不同还是相同?
本文做了一系列实验:使用不同参数子集作为不同股票模型间的共享参数。
本文的实验数据:9 years of data concerning 35 large capitalization companies of the Toronto Stock Exchange.
本文的优化目标:directly optimize a financial criterion,而非minimize the mean squared prediction error。前者的效果要好于后者。
参数共享(parameter sharing)以及多任务学习
训练数据:
优化目标:-the function of the desired output and the output of the learner
预测模型:
基于相似任务来自动选择假设空间的方法已经被广泛研究。这种研究的认为:学习器是嵌入到现实世界中多个相关的任务中的(many related tasks),学习一个任务的知识可以有助于更好或更快的学习一个新的任务。一些方法认为这些相关的任务并不是同时可用的:一些以前学过的任务获得的知识可以转移(transferred)到新的任务上。这里我们研究的所有任务都是并行学习的,因为我们的任务不在于使用多任务学习的方式来改善学习效率,而是用来提高学习的泛化能力。以Baxter1995年的工作为例,为每个任务训练一个神经网络,这些神经网络的第一隐层是共享的,但是后面的各层是任务相关的。共享层(The shared layers):使用所有任务中的训练数据来获取知识,从而构建合适的内部表示。任务相关层(Task-specific layers):使用内部表示来学习任务相关的网络权重。
股票选择应用(Application of Stock Selection)
数据集:36 stocks (1986.2~1994.1,96 months) one can buy or sell monthly
5 explanatory variables (features): 2 macro-economic variables (yields of long-term bonds ; the Consumer Price Index);
3 micro-economic variables (the series of dividend yields ; the series of ratios of stock price to book value of the company ; Spline extrapolation)
train/test split: 前k年做training,接下来1年做testing (不同的训练窗口k=3,4,5,6,7)
四种不同的参数共享方式(four types of parameter sharing):
(1) sharing everything:共享所有的参数
(2) sharing only the parameters of the first hidden layers: 仅共享第一隐层的参数
(3) sharing only the output layer parameter:仅共享最后的输出层参数
(4) not sharing anying:为每个stock训练一个独立的模型
结论:
(1) 最好的结果:采用一个共享的隐层以及独立的输出层,性能改进原因在于允许一些参数是不共享
(2) 共享一些参数比完全独立的模型得到的结果更一致
(3) 采用多任务学习得到的结果比benchmark结果要好
参考文献:
1. Using a Financial Training Criterion Rather than a Prediction Criterion, Yoshua Bengio, 1996, Technical Report