亞馬遜最新時序大模型:將時間序列完全轉換成文本
亞馬遜發布了新版的時間序列大模型Chronos,用來進行時間序列概率預測的統一框架。這個模型的核心點是通過細致的數據處理,完全將時間序列數據轉換成token,再結合NLP中的T5等模型結構,以交叉熵為目標,訓練時間序列模型,在多個數據集上取得了SOTA效果。下面給大家詳細介紹Chronos的實現原理。
論文標題:Chronos: Learning the Language of Time Series
下載地址:??https://arxiv.org/pdf/2403.07815v1.pdf??
1.時間序列Tokenize
這一步需要將時間序列轉換成離散化的token,方便后續類似于語言模型的建模。主要分為Scaling和Quantization兩個步驟。
Scaling:對時間序列值進行縮放,本文使用的方法是用歷史窗口的時間序列均值作為分母,標準化整個時間序列,這種做法也是亞馬遜的時間序列相關論文中常用的一種處理方法;
Quantization:將scaling后的時間序列數據離散化,做法也很簡單,定義一些分桶邊界值,落入各個分桶的就被離散化成相應的桶號。
此外,文中還引入了兩種特殊符號,<PAD>用來進行時間序列的填充,<EOS>用來加到整個序列末尾,標識時間序列的結束。
2.優化目標
Chronos的優化目標也和傳統的時間序列預測模型不同,傳統的時間序列模型一般采用MSE這種回歸loss進行優化,而Chronos直接使用和語言模型相同的優化目標交叉熵進行優化,將回歸問題轉換成了分類問題,預測目標也變成了根據前序的token,預測下一個token為各個結果的概率。
最終的預測結果,根據預測的桶號ID,反離散化成對應的值,再進行反scale,得到最終預測結果。
3.數據增強
數據增強是Chronos中的核心一環,用來提升模型效果。主要采用了TSMix和KernelSynth兩種數據增強方法。
TSMix:借鑒了CV中的Mixup方法,對多個時間序列按權重做差值,生成新的時間序列;
KernelSynth:使用高斯過程直接生成人造時間序列。
4.實驗效果
下圖為Chronos和其他SOTA時間序列預測方法的效果對比,從圖中可以看出,使用T5作為base,且模型尺寸為Large的模型取得了最優的效果。從圖中可以看出,模型的尺寸對于最終效果的影響比較大,越大的Chronos效果越好。
本文轉載自 ??圓圓的算法筆記??,作者: Fareise
