时间序列预测方法之 Transformer

本文链接个人站 | 简书 | CSDN
版权声明:除特别声明外,本博客文章均采用 BY-NC-SA 许可协议。转载请注明出处。

最近打算分享一些基于深度学习的时间序列预测方法。这是第三篇。

前面介绍的 DeepARDeepState 都是基于 RNN 的模型。RNN 是序列建模的经典方法,它通过递归来获得序列的全局信息,代价是无法并行。CNN 也可以用来建模序列,但由于卷积捕捉的是局部信息,CNN 模型往往需要通过叠加很多层才能获得较大的感受野。后续我可能会~~(意思就是未必会)~~介绍基于 CNN 的时间序列预测方法。Google 在 2017 年发表的大作 Attention Is All You Need 为序列建模提供了另一种思路,即单纯依靠注意力机制(Attention Mechanism),一步到位获得全局信息。Google 将这个模型称为 Transformer。Transformer 在自然语言处理、图像处理等领域都取得了很好的效果。Transformer 的结构如下图所示(误
Transformer

今次要介绍的是一篇 NIPS 2019 的文章 Enhancing the Locality and Breaking the Memory Bottleneck of Transformer on Time Series Forecasting,该文章将 Transformer 模型应用到时间序列预测中1,并提出了一些改进方向。

我们首先介绍注意力机制,然后简单介绍一下模型,最后给出一个 demo。

Attention

根据 Google 的方案,Attention 定义为
A t t e n t i o n ( Q , K , V ) = s o f t m a x ( Q K ⊤ d k ) V \mathrm{Attention}(Q, K, V) = \mathrm{softmax}\left(\frac{QK^\top}{\sqrt{d_k}}\right)V Attention(Q,K,V)=softmax(dk QK)V
其中 Q ∈ R n × d k Q\in\mathbb R^{n\times d_k} QRn×dk K ∈ R m × d k K\in\mathbb R^{m\times d_k} KRm×dk V ∈ R m × d v V\in\mathbb R^{m\times d_v} VRm×dv。从矩阵的维度信息来看,可以认为 Attention 把一个 n × d k n\times d_k n×dk 的序列 Q Q Q 编码成一个 n × d v n\times d_v n×dv 的新序列。记 Q = [ q 1 , q 2 , ⋯   , q n ] ⊤ Q = [q_1, q_2, \cdots, q_n]^\top Q=[q1,q2,,qn] K = [ k 1 , k 2 , ⋯   , k m ] ⊤ K = [k_1, k_2, \cdots, k_m]^\top K=[k1,k2,,km] V = [ v 1 , v 2 , ⋯   , v m ] ⊤ V = [v_1, v_2, \cdots, v_m]^\top V=[v1,v2,,vm

  • 48
    点赞
  • 359
    收藏
    觉得还不错? 一键收藏
  • 20
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值