【文章学习系列之模型】Non-stationary Transformers

news/2024/11/30 1:38:04/

本章内容

  • 文章概况
  • 总体结构
  • 主要模块
    • Series Stationarization(序列平稳化模块)
    • De-stationary Attention(逆平稳化注意力模块)
  • 实验结果
  • 消融实验
  • 总结

文章概况

《Non-stationary Transformers:Exploring the Stationarity in Time Series Forecasting》是2022年发表于NeurIPS上的一篇文章。在过去的时序预测研究中,人们常通过数据平稳化减弱原始序列的非平稳性,这一做法与时序预测对突发事件预测的意义相悖,忽略了现实场景下非平稳数据的普遍存在性,最终导致建模和预测过平稳化。为了解决这个问题,该论文提出由序列平稳化和逆平稳化注意力组成的新的网络结构。

总体结构

在这里插入图片描述
上图为本文所提模型结构。数据 x x x首先经过一个标准化模块(Normalization)获得变换后的序列 x ′ x^{'} x,接着对其进行编码操作,并将编码后的结果输入常见的Encoder-Decoder模块中,最终经过一个逆标准化模块(De-Normalization)后输出预测结果。其中一对标准化-逆标准化模块作者将其称为平稳化模块。与一般Transformer不同的是,作者对 Q K V Q K V QKV均作了调整,所提结构逆平稳化注意力模块(De-stationary Attention)代替了传统注意力模块,并接收了来自外界的两个参数 τ τ τ Δ Δ Δ用来计算注意力得分。

主要模块

Series Stationarization(序列平稳化模块)

非平稳化序列在预测任务中通常难度较大,因此人们希望将其转换为平稳数据进行预测。在此之前已有的方法:RevIN。该方法将输入数据进行标准化,并对标准化之后的结果添加可学习参数(权重a和偏置项b),最后在预测输出时进行对应的逆运算。该方法已被证实是有效的。受此启发,作者精简了RevIN的操作,舍弃了可学习参数,即数据的输入和输出只需要标准化和逆标准化。

De-stationary Attention(逆平稳化注意力模块)

序列平稳化模块确实能够有效将非平稳数据转化为平稳数据,但平稳化不可避免地丢失非平稳化特征,导致数据的过平稳化,这对时序预测的目的而言无疑是一场灾难。
在这里插入图片描述
为了说明这一点,作者作出了注意力机制中所学习到的特征图,如上图所示。非平稳序列一般由若干个不同的子序列组成,将其中不同的子序列分别输入到一般性Transformer、带有序列平稳化模块的Transformer以及本文所提方法中。
可以发现,对不同子序列的特征提取,Transformer和本文方法提取到不同的三组特征,而带有序列平稳化模块的Transformer则提取到了非常相似的特征。这表明序列平稳化使得不同子序列提取的特征趋同,以丢失差异性特征的方法简化了特征提取的结果,不利于后续预测任务的开展。
与之形成对比的是本文所提方法,在序列平稳化后,成功地通过创新注意力模块来将原先丢失的非平稳化特征融入至注意力所学习到的特征中。接下来,我们来具体看看是如何做到的。

一般性注意力模块De-stationary Attention
在这里插入图片描述在这里插入图片描述
z = s o f t m a x ( Q K T d k ) V z=softmax(\frac{QK^{T} }{\sqrt{d_{k} } } )V z=softmax(dk QKT)V z ′ = s o f t m a x ( τ Q ′ K ′ T + 1 Δ T d k ) V ′ z'=softmax(\frac{τQ^{'}K^{'T} +1Δ^{T}}{\sqrt{d_{k} } } )V^{'} z=softmax(dk τQKT+1ΔT)V

上面表格左边为一般性注意力模块,右边为文章所提De-stationary Attention。我们可以发现,两者的差别主要是后者调整了 Q K V Q K V QKV并多了 τ Δ τ Δ τΔ两个参数。通过这样的变化,作者尝试将非平稳特征添加进注意力模块中,具体计算步骤如下。

1.为了简化运算,假设 Q Q Q是由 x x x通过线性映射所得
2.为了便于公式的推导,假设每一批次的输入序列具有同样的期望和方差,
此时有 x ′ = x − 1 μ x T σ x^{'}=\frac{x-1\mu ^{T}_x}{\sigma } x=σx1μxT,可得 Q ′ = Q − 1 μ Q T σ Q^{'}=\frac{Q-1\mu ^{T}_Q}{\sigma } Q=σQ1μQT K ′ = K − 1 μ K T σ K^{'}=\frac{K-1\mu ^{T}_K}{\sigma } K=σK1μKT
3.代入计算,可得 Q ′ K ′ = 1 σ x 2 [ Q K T − 1 ( μ Q T K T ) − ( Q μ K ) 1 T + 1 ( μ Q T μ K ) 1 T ] Q^{'}K^{'}=\frac{1}{\sigma^2_x}[QK^T-1(\mu^T_QK^T)-(Q\mu_K)1^T+1(\mu^T_Q\mu_K)1^T] QK=σx21[QKT1(μQTKT)(QμK)1T+1(μQTμK)1T]
4.因此可将原先的注意力公式转化为 s o f t m a x ( Q K T d k ) = s o f t m a x ( σ x 2 Q ′ K ′ T + 1 ( μ Q T K T ) + ( Q μ K ) 1 T − 1 ( μ Q T μ K ) 1 T d k ) softmax(\frac{QK^{T} }{\sqrt{d_{k} } })=softmax(\frac{\sigma^{2}_xQ'K'^T+1(\mu^T_QK^T)+(Q\mu_K)1^T-1(\mu^T_Q\mu_K)1^T}{\sqrt{d_{k}}}) softmax(dk QKT)=softmax(dk σx2QKT+1(μQTKT)+(QμK)1T1(μQTμK)1T)
5.此时第二点简化期望和方差为标量就发挥作用了。第四点的公式中分子上的最后两项为常数项,可以删去,这样便可得
z ′ = s o f t m a x ( Q K T d k ) = s o f t m a x ( σ x 2 Q ′ K ′ T + 1 ( μ Q T K T ) d k ) z'=softmax(\frac{QK^{T} }{\sqrt{d_{k} } })=softmax(\frac{\sigma^{2}_xQ'K'^T+1(\mu^T_QK^T)}{\sqrt{d_{k}}}) z=softmax(dk QKT)=softmax(dk σx2QKT+1(μQTKT))
6.对于5中的公式, Q ′ K ′ d k Q' K' \sqrt{d_{k}} QKdk 已知(表格左图)可以计算得到,而与非平稳信号相关的 σ x \sigma_x σx K K K μ Q \mu_Q μQ σ 2 \sigma^2 σ2记为 τ ( τ ≥ 0 ) τ(τ≥0) τ(τ0) K μ Q K\mu_Q KμQ记为 Δ Δ Δ,作者使用多层感知机将其非平稳化特征带入到平稳化之后的计算中,可得 z ′ = s o f t m a x ( τ Q ′ K ′ T + 1 Δ T d k ) z'=softmax(\frac{τQ'K'^T+1Δ^T}{\sqrt{d_{k}}}) z=softmax(dk τQKT+1ΔT)
l o g τ = M L P ( σ x , x ) 和 Δ = M L P ( μ x , x ) logτ=MLP(\sigma_x,x)和Δ=MLP(\mu_x,x) lo=MLP(σx,x)Δ=MLP(μx,x)

实验结果

在这里插入图片描述
作者在真实世界中六种数据集进行测试,从实验角度和公式的推导角度说明了实验的先进性。
(更多实验结果见论文)

在这里插入图片描述
如上图,作者还将本文所提的框架应用于之前的Transformer模型中,通过实验说明了本文所提框架的优越性。

消融实验

在这里插入图片描述
该部分主要针对一般性Transformer、一般性Transformer+时序平稳以及本文所提方法进行对比。可以看出a、c具有显著的差异性波动,而b的波动相对稳定,显然是因为平稳化模块发挥的作用,而这正是作者所说的过平稳化。在逆平稳化注意力模块的帮助下,c中重回a中的非平稳状态,表现了该模块发挥的巨大的作用,一定程度减少了国过平稳化的负面影响,有利于时间序列准确的变化和预测,在这一类研究课题中具有重要的意义。

总结

这篇论文的目标很明确,指出过平稳化的问题并提出了一个有效的方法,这种方法在公式的推导中往往需要一些技巧,比如近似值处理、常数项归零、数学假设等等,虽然从纯理论的角度有些内容难以完美推导,但在各种化繁为简的操作下完成一套合理有效的试验方法其优异结果带来的价值已超出零散理论不足带来的弊病。


http://www.ppmy.cn/news/59037.html

相关文章

Vue3.0

Vue3.0 动机与目的 更好的逻辑复用 与 代码组织 (composition组合式api) optionsAPI(旧) > compositionAPI(新), 效果: 代码组织更方便了, 逻辑复用更方便了 非常利于维护!! 更好的类型推导 (typescript支持) **vue3 源码用 ts 重写了, vue3 对 ts 的…

什么是Java中的注解?

Java中的注解(Annotation)是一种元数据,用于为Java代码提供额外的信息和指示,例如代码的作用、编译时处理方式、运行时行为等等。注解可以通过在代码中添加注解元素来指定其属性值,从而对代码进行自定义和扩展。 Java…

LiangGaRy-学习笔记-Day10

1、知识回顾 1.1、rpm依赖报错问题 rpm安装的时候,会有依赖报错rpm安装httpd服务,体现报错 #rpm安装httpd [rootNode1 ~]# rpm -ivh /mnt/cdrom/Packages/httpd-2.4.6-88.el7.centos.x86_64.rpm warning: /mnt/cdrom/Packages/httpd-2.4.6-88.el7.ce…

【数据结构】JDK HashMap源码解析

目录 🌟HashMap源码解析 🌈类的属性 🌈构造方法 🌈put方法 🌟对比常用Map的子类实现: 🌟HashMap源码解析 JDK8之前,HashMap就是数组链表; JDK8之后,变成了数组链表红…

基础的文件操作

目录 ❤ 什么是文件? ❤ 为什么要有文件? ❤ 如何用文件? 从硬盘中读取数据 写入数据 ❤ 总结 python从小白到总裁完整教程目录:https://blog.csdn.net/weixin_67859959/article/details/129328397?spm1001.2014.3001.5502 虽然视…

【看表情包学Linux】软硬链接

🤣 爆笑教程 👉 《看表情包学Linux》👈 猛戳订阅 🔥 💭 写在前面:上面我们学到的所有东西,全部都是在内存中的。是不是所有的文件都被打开了呢?不是所有的文件,都被打开…

​kali下搭建WiFi钓鱼热点​

在linux下建立无线热点并不像在windows下开启网络共享或者使用无线网卡驱动设置AP模式即可。 linux下的无线共享要用到两个软件:hostapd(创建无线热点)、dnsmasq(dns服务和dhcp服务). 1.安装以上两个软件: 1 2 apt-get install hostapd apt-get install…

【Windows】git多帐号配置

【Windows】git多帐号配置 📔 千寻简笔记介绍 千寻简笔记已开源,Gitee与GitHub搜索chihiro-notes,包含笔记源文件.md,以及PDF版本方便阅读,且是用了精美主题,阅读体验更佳,如果文章对你有帮助…