圖1 單系列預(yù)測和多系列預(yù)測示意圖

3 相關(guān)研究

深度學(xué)習(xí)預(yù)測模型在Makridakis競賽中取得成功,廣泛應(yīng)用于產(chǎn)業(yè)大規(guī)模任務(wù)。最初的成功源于對RNN和CNN的改進,這兩種架構(gòu)最初為NLP和CV設(shè)計。RNNs和CNNs在時間序列預(yù)測中表現(xiàn)優(yōu)異。前饋網(wǎng)絡(luò)由于計算成本低、效率高,也經(jīng)常被使用。

近年來,基于Transformer的模型越來越受歡迎,因為它們在大規(guī)模設(shè)置和復(fù)雜任務(wù)中表現(xiàn)出卓越的性能。基礎(chǔ)模型在時間序列預(yù)測任務(wù)中的潛力仍然相對未被探索,但有一些關(guān)于預(yù)測基礎(chǔ)模型可能性的早期跡象

4 時間序列的基礎(chǔ)模型

基礎(chǔ)模型依賴跨領(lǐng)域泛化能力,尤其是面對新數(shù)據(jù)集。遷移學(xué)習(xí)是將一個任務(wù)的知識用于新任務(wù)。預(yù)測模型給出一個函數(shù)fθ : X 7→ Y,其中X是特征空間,Y是因變量空間。我們考慮X = {y[0:t] , x[0:t+h]}和Y = {y[t+1:t+h]},目標是估計以下條件分布:

遷移學(xué)習(xí)是在源數(shù)據(jù)集上預(yù)訓(xùn)練模型,以提高在目標數(shù)據(jù)集的新預(yù)測任務(wù)上的性能。有兩種情況:零樣本學(xué)習(xí)和微調(diào)。在零樣本學(xué)習(xí)中,直接轉(zhuǎn)移預(yù)訓(xùn)練模型;在微調(diào)中,則在新數(shù)據(jù)集上進一步訓(xùn)練模型。基礎(chǔ)大模型的核心思想是利用大規(guī)模公開可用時間序列數(shù)據(jù)集進行訓(xùn)練,并利用數(shù)據(jù)集和模型規(guī)模的比例關(guān)系。多種多樣的數(shù)據(jù)集使TimeGPT能夠洞見大量時間模式。

5 TimeGPT

5.1 介紹

TimeGPT是Nixtla開發(fā)的用于預(yù)測任務(wù)的生成式預(yù)訓(xùn)練Transformer模型,具有自我關(guān)注機制和局部位置編碼,由多層編碼器-解碼器結(jié)構(gòu)組成,每個結(jié)構(gòu)都具有殘差連接和層歸一化。該模型旨在處理不同頻率和特征的時間序列,同時適應(yīng)不同的輸入大小和預(yù)測范圍。TimeGPT可以僅使用歷史值作為輸入,無需訓(xùn)練即可對新時間序列進行準確預(yù)測。該模型在歷史上最大的數(shù)據(jù)集上進行了訓(xùn)練,包含超過1000億行的金融、天氣、能源和網(wǎng)絡(luò)數(shù)據(jù)。API為TimeGPT提供了一個接口,允許用戶利用其預(yù)測功能來預(yù)測未來的事件。

5.2 訓(xùn)練數(shù)據(jù)集

TimeGPT在訓(xùn)練過程中,使用了規(guī)模最大的公開時間序列數(shù)據(jù)集,該數(shù)據(jù)集包含了高達1000億個數(shù)據(jù)點,覆蓋了金融、經(jīng)濟等多個領(lǐng)域。這個數(shù)據(jù)集的特點在于其多樣性,包含了多種時間模式、季節(jié)性、周期和趨勢,同時也存在噪聲和異常值。在處理這些序列時,我們僅進行了格式標準化和缺失值填補等基本操作,盡量保留了數(shù)據(jù)的原始信息。這種處理方式使得TimeGPT能夠適應(yīng)各種復(fù)雜場景,提升其魯棒性和泛化能力,從而實現(xiàn)對未知時間序列的準確預(yù)測。

5.3 訓(xùn)練TimeGPT

TimeGPT在NVIDIA A10G GPU集群上訓(xùn)練,進行了超參數(shù)探索以優(yōu)化學(xué)習(xí)率、批大小等。發(fā)現(xiàn)較大的批大小和較小的學(xué)習(xí)率有益。在PyTorch中實現(xiàn),使用Adam訓(xùn)練,學(xué)習(xí)率衰減到初始值的12%。

5.4 不確定度量化

概率預(yù)測評估模型預(yù)測的不確定性,有助于風險評估和決策。保形預(yù)測是一種非參數(shù)方法,能生成具有指定覆蓋率精度的預(yù)測區(qū)間,無需嚴格的分布假設(shè),適用于模型和時間序列的未知領(lǐng)域。在新時間序列推理中,我們滾動預(yù)測以估計模型預(yù)測特定目標時間序列的誤差。

圖2 TimeGPT 在最大的公開時間序列集合中進行了訓(xùn)練,并且可以預(yù)測未見過的時間序列,而無需重新訓(xùn)練其參數(shù)

6 實驗結(jié)果

傳統(tǒng)預(yù)測性能評估方法,如劃分訓(xùn)練集和測試集,不足以評估基礎(chǔ)模型,因為它們主要屬性是預(yù)測完全新穎的序列。

本節(jié)探討了TimeGPT作為預(yù)測基礎(chǔ)模型的能力,通過從未見過的大量不同時間序列中測試TimeGPT。測試集包括多個領(lǐng)域的30多萬個時間序列。評估在每個時間序列的最后一個預(yù)測窗口中進行,其長度隨采樣頻率的變化而變化。TimeGPT使用以前的歷史值作為輸入,如圖3,而不重新訓(xùn)練其權(quán)重(零樣本)。根據(jù)頻率指定了不同的預(yù)測范圍,以表示常見的實際應(yīng)用:12表示每月,1表示每周,7表示每天,24表示每小時的數(shù)據(jù)。

圖3 新時間序列的推斷。

TimeGPT以目標值的歷史值和額外的外生變量作為輸入,生成預(yù)測。我們依靠基于歷史誤差的保形預(yù)測來估計預(yù)測區(qū)間。

圖4 TimeGPT和各組模型在月頻率上的相對平均絕對誤差(rMAE)。

圖中每個豆子代表一組模型的rMAE分布,中心線顯示平均值。TimeGPT的性能領(lǐng)先,其次是深度學(xué)習(xí)方法、統(tǒng)計方法、機器學(xué)習(xí)和基線模型。其他頻率的結(jié)果類似。

本文對基準測試中的性能分析進行了全面研究,涉及基線、統(tǒng)計、機器學(xué)習(xí)和神經(jīng)預(yù)測模型。基線和統(tǒng)計模型基于歷史值訓(xùn)練,機器學(xué)習(xí)采用全局模型和深度學(xué)習(xí)方法,排除了Prophet和ARIMA等模型。評估指標包括相對平均絕對誤差和相對均方根誤差,這些指標以季節(jié)性樸素模型為基準進行了歸一化處理,展示了相對于已知基準的性能提升,提高了結(jié)果的可解釋性。同時,這些指標具有尺度獨立性,有助于比較每種頻率的結(jié)果。為了確保數(shù)值的穩(wěn)定性和評估的一致性,對這些指標進行了全局歸一化處理。具體的計算方式詳見方程2。

6.1 零樣本推理

TimeGPT在零樣本推理測試中表現(xiàn)出色,無需額外微調(diào)即可在測試集上表現(xiàn)出色。表1顯示了其零樣本結(jié)果,其性能明顯優(yōu)于其他模型。在實際應(yīng)用中,TimeGPT通過簡單、快速地調(diào)用預(yù)訓(xùn)練模型進行預(yù)測,提高了預(yù)測效率,降低了計算成本和實現(xiàn)復(fù)雜性,因此更具競爭力。

表1 使用零樣本推斷和使用rMAE和rRMSE測量的基準模型的TimeGPT的主要性能結(jié)果,得分越低越好。每個頻率和度量的最佳模型以粗體突出顯示,第二個最佳模型以下劃線突出顯示,而第三個最佳模型則以虛線突出顯示。

6.2 微調(diào)

微調(diào)是利用基礎(chǔ)模型和基于transformer架構(gòu)的關(guān)鍵步驟。基礎(chǔ)模型在大量數(shù)據(jù)上預(yù)訓(xùn)練,捕獲通用特征,但需針對特定背景或領(lǐng)域?qū)iT化。微調(diào)在特定任務(wù)數(shù)據(jù)集上調(diào)整模型參數(shù),使模型根據(jù)新任務(wù)要求調(diào)整現(xiàn)有知識,保持廣泛理解并擅長特定任務(wù)。由于transformer架構(gòu)的靈活性和學(xué)習(xí)復(fù)雜模式的能力,微調(diào)特別有益,提高特定領(lǐng)域性能。因此,微調(diào)是連接基礎(chǔ)模型廣泛能力和目標任務(wù)特性的重要橋梁。圖5顯示TimeGPT在測試集上針對時間序列子集的微調(diào)步驟數(shù)與準確度提高的關(guān)系。

圖5 對測試集的時間序列子集進行微調(diào)后的 TimeGPT 性能

6.3 時間比較

在零樣本推斷方面,TimeGPT的GPU推斷速度在零樣本推斷方面表現(xiàn)出色,平均每系列只需0.6毫秒,與簡單季節(jié)性樸素推斷相當。相比之下,并行計算優(yōu)化的統(tǒng)計方法和全局模型(如LGBM、LSTM和NHITS)的速度較慢,每系列需要600毫秒和57毫秒。因此,TimeGPT的總速度比傳統(tǒng)統(tǒng)計方法和全局模型快幾個數(shù)量級。

7 討論和未來的研究

當前預(yù)測實踐涉及數(shù)據(jù)處理、模型訓(xùn)練和選擇等復(fù)雜步驟。TimeGPT通過簡化推理步驟,簡化了這一過程,減少了復(fù)雜性和時間投入,同時仍能實現(xiàn)最先進的性能。TimeGPT展示了大模型的優(yōu)勢,為預(yù)測領(lǐng)域帶來深遠影響。基礎(chǔ)模型對預(yù)測領(lǐng)域產(chǎn)生重要影響,并重新定義當前做法。

TimeGPT在時間序列領(lǐng)域引入基礎(chǔ)模型,為未來改進開辟可能道路,被認為是時間序列領(lǐng)域的一個重要里程碑。然而,該工作還有許多限制和未解決的問題。雖然TimeGPT展示了驚人的結(jié)果,但仍需關(guān)注一些限制和問題。

未來的研究方向主要包括:1)有見地的預(yù)測;2)時間序列嵌入。此外,關(guān)于時間序列分類的基礎(chǔ)模型以及真正多模態(tài)和多時態(tài)基礎(chǔ)模型的整合也有望成為未來研究的熱點領(lǐng)域。這些領(lǐng)域?qū)⒂兄谖覀冮_發(fā)更強大和更通用的預(yù)測模型。

8 TimeGPT的使用

安裝

pip install nixtlats

如何使用

只需導(dǎo)入庫,然后用兩行代碼就可以開始預(yù)測!

df = pd.read_csv('https://raw.githubusercontent.com/Nixtla/transfer-learning-time-series/main/datasets/electricity-short.csv')
from nixtlats import TimeGPT
timegpt = TimeGPT(# defaults to os.environ.get("TIMEGPT_TOKEN")    token ='my_token_provided_by_nixtla')
fcst_df = timegpt.forecast(df, h=24, level=[80,90])
INFO:nixtlats.timegpt:Validating inputs...INFO:nixtlats.timegpt:Preprocessing dataframes...INFO:nixtlats.timegpt:Inferred freq: HINFO:nixtlats.timegpt:Restricting input...INFO:nixtlats.timegpt:Calling Forecast Endpoint...
timegpt.plot(df, fcst_df, level=[80,90], max_insample_length=24*5)

文章轉(zhuǎn)自微信公眾號@算法進階

上一篇:

Python量化交易入門進階指南

下一篇:

機器學(xué)習(xí)最全知識點(萬字長文匯總)
#你可能也喜歡這些API文章!

我們有何不同?

API服務(wù)商零注冊

多API并行試用

數(shù)據(jù)驅(qū)動選型,提升決策效率

查看全部API→
??

熱門場景實測,選對API

#AI文本生成大模型API

對比大模型API的內(nèi)容創(chuàng)意新穎性、情感共鳴力、商業(yè)轉(zhuǎn)化潛力

25個渠道
一鍵對比試用API 限時免費

#AI深度推理大模型API

對比大模型API的邏輯推理準確性、分析深度、可視化建議合理性

10個渠道
一鍵對比試用API 限時免費