論文地址:https://arxiv.org/pdf/2410.24087
代碼地址:https://github.com/uctb/TSFM
為了更好地理解時間序列模型的理論與實現,推薦參考UP “ThePPP時間序列” 的教學視頻。該系列內容系統介紹了時間序列相關知識,并提供配套的論文資料與代碼示例,有助于理論與實踐相結合。
摘要
本研究提出了一種時間序列基礎模型的上下文微調方法。本研究設計了一個預訓練的基礎模型,可以在推理時使用多個時間序列示例作為提示,以便預測目標時間序列的未來值。本研究的基礎模型經過專門訓練,可以利用上下文窗口中來自多個相關時間序列的示例(以及目標時間序列的歷史記錄)來幫助其在推理時適應目標領域的特定分布。本研究表明,這種在推理時使用上下文示例的基礎模型,在流行的預測基準測試中,與監督深度學習方法、統計模型以及其他時間序列基礎模型相比,可以獲得更好的性能。有趣的是,本研究的上下文微調方法甚至可以與在目標領域上明確微調的基礎模型的性能相媲美。
引言
本研究關注時間序列預測領域,特別是時間序列基礎模型的上下文微調方法。時間序列數據在零售、金融、制造、醫療和自然科學等領域無處不在,時間序列預測在這些領域中至關重要,例如零售預測、氣候和天氣預測以及交通預測等應用。深度學習方法在預測領域已變得流行,其性能通常優于ARIMA等統計方法。然而,直到最近,用于預測的深度學習方法仍遵循傳統的監督機器學習框架,即必須先在特定任務的訓練數據上訓練預測模型,然后才能對該任務執行預測。另一方面,在自然語言處理(NLP)領域,大型語言模型(LLM)展現了基礎模型的潛力:單個預訓練模型可以在推理時以零樣本或少樣本方式很好地執行并適應翻譯、代碼生成、文本摘要等任務。
受NLP領域成功的啟發,近年來時間序列基礎模型預測領域的研究工作顯著增加,范圍涵蓋直接將LLM重新用于預測,在時間序列數據上微調預訓練的LLM,以及從頭開始預訓練時間序列基礎模型。其中,從頭預訓練的方法已被證明可以獲得強大的零樣本精度,甚至可以與專門針對目標數據集訓練的最佳監督模型相媲美。一些研究表明,通過在目標數據集上微調預訓練模型可以進一步提高精度。然而,這種方法打破了零樣本范式,而零樣本范式正是這些時間序列基礎模型吸引那些不想構建訓練流程的實踐者的原因。這就提出了一個自然而然的問題:能否通過在推理時提供來自目標數據集的示例來恢復微調時間序列基礎模型的優勢?
同時,這些基礎模型的早期版本缺乏LLM在上下文學習方面的一些理想特性:LLM的零樣本性能可以通過在推理時使用其上下文窗口進行諸如少樣本、思維鏈或指令微調等提示技術來極大地提高。這些研究已經證明了LLM涌現的上下文學習能力。特別是,如果用相關的示例、演示和指令提示它們,然后提出一個專門的問題,模型能夠對當前的問題進行類似的推理。
本研究探索了一種方法,使時間序列基礎模型能夠具備類似的上下文能力,即能夠使用來自目標領域的時序數據示例對模型進行提示,并恢復特定領域微調的優勢。本研究將此稱為上下文微調。本研究訓練了一個基礎模型,該模型不僅可以在其上下文窗口中提供時間序列的歷史值,還可以提供來自其他相關時間序列的示例,以幫助模型在推理時適應目標時間序列的分布。例如,考慮一個高速公路交通預測系統,該系統存儲過去一周的每小時數據,以便預測特定高速公路未來的每小時交通流量。假設一個時間序列基礎模型在預訓練中沒有見過能夠捕捉此交通數據中時間模式的數據。那么,僅用該高速公路前一周的交通時間序列提示模型可能不足以獲得準確的零樣本性能。然而,在提示中添加來自其他高速公路和幾周的歷史交通數據,可能有助于模型更好地適應交通數據分布,并顯著提高目標精度。
本研究的主要貢獻如下:(1)引入了時間序列基礎模型的上下文微調研究,并提出了使用提示的方法,該提示不僅包括用于預測的目標時間序列的通常歷史記錄,還包括上下文中的相關時間序列示例。(2)預訓練了一個能夠有效利用上述上下文時間序列示例的時間序列基礎模型。本研究的訓練是僅解碼器的,可以適應任何上下文、預測范圍對(不超過某個最大上下文),以及任何數量的補充時間序列示例(同樣不超過某個最大示例數)。經過適當訓練的模型可以學習借鑒這些相關示例中的模式,從而在原始預測任務上做得更好。(3)使用本研究的基礎模型,通過在流行的預測基準上進行評估,經驗證明了上下文微調的優勢。結果表明,與監督深度學習方法、統計模型以及其他基礎模型相比,上下文微調可以顯著提高流行預測基準上的零樣本性能。特別是,它比最先進的時間序列基礎模型以及其他監督深度學習和統計基線獲得了高達 25% 的性能提升。令人驚訝的是,它甚至略微優于專門針對目標數據集進行微調的時間序列基礎模型。
論文創新點
本研究提出了時間序列基礎模型的上下文微調方法論。該方法論的核心在于,在推理階段,通過在模型的上下文窗口中提供多個相關的歷史時間序列樣本來提示預訓練基礎模型,以預測目標時間序列的未來值。
-
? 引入上下文微調概念: ?
- 與傳統的微調方法需要在目標數據集上進行顯式訓練不同,本研究提出的方法允許模型在推理時利用上下文中的示例進行自適應。
- 這避免了額外的訓練過程,并保留了零樣本預測的優勢。
-
🌠 設計專用訓練基礎模型: 🌠
- 該模型能夠有效地利用上下文窗口中的多個相關時間序列示例。
- 除了目標時間序列的歷史數據外,模型還能利用上下文中的其他示例來學習目標領域的特定分布,從而提高預測的準確性。
-
🔧 改進模型架構設計: 🔧
- 使其能夠更好地處理上下文示例中的分隔符、跨示例注意力和位置編碼。
- 采用了改進的TimesFM模型架構,并引入了可學習的分隔符標記來區分不同的上下文示例,同時允許Transformer模型對所有先前的標記(包括分隔符標記)進行因果注意。
- 此外,本研究采用了無位置編碼(NoPE)的設計,以提高模型的長度泛化能力,并避免在繼續預訓練階段出現位置編碼含義不一致的問題。
-
🧩 獨特的預訓練數據生成策略: 🧩
- 包括上下文生成和數據集混合。
- 在上下文生成階段,本研究采用了兩種分組方式:時間序列級別分組和數據集級別分組,以確保分組的示例具有相似的模式,以便模型從中學習。
- 在數據集混合階段,本研究使用了除Wiki數據集之外的所有預訓練數據集來生成上下文示例,并為時間序列級別和數據集級別的示例賦予相同的權重。
-
🏆 驗證有效性: 🏆
- 通過在Monash和ETT等流行的預測基準數據集上進行評估,驗證了上下文微調方法的有效性。
- 實驗結果表明,與監督深度學習方法、統計模型以及其他時間序列基礎模型相比,上下文微調可以顯著提高零樣本預測的性能。
- 尤其值得一提的是,本研究的上下文微調方法甚至略微優于在目標數據集上進行顯式微調的基礎模型,這突顯了該方法在實際應用中的巨大潛力。
論文實驗