社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

赵子平:基于深度学习的金融指数基金设计

DataFunTalk • 3 年前 • 312 次点击  


分享嘉宾:赵子平博士 上海科技大学 助理教授/研究员/博导

编辑整理:王剑芬 觅谷科技

出品平台:DataFunTalk


导读:近年来,随着深度学习技术的快速发展,人工智能技术在金融领域得到了越来越多的重视。FinTech,量化金融等技术成为人工智能的重要研究领域。深度学习,尤其是基于多层神经网络的学习方法,在解决金融领域的复杂性问题的研究中得到了越来越多的关注。今天非常有幸跟大家分享来自我们学界的一些关于智能金融应用的最新科研成果。

本次分享主题为基于深度学习的金融指数基金设计,将从介绍 金融指数、指数基金相关概念,和用深度学习方法设计指数基金的原因入手,介绍我们提出来的基于深度学习的金融指数基金设计方法,以及相比于传统指数基金设计方法,该方法取得的优异表现。

01
问题背景

首先介绍一下什么是金融指数和指数基金。

1. 投资基金的两种基本策略

按照投资范围基金可分为以下四类:

  • 债券型基金

  • 股票型基金

  • 混合型基金

  • 货币型基金

按照投资策略基金可分为以下两类:

  • 被动型基金:选取特定金融指数的(如沪深300指数、标普500指数等)成分股作为投资对象,不主动寻求超越市场的表现,而是试图复制指数的表现,因而又通常被称为指数基金(Index Fund)。

  • 主动型基金:通过技术成分和基本面分析等方法来进行选股和择时,以寻求超越市场的业绩表现为目标。主动型基金更看重基金经理的个人投资能力。

2. 指数基金超越大部分主动型基金的历史表现

大部分的主动型基金波动性会比较大,当我们回顾历史数据,长期来看主动型基金很难去超越指数基金。这个结果符合有效市场假说,在美国的资本市场可能会更明显一点。

因此,对于指数基金,如果我们能够稳定地复制指数的收益,就能获得超越大部分主动型基金的表现。如图中美国2020年主动型基金的收益率。

此外,相较于主动型基金,被动型基金所需的投资研究成本更低。

3. 金融指数

指数型基金以复制特定金融指数的业绩表现为目标。

金融指数是与金融市场活动相关的指数,比如股票指数、期货指数、行业/主题指数等。如上图左侧是世界上一些主要指数的列表,图右侧是指数的整体表现,长期来说是呈上升趋势的,即呈现一个正的收益率。

4. 股票指数:宽基指数和窄基指数

股票指数又被叫做股市的晴雨表。根据编制方式,股票可分为以下两类:

  • 宽基指数:代表了整个股票市场的绩效,包含了一个国家最大的证券交易所里最具规模的上市公司编制。如上证50指数、沪深300指数等,它们一般包含了市场中市值比较大的那些公司,然后计算出来这样一个指数,例如全世界最大指数之一的道琼斯威尔夏5000指数,其实际包含有7000多支股票。

  • 窄基指数:追踪的是市场部门的绩效,更多是反应一个特定行业的情况,例如能源指数、材料指数、信息技术指数、医疗保健指数等。

5. 股票指数:价格加权指数和市场加权指数

根据计算方式,股票指数可分为以下三类:

  • 平均加权指数:基于成分股的价格加和除以总数量进行编制。

  • 价格加权指数:基于成分股的价格进行加权编制,价格变动对某高单价个股影响不大,却会显著影响整个指数。例如,道琼斯工业平均指数。

  • 市值加权指数:基于公司规模进行加权编制,大公司的小幅价格波动机会显著影响指数。例如,标准普尔500指数、上证综指、深证综指、恒生指数等。这个编制方式更自然一点,因为考虑到大公司对于整个市场的影响更大一点。

6. 股票指数基金:构建指数跟踪投资组合

股票指数基金的目标是,以股票指数的成分股为备选资产进行投资组合设计,复制指数(收益率)表现。

02
指数跟踪投资组合设计

1. 指数跟踪投资组合设计

最简单的一种指数跟踪投资组合策略就是按照指数中不同成份股的权重去购买。但这个方式会存在以下问题:

  • 投资组合中的成分股权重会频繁变动,需要频繁买卖,从而导致交易成本增加。

  • 有些公司股票流动性低,会导致卖出的时候无法及时执行交易。

因此这是一个不现实的操作。

指数基金的设计通常都是试图构造一个稀疏的投资组合,即在大量股票或投资金融资产中选取一小部分。所以指数基金的设计最后就变成了构造一个稀疏的投资组合的问题。

如图右侧这样一个资产池是我们感兴趣的某个指数的成分股,我们把每只股票在某一天的收益率用一个rt表示,同时也可以把指数的收益率用rind示出来。

最后我们要做的就是设计一个投资组合,或者投资比例w使得最后得到的投资组合收益率rind, t跟基金的收益率wT rt能够相近。用Loss函数表示为:

在这样的组合设计下,还可以加一些我们比较感兴趣的限制条件。比如购买某个资产不能超过某个上限,也不能低于某个下限:l≤w≤h。又因为政策原因,基金公司不允许卖空操作,因此这里的l要大于零。另外我们的总投资是有限的:1Tw=1,其中w表示的是一个百分比。

当然这里有一个问题w有n个,也就是说包含了该指数下面所有的成分股,我们最后得到的解就会是所有成分股都进行买卖。

为了得到稀疏的资产组合,我们进一步引入二元变量z,zi=1表示对应资产被选入投资组合,zi=0表示对应的组合未被选入。并且设置变量k,表示我们想在这n个成分股当中最多选几支股票。比如标普500指数,可能有接近500个成分股,假如我们只需要从中选出20个股票对它们进行跟踪,那么这里的k就等于20。

最后我们从优化上来讲,问题如下:

这个就叫做一个混合整数规划问题,看起来比较难一点,并且它的难点不光是这个问题本身比较复杂, 还有n的规模会非常大。比如要对两个市场进行跟踪,那可能就有几千甚至上万只股票。但是k又往往比较小,因为我们总是不希望资产组合中投资太多这样的底层资产。所以对于这样的问题,它的计算复杂度也是非常高。

首先我们对它进行一步变换,采用上镜图变化的形式把它转化成图右侧的样子,这样问题就会简单很多。它就变成了一个混合整数线性规划的问题,所以在求解上把非线性变成了一个线性的问题。

但这个问题在实际解决当中会存在一些问题,比如刚刚提到的n很大k很小,所以复杂度非常得高。即使我们可以用一些经典的求解器进行求解,比如SCIP,CPLEX、GUROBI等,但仍然很有可能一天都解不完,并且得到的解也不一定是精确的。

所以为了能够使得这个问题高效地求解,我们将它分成两个阶段进行求解。第一阶段先做资产选择,用图神经网络进行资产选择;第二阶段进行资产配置,就是在选定的k个资产里,再求解如何配置权重的问题。

03
基于深度学习的两阶段指数跟踪投资组合设计

来看一下我们实际设计出来的系统流程图是怎样的。

1. 人工智能的发展

第一阶段用到的是图神经网络,这里先稍微讲一下图神经网络的背景。人工智能从40年代开始一直发展到现在,经历了起起伏伏。从最开始的Electronic Brain,发展到感知机。后来大家发现感知机很难求解非线性问题,比如异或问题。接着又发展到了多层感知机。当多层感知机层数变多的时候,在训练模型的时候复杂度会变高。在当时的八九十年代,由于计算基础设施的匮乏,大家很难去把多层感知的模型发展起来。后来统计学习蓬勃发展,像SVM算法成为了研究的主流。近些年由于高效的计算与存储设备的出现,深度神经网络获得了重生。

2. 深度学习的应用

深度学习现在是人工智能非常重要的一部分。比如在图像领域,比较经典的卷积神经网络,它在分析音频领域会有一个基于循环神经网络的LSTM这样的结构,这些都是非常有代表性的深度学习的模型。

3. 普遍存在的动态变化的图数据

随着大数据时代的到来,大家开始关注图数据的结构。因为数据之间总是有关系的,这样的关系可以很自然地用一个图来进行表示,比如社交网络,计算机网络等等。然而,传统的比如说基于图像或者文本数据的深度学习的方法,很难处理这样大规模的图结构数据。

4. 图神经网络的快速兴起

为了处理这一类数据图,图神经网络大概是从2016年开始就变得非常火爆了,在很多工业场景当中都获得了应用,比如说信贷机构的风险分析,网络平台的推荐系统等。

如图中下方所示,在机器学习领域顶会ICLR上可以看出,过去三年关于图神经网络的发文数量迅速上升,到现在还是一个最火爆的话题。

5. 动态变化的金融指数

对于一个金融指数来说,因为它的成分股是在不断变化的,因此我们想要把它建模成图。图中下方展示的是香港恒生指数近三年来的成分股的变化情况,可以看出不断有一些股票被剔除出去,也有一些被加入进来。那么对于一个图来说,就可看成这个图中有一些节点会消失,有一些会产生新的节点,并且这个图的大小是在不断变化的。成分股的数量也从最初的50只逐渐变到了现在的60只,所以这是一个很自然的图的结构。

6. 将指数跟踪投资组合设计问题抽象为图

很多研究都表明图是可以很好的去表现金融资产之间的关系的。所以我们也想用图神经网络来解决指数中的动态变化的成分股的配置问题。

首先我们把指数跟踪投资组合的设计问题表述成如图右侧这样一个图结构。图中的节点分别表示这个问题当中的z⊙h二元变量。continuous variable是左侧公式里的w,也就是进行资产配置时不同资产配额的百分比的变量。

另外这是一个优化问题,需要对其他的一些问题参数进行建模,所以就有了这样一个图的表示。

7. 图神经网络

有了这样一个图的表示之后,会得到一个计算图,如图左侧。在这个计算图中,可以通过信息传递得到每个节点的嵌入,节点嵌入其实就是一个向量。

每个节点代表一个资产,对于股票这样一个指数来说,它就对应一支具体的股票,比如这里的苹果、微软、亚马逊等公司都会有一个特征向量,这个是经过信息传递之后求得的一个节点嵌入。

然后这个嵌入通过多层的感知机的结构,输出一个我们想要的二元变量。如果这个二元变量是1,就代表在投资组合中要去买这个资产;如果是0,则代表资产没有被选入投资组合中。

所以前面资产组合配置的问题,或者混合整数规划的问题,最后就变成了通过图网络进行分类的问题,一个二分类的问题,选与不选。

8. 资产配置问题

有了上述的结果,我们就可以再对已经选择的资产进行配置,会得到变量w。

9. 系统框图

这是整个系统的框图,从最初的资产池到最后的股票指数基金的买卖份额配比,整个流程如图中所示。

10. 模型训练

这里是我们实际在训练模型时候的一些细节。

我们用CPLEX求解器所求得的结果作为标签,通过最小化交叉熵损失函数对网络进行训练。因为对于这个问题,最后只要训练出一个如何能够求解混合整数规划的问题,也就是满足这样一个问题子结构的网络。所以我们的训练样本其实可以不用来自于实际数据,而用IBM的求解器CPLEX来产生。CPLEX对于小规模的问题可以很快给到一个最优解。

得益于图神经网络的可扩展性,我们可以在维度小的样本上进行训练,再应用到维度更大的问题上去。这是图神经网络的一个特性。

11. 实验结果:数据生成

我们用到了价格加权指数的形式生成了不同维度的数据,如图。

12. 实验结果:跟踪效果

我们通过CPLEX产生的数据训练模型,最后把得到的模型跟业界中应该会用到的CPLEX的模型进行对比。这里用了两个指数跟踪误差,最大的误差和平均误差进行比较。可以看到模型的最后表现跟标准的方法是很接近的。

图中下方展示的是图神经网络的可扩展性,比如在30选10上进行了训练,我们可以把它扩展到50选20,70选20的问题上去。

13. 实验结果:计算时间

这是在计算时间上的比较,当问题规模逐渐变大的时候,CPLEX的运行时间会非常高,并且成功的概率也会非常低。但是用GNN都可以在一秒之内把问题给解决掉,并且它的成功率达到100%。

总结一下这个模型的亮点,对于大规模的计算可以达到一个既快又好的效果。

14. 指数跟踪投资组合设计:单周期

前面讲到的模型其实都是基于单周期的模型。单周期是指在每一个进行投资的时间段内,单独地进行一次指数跟踪基金的设计。但对于不同的投资阶段,需要分别进行设计,因为指数是在不断变化的。所以当从一个阶段到另外一个阶段进行投资的时候,投资比重是需要进行再调整的,最后会导致一个交易成本的问题。所以我们可以把单周期的模型扩展到一个多周期的模型,控制交易费用。

15. 指数跟踪投资组合设计:多周期

多周期的模型其实就是在每个周期都重新进行一次指数跟踪基金的设计。最后考虑到两个周期之间投资组合的调整,这样可以使得整个投资阶段之内的交易费用变小,因而获得一个更高的收益。

对于交易费跟交易成本的假设,也是符合当前业界的做法。现在许多资产管理公司做的公募基金其实都是基于这样一些比较实际的假设。

04
总结

在今天的话题中,首先给大家介绍了金融指数以及什么叫做指数基金。接着我们提出了一种基于深度学习的金融指数基金的设计方法。最后相比较传统的方法,我们的方法大幅降低了计算复杂度,并在大规模指数基金的构建中取得了优异的表现。

05
精彩问答

Q:多层感知机是什么?算是一种黑盒吗?

A:多层感知机算是一种黑盒,这个也要看怎么看。相比较我们前面完全是基于模型的这样一个优化问题来说,你可以认为我们中间把这样一个解决混合整数规划的问题,用图神经网络的方法进行求解,算是一个黑盒模型。但是现在有一些理论是可以证明这样一个模型的最优性的。所以就用图神经网络来解混合整数规划。其实尽管是一种深度模型,但是它是有理论保证的,所以从某种程度上也可以说它并不是一个黑盒模型。

Q:请问一下这套指数资产分析算法及数据有开源吗?或者有相关的文章吗?

A:文章是有的,并且现在都已经公开了。开源的话,如果有相关机构或者个人对此感兴趣,可以发邮件与我们联系,我们可以以合适的形式把代码提供给大家。

Q:用图神经网络代替传统的优化方法,这个思路可以用到其他的优化问题吗?

A:我们这里是用来解决混合整数规划的问题,这样一个混合整数规划问题用图神经网络来进行求解应该是有很多文章在研究的,并且理论结果也都是非常好。如果大家感兴趣的话可以关注一下。对于其他的问题的话,其实应该是有一定的扩展性,但是因为混合整数规划是一类比较难的问题,所以图神经网络在这上面的应用把它变成一个分类问题进行求解算是研究的一个重点。在其他优化问题上肯定也是可以求解的,比如说一般的非凸问题也是有其他的一些深度模型进行求解,但是能不能用图神经网络,我个人没有去关注过太多这方面的文章,所以没法给出一个非常准确的解答。

今天的分享就到这里,谢谢大家。


在文末分享、点赞、在看,给个3连击呗~


分享嘉宾:

活动推荐:

如今,企业创建的分析和机器学习 ( ML ) 模型中,有一半以上从未投入生产。一些挑战和障碍来自于技术本身也有一些来自组织机制。而未投产验证效果的模型这本身就是一种浪费,这很不优雅!! 这也催生了 MLOps 这项工程学科,旨在统一 ML 系统开发 ( dev ) 和 ML 系统部署 ( ops ),借助标准化流程生产高性能模型,并持续交付。

2月27日,我们将邀请来自亚马逊云科技、贝壳、腾讯音乐的三位嘉宾,就MLOPS相关主题进行分享,感兴趣的小伙伴欢迎识别海报二维码免费报名

关于我们:

DataFun:专注于大数据、人工智能技术应用的分享与交流。发起于2017年,在北京、上海、深圳、杭州等城市举办超过100+线下和100+线上沙龙、论坛及峰会,已邀请近1000位专家和学者参与分享。其公众号 DataFunTalk 累计生产原创文章500+,百万+阅读,12万+精准粉丝。

🧐分享、点赞、在看,给个3连击呗!👇

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/127178
 
312 次点击