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