中信期货研究|商品量化专题报告 时序预测系列(二) 如何利用Transformer-based模型对价格进行“天气预报” 报告要点 摘要: 本次报告分别介绍了Transformer、Informer、Autoformer和FEDformer四个模型并进行测试,发现FEDformer模型利用傅里叶变换将序列从时域转换到频率进行预测能捕捉到全局特征,提高模型预测精度。此外若利用小波变换提取序列特征能捕 捉到频率的时间信息,增强FEDformer模型对相对较短序列的预测能力。 在上一篇报告中,介绍了如何利用RNN系列算法对价格进行单元单步预测,本文围绕多元长序列预测展开,尝试实现类似于天气预报的预测效果。RNN系列算法具有较强长期依赖性不适用于长序列预测,因此本文选择具有超强信息提取能力的Transformer模型为落脚点展开讨论。然而由于Transformer模型存在过高计算复杂度这一瓶颈,因此本文从近两年顶会论文中挑选出三个基于Transformer的改良模型(Informer、Autoformer和FEDformer)分别进行了介绍和测试对比。 为测试模型的有效性和泛化能力,本文在CU、IF和T三个期货品种的主力合约上进行了测试。在测试中分别利用过去20/40/60个交易日的交易数据(开盘价、最低价、最高价、成交量和收盘价)对三个合约接下来5/10/20/40/60个交易日的收盘价进行预测。经预测发现,FEDformer模型的预测结果几乎在所有情况中都是最优的,MSE和MAE最低达到0.028和0.129,价格时序信噪比较低,利用傅里叶变换将价格从时域转换到频域进行预测不仅能更好地捕捉全局信息,还能过滤掉信号中的噪音。同时,使用小波增强模块能捕捉到频率出现的时间信息,再次加强FEDformer模型对短序列的预测能力 此外,我们还发现在输入信息和输出信息较短的情况下,过高计算复杂度对Transformer模型的负面影响并不大,在很多测试中,Transformer的预测精度甚至高于Autoformer和Informer模型,但在稳定性和普适性上还是逊于FEDformer模型。 风险提示:本报告中所涉及的算法和模型应用仅为回溯举例,并不构成推荐建议。 投资咨询业务资格: 证监许可【2012】669号 商品量化组 研究员:蒋可欣FRM jiangkexin@citicsf.com从业资格号F03098078投资咨询号Z0018262 重要提示:本报告难以设置访问权限,若给您造成不便,敬请谅解。我司不会因为关注、收到或阅读本报告内容而视相关人员为客户;市场有风险,投资需谨慎。 目录 摘要:1 一、引言4 二、Transformer的结构和原理4 (一)注意力机制6 (二)Transformer结构详解10 三、Informer的结构和原理12 四、Autoformer的结构和原理15 五、FEDformer的结构和原理20 (一)傅里叶增强结构20 (二)小波变换增强结构22 六、预测结果分析25 (一)数据选择和处理25 (二)预测结果评价指标25 (三)模型参数设置25 (四)预测结果展示和分析26 七、结论与展望29 参考文献30 免责声明31 图表目录 图表1:Transformer模型的结构5 图表2:抽象的Encoder-Decoder框架6 图表3:引入注意力模型的Encoder-Decoder框架7 图表4:Attention计算过程7 图表5:缩放点积注意力模块(ScaledDot-ProductAttention)的计算流程8 图表6:多头注意力机制(Multi-HeadAttention)的计算流程9 图表7:Informer模型的结构13 图表8:Informer-Encoder部分侧面视角14 图表9:Autoformer模型的结构15 图表10:自注意力机制VS自相关机制18 图表11:Autoformer自相关机制的计算流程19 图表12:FEDformer模型的结构20 图表13:FEB-f结构21 图表14:FEA-f结构22 图表15:FEB-w和FEA-w结构23 图表16:前20个交易日为输入长度的模型测试结果26 图表17:前40个交易日为输入长度的模型测试结果27 图表18:前60个交易日为输入长度的模型预测结果28 图表19:模型复杂度对比28 一、引言 在上篇报告中,我们讨论了短期时序预测的方法,优化后的预测模型在短期预测中取得较好的拟合效果。然而,在现实生活中,短期价格预测对策略帮助有限,需得对未来价格进行长周期预测才能更充分地对行情进行判断。在上篇报告中介绍的RNN系列网络使用的是递归结构,因此只能进行单向依次计算,限制了模型的并行能力。同时,RNN系列网络存在长期依赖问题,随着时间推移,RNN会忘记较长时间之前的信息,从而造成梯度消失和梯度爆炸现象。因此,RNN等网络只能进行短期预测。近几年越来越多的学者尝试将Transformer运用在长序列预测中,Transformer自2017年被提出后在NLP和CV领域取得巨大的成功,是第一个完全依赖自注意力机制来捕捉输入与输出信息关系的传导模型。自注意力机制保留该时刻信息与先前所有时刻信息的直接连接,能够缓解梯度消失和梯度爆炸的问题,允许信息在更长的序列上传播。同时,Transformer不是类似RNN的顺序结构使用,具有更好的并行性,符合现有的GPU框架。然而,Transformer存在三大挑战:二次时间复杂度、高内存使用量和encoder-decoder架构局限性,使其不能直接适用于长期时序预测问题。本文罗列了3个近两年改良比较成功的模型,它们针对Transformer存在的问题提出了不同改进手段,分别为1)Informer模型,来自发表于AAAI21的一篇最佳论文 《Informer:BeyondEfficientTransformerforLongSequenceTime-SeriesForecasting》,提出了ProbSparse自注意机制、自注意蒸馏操作和生成式解码器这三大改进,极大地降低了模型的计算复杂性;2)Autoformer模型,由清华大学软件学院机器学习实验室在2021年提出,包含深度分解架构,和自相关机制两大创新点,能有效提升了长序列模型的预测性能;3)FEDformer模型,由阿里达摩院在2022年提出,使用了低秩近似(low-rankapproximation)将计算复杂性降为线性,并进一步提升了模型的预测精度。本篇为本系列的第二篇,分为三大部分,第一部分将介绍Transformer模型的要点和结构原理;第二部分将介绍三个变形模型各自的结构原理;第三部分将利用Transformer和三个变形模型对期货价格分别进行长序列预测并对比预测结果。 二、Transformer的结构和原理 Transformer模型和上篇报告中介绍的RNN系列模型差别较大,如图表1所示,Transformer模型宏观上使用了Encoder-Decoder框架,并且在 Encoder(编码器)和Decoder(解码器)部分都使用了多头注意力机制(Multi-HeadAttention),因此本部分先对注意力机制进行介绍,再对Transformer结构进行详细介绍。 图表1:Transformer模型的结构 资料来源:《Attentionisallyouneed》 (一)注意力机制 注意力机制最早由Treisman和Gelade提出,是一种模拟人脑注意力机制的模型,其核心目标是通过计算注意力的概率分布来从众多信息中突出某关键输入信息对输出的影响。目前大多数注意力机制均基于Encoder-Decoder框架,但需要注意的是注意力机制可以看作一种通用思想,本身是不依赖于特定框架的,而Encoder-Decoder框架可以看作是一种深度学习领域的研究模式,拥有广泛的应用场景,图表2展示了在NLP领域中常用的Encoder-Decoder抽象框架。这个框架中共含有三个部分分别为:Encoder(编码器)、Decoder(解码器)和语义表示C。其中,Encoder把一个变长的输入序列X(𝑥1,𝑥2,…,𝑥𝑛),通过非线性变换转化为一个中间的语义表示C:�=𝑓(𝑥1,𝑥2,…,𝑥𝑛);Decoder是根据输入序列X的中间语义表示C和先前已经生成的𝑦1,𝑦2,…,𝑦𝑖−1来预测并生成i时刻的输出𝑦�=𝑔(𝑦1,𝑦2,…,𝑦𝑖−1,𝐶),𝑓()和𝑔()均为非线性转化函数。在这种传统框架中,输入信息被全部保存在语义表示C中,因此模型精度受输入句子长度的影响严重,从而在模型中引入了注意力机制,如图表3所示。 图表2:抽象的Encoder-Decoder框架 资料来源:中信期货研究所 如图表3所示,和抽象的Encoder-Decoder框架相比,引入注意力机制后改变最大的部分在于语义表示C,原先针对不同输出值的语义表示C都是一致的,现在语义表示C会根据输出值对输入值做相应的权重分配。在面对一个任务时,可以把输入内容作为Source,生成目标作为Target,Source可以看成由多个 <Key,Value>对组成,而Target则由不同的Query组成,因此Attention机制的本质就是计算每一个Query在Source中所对应的值。 𝐿� 𝐴𝑡𝑡𝑒𝑛𝑡𝑖𝑜𝑛(𝑄𝑢𝑒𝑟𝑦,𝑆𝑜𝑢𝑟𝑐𝑒)=∑𝑆𝑖𝑚𝑖𝑙𝑎𝑟𝑖𝑡𝑦(𝑄𝑢𝑒𝑟𝑦,𝑘𝑒𝑦𝑖)∗𝑣𝑎𝑙𝑢𝑒�(公式1) 𝑖=1 如图表4所示,Attention机制的整体计算过程分为两步。首先,通过计算Source中所有Key与Query的相似性并对得出的相似性做Softmax归一化处理,从而得出相应权重。然后,根据得出的权重,对Value进行加权求和。 图表3:引入注意力模型的Encoder-Decoder框架 资料来源:中信期货研究所图表4:Attention计算过程 资料来源:中信期货研究所 1.自注意力机制(Self-Attention) 梳理完Attention机制后,将目光转向Transformer中使用的Self-Attention机制。和Attention机制相比Self-Attention机制最大的区别在于,Self-Attention机制中Target和Source是一致的,所以Self-Attention机制是Source内部元素之间或者Target内部元素之间发生的Attention机制。Self-Attention在计算过程中会直接将输入信息中任意两个信息直接联系起来,所以能有效缓解RNN系列算法自带的长期依赖问题。图表5展示了Self-Attention的计算流程,把Query、Key和Value分别装入Q、K和V三个矩阵中,再将三个矩阵带入以下公式中(公式2)就可以求得Value的权重,这种计算方法被称为缩放点积注意力(ScaledDot-ProductAttention),其中,𝑑�为Key的维度。 𝐴𝑡𝑡𝑒𝑛𝑡𝑖𝑜𝑛(𝑄,𝐾,𝑉)=𝑠𝑜𝑓𝑡𝑚𝑎�(𝑄𝐾𝑇)𝑉(公式2) √𝑑� 图表5:缩放点积注意力模块(ScaledDot-ProductAttention)的计算流程 资料来源:《Attentionisallyouneed》 2.多头注意力机制(Multi-HeadAttention) Vaswani发现使用多头注意力机制(Multi-HeadAttention)对输入信息进行多角度关联比使用单一注意力机制更有效,因此在Transformer模型中采用了Multi-HeadAttention机制,图表6展示了Multi-HeadAttention机制的计算流程,计算公式如下。 𝑀𝑢𝑙𝑡𝑖𝐻𝑒𝑎𝑑(𝑄