Python知識分享網(wǎng) - 專業(yè)的Python學習網(wǎng)站 學Python,上Python222
時間序列Transformer for TimeSeries時序預測算法詳解 DOC 下載
匿名網(wǎng)友發(fā)布于:2025-12-04 09:45:08
(侵權(quán)舉報)
(假如點擊沒反應,多刷新兩次就OK!)

時間序列Transformer for TimeSeries時序預測算法詳解 圖1

 

 

資料內(nèi)容:

 

1.1 背景

2017年,Google的一篇 Attention Is All You Need 為我們帶來了Transformer,其在NLP領(lǐng)域的重大成功展示了它對時序數(shù)據(jù)的強大建模能力,自然有人想要把Transformer應用到時序數(shù)據(jù)預測上。在Transformer的基礎(chǔ)上構(gòu)建時序預測能力可以突破以往的諸多限制,最明顯的一個增益點是,Transformer for TS可以基于Multi-head Attention結(jié)構(gòu)具備同時建模長期和短期時序特征的能力。

 

 

1.2 發(fā)展歷史

一般來說,談及DL領(lǐng)域時序預測,首先大家會想到RNN類的模型,但RNN在網(wǎng)絡(luò)加深時存在梯度消失和梯度爆炸問題。即使是后續(xù)的LSTM,在捕捉長期依賴上依然力不從心。再后面有了Amazon提出的DeepAR,是一種針對大量相關(guān)時間序列統(tǒng)一建模的預測算法,該算法使用遞歸神經(jīng)網(wǎng)絡(luò) (RNN) 結(jié)合自回歸(AR) 來預測標量時間序列,在大量時間序列上訓練自回歸遞歸網(wǎng)絡(luò)模型,并通過預測目標在序列每個時間步上取值的概率分布來完成預測任務。

本文對上述三種歷史算法不做深入分析,概念有不清楚的童鞋自己搜哈。

1.3 ConvTrans

直接說ConvTrans, 其實它與DeepAR有很多相似的地方,比如它也是一個自回歸的概率預測模型,對于下一步預測采用分位數(shù) ?10 (分位數(shù)就是以概率將一批數(shù)據(jù)進行分割,比如 ?10=? 代表一批數(shù)據(jù)中小于a的數(shù)占總數(shù)的10%)、 ?50 等;再比如ConvTrans也支持協(xié)變量預測,可以接受輸入比如氣溫、事件、個體標識等等其他相關(guān)變量來輔助預測。

不同的是ConvTrans具備Transformer架構(gòu)獨有的優(yōu)勢,大致為以下四點:

  1. 支持并行,訓練得更快?;?/span>RNN的模型中每一個隱狀態(tài)都依賴于它前一步的隱狀態(tài),因此必須從前向后必須逐個計算,每一次都只能前進一步。而Transformer沒有這樣的約束,輸入的序列被并行處理,由此帶來更快的訓練速度。
  2. 更強的長期依賴建模能力,在長序列上效果更好。在前面提到過,基于RNN的方法面對長序列時無法完全消除梯度消失和梯度爆炸的問題,而Transformer架構(gòu)則可以解決這個問題
  3. Transformer可以同時建模長期依賴和短期依賴。Multi-head Attention中不同的head可以關(guān)注不同的模式。
  4. Transformer的AttentionScore可以提供一定的可解釋性。通過可視化AttentionScore可以看到當前預測對歷史值注意力的分布。

當然Transformer for TS架構(gòu)也有相應的缺點:

  1. 是基于序列的編解碼結(jié)構(gòu)(seq2seq),編碼器和解碼器均采用基于自注意力機制的網(wǎng)絡(luò),所以計算空間復雜度大,需要處理序列的編解碼。
  2. 原始Transformer的自注意力計算方法對局部信息不敏感,使得模型易受異常點影響,帶來了潛在的優(yōu)化問題。

2019NIPS的論文[1]針對這些缺點做了相應的2點改進:

  1. Convolutional Self-Attention :針對時序數(shù)據(jù)預測任務的特點,增強對局部上下文信息的關(guān)注,使預測更精準 。
  2. LogSparse :解決了Attention計算空間復雜度太高的問題,使模型能處理更長的時間序列數(shù)據(jù)。