語言模型真的能用於時序預測嗎?根據貝特里奇頭條定律(任何以問號結尾的新聞標題,都能夠用「不」來回答),答案應該是否定的。事實似乎也果然如此:強大如斯的 LLM 並不能很好地處理時序資料。
時序,即時間序列,顧名思義,是指一組按照時間發生先後順序進行排列的資料點序列。
在很多領域,時序分析都很關鍵,包括疾病傳播預測、零售分析、醫療和金融。在時序分析領域,近期不少研究者都在研究如何使用大型語言模型(LLM)來分類、預測和檢測時間序列中的異常。這些論文假設擅長處理文字中順序依賴關係的語言模型也能泛化用於時間序列資料中的順序依賴關係。這個假設並不令人意外,畢竟語言模型是現在機器學習領域的香餑餑。
那麼,語言模型究竟能給傳統時序任務帶去多大助益?
近日,弗吉尼亞大學和華盛頓大學一個團隊嘗試解答了這一問題,並最終給出了一個簡單卻又重要的主張:對於時序預測任務,使用語言模型的常用方法的表現都接近或劣於基本的消融方法,但前者所需的計算量比後者多幾個數量級。
論文標題:Are Language Models Actually Useful for Time Series Forecasting?
論文地址:https://arxiv.org/pdf/2406.16964
這些發現是該團隊透過大量消融研究得到的,其中揭示出當前時序預測研究中存在一個「令人擔憂的趨勢」。
但該團隊也表示:「我們的目標並不是暗示語言模型永遠無法用於時間序列。」事實上,近期一些研究表明語言和時間序列之間具有很好的互動潛力,可以處理時間序列推理和社交理解等任務。
相反,他們的目標是強調這一驚人發現:對於已有的時間序列任務,現有方法幾乎沒有用到預訓練語言模型那與生俱來的推理能力。
實驗設定
該團隊使用了三種最先進的時間序列預測方法,併為 LLM 提出了三種消融方法:w/o LLM、LLM2Attn、LLM2Trsf。
為了評估 LLM 在時間序列預測任務上的有效性,他們在 8 個標準資料集上對這些方法進行了測試。
用於語言模型和時間序列的參考方法
他們實驗了三種近期的使用 LLM 進行時間序列預測的方法。見表 2,這些方法使用的基礎模型為 GPT-2 或 LLaMA,同時使用了不同的對齊和微調策略。
OneFitsAll:OneFitsAll(有時也被稱為 GPT4TS)方法會先對輸入時間序列使用例項歸一化和 patching 技術,然後將其饋送給一個線性層,以獲得用於語言模型的輸入表徵。在訓練期間,語言模型的多頭注意力和前饋層會被凍結,而位置嵌入和層歸一化會得到最佳化。最終層的作用是將語言模型的最終隱藏狀態轉換成預測結果。
Time-LLM:使用 Time-LLM 時,輸入時間序列會被 patching 技術 token 化,並且多頭注意力會將其與詞嵌入的低維表徵對齊。之後,將這個對齊過程的輸出與描述性統計特徵的嵌入一起輸送給一個凍結的預訓練語言模型。然後,將該語言模型的輸出表徵展平,並使其透過一個線性層,從而得到預測結果。
LLaTA:LLaTA 嵌入輸入時間序列的方式是將每個通道都視為一個 token。該架構的一半是「文字分支」,其使用交叉注意力來將時間序列表徵與語言模型的詞嵌入的低維表徵對齊。然後將該表徵傳遞給一個凍結的預訓練語言模型,得到一個「文字式預測」。同時,該架構的「時間」分支會基於輸入時間序列為預訓練語言模型學習一個低秩適應器,從而得到一個用於推理的「時間預測」。該模型包含考慮這些表徵之間的相似度的額外損失項。
該團隊提出的消融方法
對於基於 LLM 的預測器,為了將 LLM 的影響隔離開,該團隊提出了三種消融方法:移除 LLM 元件或將其替換成一個簡單模組。
具體來說,對於上述三種方法中的每一種,他們都進行了以下三項修改:
w/o LLM,見圖 1b。完全移除語言模型,直接將輸入 token 傳遞給參考方法的最終層。
LLM2Attn,見圖 1c。將語言模型替換成單個隨機初始化的多頭注意力層。
LLM2Trsf,見圖 1d。將語言模型替換成單個隨機初始化的 Transformer 模組。
在上述消融研究中,預測器的其餘部分都保持不變(可訓練)。比如,如圖 1b 所示,在移除了 LLM 之後,輸入編碼會被直接傳遞給輸出對映。而如圖 1c 和 1d 所示,在將 LLM 替換成注意力或 Transformer 後,它們會與原始方法的剩餘結構一起獲得訓練。
資料集和評估指標
基準資料集。評估使用了以下真實世界資料集:ETT(其包含 4 個子集:ETTm1、ETTm2、ETTh1、ETTh2)、Illness、Weather、Traffic、Electricity。表 1 給出了這些資料集的統計情況。另外還有 Exchange Rate、Covid Deaths、Taxi (30 min)、NN5 (Daily) 和 FRED-MD。
評估指標。該研究報告的評估指標是預測時序值和真實時序值之間的平均絕對誤差(MAE)和均方誤差(MSE)。
結果
具體來說,該團隊探究了以下研究問題(RQ):
(RQ1)預訓練語言模型是否有助於提升預測效能?
(RQ2)基於 LLM 的方法是否值得其消耗的計算成本?
(RQ3)語言模型預訓練是否有助於執行預測任務的效能?
(RQ4)LLM 能否表徵時間序列中的順序依賴關係?
(RQ5)LLM 是否有助於少樣本學習?
(RQ6)效能從何而來?
預訓練語言模型是否有助於提升預測效能?(RQ1)
實驗結果表明,預訓練 LLM 對時間序列預測任務來說還不是很有用。
總體而言,如表 3 所示,在 8 個資料集和 2 個指標上,消融方法在 26/26 案例中優於 Time-LLM 方法,在 22/26 案例中優於 LLaTA,在 19/26 案例中優於 OneFitsAll。
總之,很難說 LLM 可以有效地用於時間序列預測。
基於 LLM 的方法是否值得其消耗的計算成本?(RQ2)
這裡,根據這些方法的名義效能來評估它們的計算強度。參考方法中的語言模型使用了數億乃至數十億引數來執行時間序列預測。即使當這些語言模型的引數凍結時,它們在訓練和推理時依然會有很大的計算開銷。
舉個例子,Time-LLM 有 6642 M 引數,在 Weather 資料集上耗時 3003 分鐘才完成訓練,而消融方法僅有 0.245 M 引數,平均訓練時間僅有 2.17 分鐘。表 4 給出了在 ETTh1 和 Weather 資料集上訓練其它方法的相關資訊。
至於推理時間,這裡的做法是除以最大批次大小,以估計每個示例的推理時間。平均而言,相比於修改後的模型,Time-LLM、OneFitsAl、LLaTA 所用的推理時間多 28.2、2.3、1.2 倍。
圖 3 給出了一些示例,其中綠色標記(消融方法)通常低於紅色標記(LLM),並且集中於左側,這說明它們計算成本更低但預測效能更好。
總之,在時間序列預測任務上,LLM 的計算強度無法為效能帶來相應的提升。
語言模型預訓練是否有助於執行預測任務的效能?(RQ3)
評估結果表明,對於時間序列預測任務而言,使用大型資料集進行預訓練實在沒有必要。為了檢驗預訓練期間學到的知識能否給預測效能帶來有意義的提升,該團隊實驗了在時間序列資料上,對 LLaTA 進行不同組合的預訓練和微調的效果。
預訓練 + 微調(Pre+FT):這是原始方法,即在時間序列資料上微調預訓練語言模型。對於這裡的 LLaTA,做法是凍結基礎語言模型,學習一個低秩適應器(LoRA)。
隨機初始化 + 微調(woPre+FT):預訓練得到的文字知識是否有助於時間序列預測?這裡,隨機初始化語言模型的權重(由此清除了預訓練的效果),再在微調資料集上從頭開始訓練 LLM。
預訓練 + 不使用微調(Pre+woFT):在時間序列資料上進行微調又能給預測效能帶來多大提升呢?這裡是凍結語言模型,同時放棄學習 LoRA。這能反映語言模型自身處理時間序列的效能。
隨機初始化 + 無微調(woPre+woFT):很明顯,這就是將輸入時間序列隨機投射到一個預測結果。該結果被用作與其它方法進行比較的基準。
整體結果見表 5。在 8 個資料集上,依照 MAE 和 MSE 指標,「預訓練 + 微調」有三次表現最佳,而「隨機初始化 + 微調」獲得了 8 次最佳。這說明語言知識對時間序列預測的幫助有限。但是,「預訓練 + 無微調」與基準「隨機初始化 + 無微調」各自有 5 和 0 次最佳,這說明語言知識對微調過程的幫助也不大。
總之,預訓練得到的文字知識對時間序列預測的幫助有限。
LLM 能否表徵時間序列中的順序依賴關係?(RQ4)
大多數使用 LLM 來微調位置編碼的時間序列預測方法都有助於理解序列中時間步驟的位置。該團隊預計,對於一個有優良位置表徵的時間序列模型,如果將輸入的位置打亂,那麼其預測效能將會大幅下降。他們實驗了三種打亂時間序列資料的方法:隨機混洗整個序列(sf-all)、僅隨機混洗前一半序列(sf-half)、交換序列的前半和後半部分(ex-half)。結果見表 6。
輸入混洗對基於 LLM 的方法與其消融方法的影響差不太多。這說明 LLM 在表徵時間序列中的順序依賴關係方面並沒有什麼突出能力。
LLM 是否有助於少樣本學習?(RQ5)
評估結果表明,LLM 對少樣本學習場景而言意義不大。
他們的評估實驗是取用每個資料集的 10%,再訓練模型及其消融方法。具體來說,這裡評估的是 LLaMA(Time-LLM)。結果見表 7。
可以看到,有無 LLM 的表現差不多 —— 各自都有 8 個案例表現更好。該團隊也使用基於 GPT-2 的方法 LLaTA 進行了類似的實驗。結果見表 8,這裡消融方法在少樣本場景中的表現還優於 LLM。
效能從何而來?(RQ6)
這一節評估的是 LLM 時間序列模型中常用的編碼技術。結果發現,將 patching 和單層注意力組合起來是一種簡單卻有效的選擇。
前面發現對基於 LLM 的方法進行簡單的消融並不會降低其效能。為了理解這一現象的原因,該團隊研究了 LLM 時間序列任務中常用的一些編碼技術,比如 patching 和分解。一種基本的 Transformer 模組也可用於輔助編碼。
結果發現,一種組合了 patching 和注意力的結構在小資料集(時間戳少於 100 萬)上的表現優於其它大部分編碼方法,甚至能與 LLM 方法媲美。
其詳細結構如圖 4 所示,其中涉及將「例項歸一化」用於時間序列,然後進行 patching 和投射。然後,在 patch 之間使用一層注意力進行特徵學習。對於 Traffic(約 1500 萬)和 Electricity(約 800 萬)等更大的資料集,則使用了基本 Transformer 的單層線性模型的編碼表現更優。在這些方法中,最後還要使用單層線性層來投射時間序列嵌入,從而得到預測結果。
總之,patching 對編碼而言非常重要。此外,基本的注意力和 Transformer 模組也能為編碼帶來有效助益。