任務: 尋找大語言模型關於 時間序列預測的 文章 和 關於LLM做金融預測的文章
下面是我的總結:
所有的文章都是爲了解決一個問題:TS數據和文本數據之間的對齊問題。
將時間序列(Time Series, TS)與LLM融合的方式有兩條路線:
(1)LLM-for-TS:針對TS數據,從頭開始設計並預訓練一個基本的大型模型,然後爲各種下游任務相應地微調模型;
(2)使用現有的預訓練模型,僅創建一個TS專用的embedding層;
(3)使用現有的預訓練模型,創建一個TS專用的embedding層,並對某些層進行簡單微調
總結:有用的Patching方法、基於提示學習的方法、使用lora微調位置編碼層和歸一化層
下面是每一篇的文章:
-------------------------------------------------------------------------------------------------
1. 路線(1)
TimeGPT:第一個時間序列的大模型
知乎介紹 https://zhuanlan.zhihu.com/p/663615513
論文地址 https://arxiv.org/pdf/2310.03589.pdf
TimeGPT是一個預訓練模型,
首個時間序列基礎大模型
多層Encoder+Decoder組成
訓練集:1000億行的金融、天氣、能源和網絡數據。
評估指標包括相對平均絕對誤差和相對均方根誤差
-------------------------------------------------------------------------------------
2.路線(2)
TEST:Text Prototype Aligned Embedding to Activate LLM’s Ability for Time Series
中文標題:基於對比學習的時序數據embedding
知乎介紹 https://zhuanlan.zhihu.com/p/678655295
論文地址 https://arxiv.org/abs/2308.08241v1
創建一個新的embdeeing層,僅供TS數據使用
其它的數據如提示語進入之前LLM的embedding層
(1)將TS token化,並訓練編碼器的encoder,用對比學習表徵TS tokens;
對比學習中:時間序列標記 和 文本標記詞(大、小、上升、下降、穩定、波動) 在embedding層的向量相似度拉近或遠離。
凍結原始LLM的所有參數,只訓練新創建的embedding層。
損失函數 = 對比學習的損失函數
(2)然後使用prompt learning來訓練提示詞模板
-----------------------------------------------------------------------------------------
3.路線(2)
One Fits All: Power General Time Series Analysis by Pretrained LM
知乎介紹 https://zhuanlan.zhihu.com/p/650863164
論文地址 https://arxiv.org/abs/2302.11939
使用LM大模型+微調時間序列,對時間序列的下游任務進行預測;
微調方法:
凍結原本LLM的所有參數
創建一個新的embedding層,僅供TS數據使用
新增加一個Normalization 層,輸入是TS數據,輸出是均值和方差,輸出和新的embedding的TS的token拼接,輸入到LLM中
因爲LLM的上下文長度受限,使用 補丁Nie聚合相鄰的方式保證輸入給LLM的token的長度不變。
只調整新的embedding層。
4.路線(2)
Large Language Models Are Zero-Shot Time Series Forecasters
這篇文章:說的是一種構造新的embedding層的方法,僅供TS數據使用。
具體的方式:(具體我沒看懂,但是應該挺簡單的)
利用語言模型的條件概率建模數字,就是根據前面的數字預測下一位爲各個數字的概率,是一種迭代的層次softmax結構,加上大模型的表徵能力,可以適配各種各樣的分佈類型,這也是大模型可以以這種方式用於時間序列預測的原因。同時,模型對於下一個數字預測的概率,也可以轉換成對不確定性的預測,實現時間序列的不確定性預估。
5.路線(2)
TIME-LLM: TIME SERIES FORECASTING BY REPROGRAMMING LARGE LANGUAGE MODELS
提出了一種reprogramming方法,將時間序列映射到文本,實現時間序列和文本這兩種模態之間的對齊
具體實現方法爲,首先將時間序列分成多個patch,每個patch通過MLP得到一個embedding。然後,將patch embedding映射到語言模型中的詞向量上,實現時間序列片段和文本的映射和跨模態對齊。 這個patch就是文章9中的patching思想。
從圖中可以看出:凍結了LLM的所有的參數,只調整了紅框中的兩部分。
-------------------------------------
6.路線(2)
Lag-Llama: Towards Foundation Models for Time Series Forecasting
核心包括特徵層面和模型結構層面的設計
原始時間序列不同時間窗口的歷史序列統計值,獲得lag features
將 lag features 輸入到 LLM 中
只調整llama模型中的normalization方式和position encoding,注意不是微調,是直接寫死。LLM模型參數凍結。
修改模型的最後的輸出層,獲得多頭注意力中的多head,擬合概率分佈函數如高斯分佈,獲得freedom、mean、scale三個參數傳入到MLP中,獲得最後的結果
7.路線(2)
Spatial-Temporal Large Language Model for Traffic Prediction
交通預測,預測交通流量
新增embedding層僅用TS層
凍結前F層的LLM的所有參數,全量調F層後面的LLM的多頭注意力層的參數
LLM的輸出接入迴歸卷積層
8.路線(3)
Two-Stage Fine-Tuning for Time-Series Forecasting with Pre-Trained LLMs
知乎介紹 https://zhuanlan.zhihu.com/p/652524958
論文地址 https://arxiv.org/pdf/2308.08469.pdf
注:因本文沒有開源源代碼,所以爭議性很大。但確實是一篇好文章
PatchTST方法基於patching通道獨立性的思想將多變量時間序列數據視爲多個單變量時間序列,將單個序列劃分成不同的patch。
首先通過監督微調將模型與時間序列的特性進行對其,引導LLM適應時間序列的數據;
接下來以下游預測任務爲導向進一步對模型進行微調,從而保障不破壞語言模型固有特性的基礎上使得模型能夠更好地適配配各類不同域的數據和下游任務
專門爲Ts創建的embedding層、
文章寫了微調(分爲兩步:自迴歸的微調和下有任務的微調)、
使用lora和layer normalization turn 的方式進行微調、
9.路線(2)
A Time Series is Worth 64 Words: Long-term Forecasting with Transformers
知乎介紹 https://zhuanlan.zhihu.com/p/602332939
論文位置 https://arxiv.org/pdf/2211.14730.pdf
本文提出了Patching的思想,它可以將TS和文本數據對齊。很多文章都引用這個文章。
它們都是將時間序列分成若干個時間段(可以重疊,也可以不重疊),每一個時間段就是一個token,再加上位置編碼,輸入到Transformer的Encoder中,Encoder輸出向量flatten得到預測頭
本文還有其它的知識點(還沒有認真的看):Channel-independence、自監督學習
- 路線(2)Preformer
論文地址 https://arxiv.org/pdf/2202.11356.pdf
本文提出了Preformer的思想,它可以將TS和文本數據對齊。
它們都是將時間序列分成若干個時間段,每一個時間段就是一個token
Preformer 是在 Patching前提出來的,效果沒有Patching好。 Patching是根據這篇文章繼續研究得出來的。
11.路線(3)OFA:One Fits All:Power General Time Series Analysis by Pretrained LM
知乎介紹 https://zhuanlan.zhihu.com/p/664785806
論文地址 https://arxiv.org/abs/2302.11939
凍結預訓練模型的embedding層和自注意力塊
對位置嵌入和層歸一化進行了微調
沒有爲TS數據專門重新創建embedding層
採用可逆實例歸一化來解決實例分佈變化影響大多數時間序列預測方法準確性的問題。這種方法通過計算輸入時間序列的均值和方差進行歸一化,然後將它們添加回輸出
採用了缺失填充來提取局部語義信息。通過聚合相鄰的時間步形成基於補丁的單個令牌,填充大大增加了輸入的歷史時間範圍,同時保持了令牌長度相同並減少了轉換器模型的冗餘信息。
採用Patching的思想
12.路線(3)PromptCast: A New Prompt-based Learning Paradigm for Time Series Forecasting
知乎介紹 https://zhuanlan.zhihu.com/p/673922129
論文地址 https://arxiv.org/pdf/2210.08964.pdf
基於提示的時間序列預測學習範式 PromptCast
通過提示此模板,將TS轉換爲文本信息
本文的效果不好,但是提出了一個方案,使用prompt turning或者p-turning的方式來對LLM進行微調,使LLM適應TS數據
13.TEMPO: Prompt-based Generative Pre-trained Transformer for Time Series Forecasting
Tempo:基於提示工程的預訓練時序預測模型
知乎地址 https://zhuanlan.zhihu.com/p/675515880
論文地址 https://web3.arxiv.org/pdf/2310.04948.pdf
Tempo模型首先將複雜的時間序列解耦爲趨勢項、季節項和殘差項,進一步將其映射到相應的隱藏空間,以構建GPT能夠識別的輸入。
Tempo構造了一個prompt池,爲解耦得到的不同成分分配不同的提示詞,使得模型利用歷史信息來適應時間序列分佈的變化。
本文的性能較好,比文章12好。
13.Temporal Data Meets LLM -- Explainable Financial Time Series Forecasting
論文地址 https://arxiv.org/pdf/2308.08469.pdf
時間序列的處理、對文本信息的引入、prompt設計、基於Instruction Tuning的大模型微調4個部分。