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

阅读笔记Multi-task Learning for Stock Selection [NIPS1996]的更多相关文章

  1. ZH奶酪:【阅读笔记】Deep Learning, NLP, and Representations

    中文译文:深度学习.自然语言处理和表征方法 http://blog.jobbole.com/77709/ 英文原文:Deep Learning, NLP, and Representations ht ...

  2. CVPR2022 Oral OGM-GE阅读笔记

    标题:Balanced Multimodal Learning via On-the-fly Gradient Modulation(CVPR 2022 Oral) 论文:https://arxiv. ...

  3. 论文阅读笔记 Improved Word Representation Learning with Sememes

    论文阅读笔记 Improved Word Representation Learning with Sememes 一句话概括本文工作 使用词汇资源--知网--来提升词嵌入的表征能力,并提出了三种基于 ...

  4. Deep Learning of Graph Matching 阅读笔记

    Deep Learning of Graph Matching 阅读笔记 CVPR2018的一篇文章,主要提出了一种利用深度神经网络实现端到端图匹配(Graph Matching)的方法. 该篇文章理 ...

  5. 【转载】 《Human-level concept learning through probabilistic program induction》阅读笔记

    原文地址: https://blog.csdn.net/ln1996/article/details/78459060 --------------------- 作者:lnn_csdn 来源:CSD ...

  6. 个性探测综述阅读笔记——Recent trends in deep learning based personality detection

    目录 abstract 1. introduction 1.1 个性衡量方法 1.2 应用前景 1.3 伦理道德 2. Related works 3. Baseline methods 3.1 文本 ...

  7. [论文阅读笔记] metapath2vec: Scalable Representation Learning for Heterogeneous Networks

    [论文阅读笔记] metapath2vec: Scalable Representation Learning for Heterogeneous Networks 本文结构 解决问题 主要贡献 算法 ...

  8. [论文阅读笔记] node2vec Scalable Feature Learning for Networks

    [论文阅读笔记] node2vec:Scalable Feature Learning for Networks 本文结构 解决问题 主要贡献 算法原理 参考文献 (1) 解决问题 由于DeepWal ...

  9. [论文阅读笔记] Adversarial Learning on Heterogeneous Information Networks

    [论文阅读笔记] Adversarial Learning on Heterogeneous Information Networks 本文结构 解决问题 主要贡献 算法原理 参考文献 (1) 解决问 ...

随机推荐

  1. .net工作准备系列--01前言

    注:学习参考朱毅编著的进入IT名企必读200题. 内容重在自我学习与巩固. 前言: 章节划分 01应聘须知 02基础知识(重点) 03进阶知识 04重点应用(aspnet第一部分) 04重点应用(as ...

  2. 二模15day1解题报告

    T1.合并序列(minval) 给出长为 n的AB两个序列求两两相加中最小的n个. 据说有证明(在蓝书上,优先队列部分)先把A[1~n]+b[1]入队,然后每取一个a[x]+b[y]就把a[x]+b[ ...

  3. try-catch-finally 引发的奇怪问题

    今天,发现我们的一个Windows Service无法正常停止,无奈之下只能杀了进程. 为了找到原因,我在本地进行调试,发现程序里用到了多线程,而代码正是卡在了workThread.Abort()语句 ...

  4. swift 多线程及GCD

    1.基本概念 1)进程: 进程是指在系统中正在运行的一个应用程序.每个进程之间是独立的,每个进程运行在其专用且受保护的内存空间里.某进程内的线程在其它进程不可见 2)线程: 1个进程要执行任务,必须有 ...

  5. MS - 1 - 把二元查找树转变成排序的双向链表

    ## 1. 把二元查找树转变成排序的双向链表 ## ### 题目: 输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表. ### 要求不能创建任何新的结点,只调整指针的指向. 10       ...

  6. C# 调用Adodb对Access数据库执行批量插入

    public void BatchInsertIntoAccess(DataTable dt) { ADODB.Connection cn; ADODB.Recordset rs; string st ...

  7. chrome调试JavaScript脚本

    随着 JavaScript 应用的复杂性逐渐提高,开发者需要有力的调试工具来帮助他们快速发现问题的原因,并且能高效地修复它.Chrome DevTools 提供了一系列实用的工具使得调试 JavaSc ...

  8. smarty 模板的入门使用

    <?php require_once 'inc/libs/Smarty.class.php'; $s=new Smarty(); // echo $s::SMARTY_VERSION; // e ...

  9. app 支付宝 支付 alipaySdk

    function pay(P1: JString; P2: Boolean): JString; cdecl;    function fetchOrderInfoFromH5PayUrl(P1: J ...

  10. springboot 使用c3p0数据库连接池的方法

    使用springboot开发时,默认使用内置的tomcat数据库连接池,经常碰到这种情况:运行时间一长,数据库连接中断了.所以使用c3p0连接池吧. 引入的maven依赖: <dependenc ...