Transformer在量化投资的应用

本文介绍了Transformer在量化投资中的应用,通过Transformer的注意力机制解决RNN在长序列处理中的问题,阐述了Transformer的Encoder-Decoder结构、Attention原理及优缺点。文章详细解释了Transformer在选股策略中的优化,包括时间嵌入、Time2Vec和股票数据的Transformer结构,最后展示了如何构建和可视化Transformer模型以进行选股策略回测。
摘要由CSDN通过智能技术生成

导语

RNN、LSTM和GRU网络已在序列模型、语言模型、机器翻译等应用中取得不错的效果。循环结构(recurrent)的语言模型和编码器-解码器体系结构取得了不错的进展。 但是,RNN固有的顺序属性阻碍了训练样本间的并行化,对于长序列,内存限制将阻碍对训练样本的批量处理。这样,一是使得RNN的训练时间会相对比较长,对其的优化方法也比较少,二是对于长时间记忆来说,其的效果也大打折扣。 而Transformer的核心,注意力机制(Attention)允许对输入输出序列的依赖项进行建模,而无需考虑它们在序列中的距离,这样对上面两个RNN中比较突出的问题就有了一个比较好的解决办法。本文将对Attention、Transformer以及其在选股策略中的应用进行讲解。

Attention介绍

Attention本质

Attention机制如果浅层地理解,跟它的名字非常匹配。它的核心逻辑就是“从关注全部到关注重点”。

Attention机制很像人类看图片的逻辑,当我们在看一张图片时,我们并没有看清图片的全部内容,而是将注意力集中在了图片的焦点上:

img

比如上面的图片,我们一眼望去,最先接收到的是“锦江饭店”的信息,所以,我们的视觉系统就是一种 Attention 机制,将有限的注意力集中在重点信息上,从而节省资源,快速获得最有效的信息

Attention机制最早是在CV中应用的,随后在NLP领域也开始应用了,真正发扬光大的是在NLP领域,因为2018年BERT和GPT效果出奇地好,进而走红,Transformer、Attention这些核心开始被大家重点关注。

Attention原理

在说到Attention的原理之前,我们要先介绍一下什么是 Encoder-Decoder结构。

Encoder-Decoder模型

encoder-decoder模型也可以称为 seq2seq,它是为了应对 RNN 中无法满足不等长序列的输入输出而产生的一个 RNN 变种。encoder-decoder是深度学习中非常常见的一个模型框架,比如无监督算法的 auto-encoder 就是用编码的结构设计并训练的,再比如神经网络机器翻译NMT模型,往往就是LSTM-LSTM的编码-解码框架。

准确的说,encoder-decoder并不是一个具体的模型,而是一类框架。Encoder和Decoder部分可以是任意的文字,语音,图像,视频数据,模型可以采用CNN,RNN,BiRNN,LSTM,GRU等等。其中,encoder对数据进行编码,decoder对encoder生成的编码进行解码。

Encoder

encoder先将输入数据编码成一个上下文向量c:

img

得到 c 的方式有多种,最简单的方法就是把encoder的最后一个隐状态赋值给 c ,还可以对最后的隐状态做一个变换得到 c,也可以对所有的隐状态做变换。

Decoder

拿到 c 后,就用另一个 RNN 网络对其进行解码,这部分 RNN 网络被称为 Decoder,具体的做法就是将 c 当作之前的初始化状态 h0 输入到 Decoder 中:

img

Attention图解

在 encoder-decoder 结构中,encoder把所有的输入序列都编码成一个统一的语义特征 c 再解码,因此,c 中必须包含原始序列中的所有信息,它的长度就变成了限制模型性能的瓶颈,如机器翻译问题,当要翻译的句子较长时,一个 c 可能存不下那么多信息,就会造成翻译精度的下降。

Attention机制通过在每个时间输入不同的 c 来解决这个问题,下面是带有 Attention 机制的 Decoder:

img

每一个 c 会自动去选取与当前所要输出的 y 最合适的上下文信息。具体来说,我们用 aij 衡量 encoder 中第 j 阶段的 hj 和解码时第 i 阶段的相关性,最终 decoder 中第 i 阶段的输入的上下文信息 ci,就来自于所有 hj 对 aij 的加权和。这里的 aij 就是我们要学习的参数

img

比如上图中,输入的序列是“我爱中国”,因此,Encoder中的 h1、h2、h3、h4 就可以分别看是“我”、“爱”、“中国”所代表的信息。在翻译成英语时,第一个上下文 c1 应该和“我”这个字最相关,因此对应的 a11 就比较大,而相应的 a12、a13、a14 就比较小。c2 应该和“爱”最相关,同理,a22 的值就比较大。

那么 aij 这个权重是怎么算出来的呢?

事实上,aij 是从模型中学出来的,它实际和 decoder 的第 i - 1 阶段的隐状态、encoder第 j 个阶段的隐状态有关。比如 a1j 的计算:

  • 3
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Transformer机器学习量化选股是一种使用Transformer模型的方法来进行股票选股的过程。Transformer模型是一种基于自注意力机制的神经网络模型,被广泛应用自然语言处理任务中,但也可以用于其他领域,如量化选股。在这个方法中,股票数据被转化为输入序列,然后通过Transformer模型进行特征提取和预测。 在这个方法中,研究者使用了Multi-Head Attention和short-cut机制来增强Transformer模型的性能。Multi-Head Attention可以更好地捕捉股票数据的关联信息,而short-cut机制则可以加速模型的训练和优化过程。 研究者通过复现广发证券的研报,证明了Transformer模型具有一定的选股能力。相比传统的基于时序网络(如RNN)的方法,使用Transformer模型可以提供一种新的神经网络拟合多因子的网络结构思路。这为对量化选股感兴趣的读者提供了一个值得深入研究的方向。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Transformer量化投资应用](https://blog.csdn.net/bigquant/article/details/122217290)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [【python量化】广发证券研报:Transformer 架构下的量价选股策略](https://blog.csdn.net/FrankieHello/article/details/130164607)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值