论文笔记 Enhancing the Locality and Breaking the MemoryBottleneck of Transformer on Time Series Forecas

NIPS 2019

1 简介

  • 相比于RNN,Transformer可以更好地建模长时间序列
    • RNN 训练起来比较困难(梯度消失/梯度爆炸)
    • RNN对于捕捉长期依赖关系比较困难
  • 但是Transformer也有一定的问题:
    • 局部性不可感知
    • 存储空间瓶颈
      • 传统Transformer的空间和时间复杂度是O(n^2)
      • 这篇论文提出来的LogSparse Transformer 的内存消耗是O(N(logN)^2)

2 背景知识

2.1 问题定义

  • 假设有N个相关的时间序列 \{Z_{I,1:t_0}\}^N_{t=1},其中每个z_{i,1:t_0}是时间序列i [z_{i,1},\cdots,z_{i,t_0}]
  • 任务是希望预测之后所有时间序列的τ时间步 \{z_{i,{t_0+1}:{t_0+\tau}}\}
  • 与此同时,令\{x_{i,1:t_{0+\tau}}\}^N_{i=1}表示和时间序列相关联的向量(比如一周的哪一天,一天的哪个小时等)
  • 计划是通过X和Z预测未来时间步的z

  • 对于等式右侧各个条件概率,问题可以简化为:p(z_t|z_{1:t-1},x_{i,1:t};\Phi )
  • 方便起见,我们把z和x合并成一个增广矩阵Y

2.2 Transformer

 机器学习笔记:Transformer_UQI-LIUWJ的博客-优快云博客

预测时间序列的时候,我们是不能看到未来时间序列的信息的,所以这里的attention矩阵,上三角矩阵全是-∞

3 方法

3.1 提升Transformer可以看到的局部性

 

  • 传统的Transformer中,我们是对每个点单独进行Q,K,V的投影计算的。
  • 这导致的一个问题是,比如图(a)中的两个红点,他们尽管在时间序列上的特征不同(一个是陡增一个是缓趋势),但是由于绝对数值一样,所以算出来的两个attention是很接近的
  • 而(c)中框起来的两块区域,他们的局部特征是很类似的,但是由于他们的绝对数值不一样,所以算出来的两个attention不大(但理论上应该是比较大的)

为了让Transformer的Q,K可以看到一定时间序列的局部特征,这里引入了卷积自注意力。

 

  •  这里使用stride为1,kernel大小为k的因果卷积来计算Q和K。通过因果卷积,Q和K可以更好地知晓当前时刻的局部时间序列信息
  • 传统Transformer可以看成这种情况的特例,即k=1的情况

3.2 解决Transformer 内存瓶颈的问题

3.2.1 局部attention实验

作者首先做了实验,可视化了传统Transformer各层学到的attention究竟来自哪个时刻 

可以看到,在第二层的时候,attention可能还来自于很远处的时间片;但是到了第10层的时候,attention基本上就来自于局部的时间片了。

——>所以在进行attention的时候,一定的稀疏性可能不会很显著地影响结果

3.2.2 LogSparse Transformer 

  • 于是这篇论文提出了LogSparse Transformer
    • 每一层的每一个单元只需要计算O(logL)次内积
    • 最多迭代O(logL)层
    • ——>所以总的空间复杂度是O(L*logL*logL)=O(L(logL)^2) 
  • I_l^k为l时刻的单元从第k层到第k+1层所能看到的其他时间序列单元的集合
    • 传统Transformer中I_l^k=\{j:j\le l\}
    • 在这里,作者希望I_l^k \subset \{j:j\le l\}, |I_l^k| \propto logL
  • S_l^{k}表示第k层第l个单元可以看到的所有时间序列单元的集合
    • 如果最后一层,每一个l单元的S_l^{k}都包含了所有在它前面的时刻单元,那么就是一个有效的全局attention
    • 换言之,任取单元l,和一个在l前面的时刻单元j,都有一条路径P_{jl}=(j,p_1,p_2,\cdots,l), j \in I^1_{p_1},p_1 \in I^2_{p2}, \cdots, p_{k-1} \in I_l^{k}

     

  • LogSparse 自注意力的设计是,I^k_l=\{l-2^{\lfloor log_2l \rfloor},l-2^{\lfloor log_2l \rfloor-1},l-2^{\lfloor log_2l \rfloor-2},\cdots,l-2^{0},l\} 

 

3.2.3 Local Attention

        对cell前面的O(log_2L)个点,我们也考虑他们的attention,这样的话局部的信息(比如trend),也可以被利用,同时不影响复杂度的级数

3.2.4 restart attention

将长时间序列拆分成几个subsequence,在每个subsequence里面使用LogSparse attention

 

 

local attention可以和 restart attention合并使用

 4 实验部分

4.1 预测结果

 

4.2  训练的curve

 

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

UQI-LIUWJ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值