语言模型真的能用于时序预测吗?根据贝特里奇头条定律(任何以问号结尾的新闻标题,都能够用「不」来回答),答案应该是否定的。事实似乎也果然如此:强大如斯的 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 模块也能为编码带来有效助益。
以上是LLM用於時序預測真的不行,連推理能力都沒用到的詳細內容。更多資訊請關注PHP中文網其他相關文章!