比肩Transformer的Mamba在時間序列上有效嗎?
Mamba是最近最火的模型之一,更是被業內認為可以有取代Transformer的潛力。今天介紹的這篇文章,探索了Mamba模型在時間序列預測任務上是有有效。本文首先給大家介紹Mamba的基礎原理,再結合這篇文章探索在時間序列預測場景中Mamba是否有效。
論文標題:Is Mamba Effective for Time Series Forecasting?
下載地址:??https://arxiv.org/pdf/2403.11144.pdf??
1、Mamba基礎原理
Mamba是一種基于State Space Model的結構,和RNN非常像。Mamba相比Transformer,在訓練階段和inference階段都有隨序列長度線性增長的時間復雜度,運算效率顯著由于Transformer這種結構。
Mamba的核心可以分為以下4個部分:
State Space Model(SSM):狀態空間模型,用來刻畫上一個狀態對當前狀態的影響,以及當前狀態對輸出的影響;State Space Model中假設上一個狀態和當前時刻的輸入會影響下一個狀態,并且當前的觀測結果是由當前狀態決定的。SSM可以表示為如下形式,矩陣A、B、C、D為超參數;
卷積表達:用卷積來表達SSM,實現訓練階段的并發計算,通過將SSM中的計算輸出的公式按照時間展開,通過設計相應的卷積核到一定的形式,可以利用卷積來表達每個時刻的輸出為前面3個時刻輸出的函數:
Hippo Matrix:對于參數A,引入Hippo Matrix實現對歷史信息的衰減融合;
Selective模塊:對于參數B和參數C個性化的矩陣實現對歷史信息的個性化選擇,將每個時刻的參數矩陣轉換成關于輸入的函數,實現每個時刻個性化的參數。
關于Mamba更詳細的模型解析,以及后續的Mamba相關工作,也更新到了知識星球中,感興趣的同學可以在星球中進一步深入學習。
2、Mamba時間序列模型
下面介紹一下這篇文章中提出的Mamba時間序列預測框架,整體基于Mamba,對時間序列數據進行適配。整體分為Embedding、S/D-Mamba layer、Norm-FFN-Norm Layer三個部分。
Embedding:類似iTransformer的處理方法,對每個變量單獨進行映射,生成每個變量的embedding,再將每個變量的embedding輸入到后續的Mamba中。因此本文也可以看成是對iTransformer的模型結構的一個改造,改成了Mamba結構;
S/D-Mamba layer:Embedding的輸入維度為[batch_size, variable_number, dim],將其輸入到Mamba中,文中探索了S和D兩種Mamba層,分別表示每層用一個mamba還是兩個mamba,兩個mamba會將兩個的輸出相加得到每層的輸出結果;
Norm-FFN-Norm Layer:在輸出層,使用normalization層和FFN層對Mamba的輸出表征進行歸一化和映射,結合殘差網絡,提升模型收斂性和穩定性。
3、實驗效果
下圖是文中的核心實驗結果,對比了Mamba和iTransformer、PatchTST等業內主流時間序列模型的效果。文中還對不同的預測窗口、泛化性等進行了實驗對比。實驗表明,Mamba不僅在計算資源上有優勢,在模型效果上也可以比肩Transformer相關的模型,并且在長周期的建模上也很有前景。
本文轉載自? ????圓圓的算法筆記??,作者: Fareise???
