TimeDP Learning to Generate Multi-Domain Time Series with Domain Prompts
摘要
在跨域時序數據生成任務中,提出使用”時間序列語義原型“模塊定義時間序列原型來表示時間序列基,每個原型向量作為“詞”表示一些基本的時間序列特征。應用原型分配模塊提取提取域特定的原型權值,以學習域提示作為生成條件。在采樣過程中,從目標域中提取少量采樣的“域提示”,并以域提示為條件生成時間序列樣本。
引言
跨域時間序列生成是一個非常復雜的挑戰,因為它需要在不依賴現有歷史記錄的情況下跨各個域創建新數據
-
一種直接方法是在訓練過程中使用預定義的域標簽。該方法依賴于明確的領域標簽來進行條件生成。當面對不可見的領域,即領域標簽沒有明確可用時,則會面臨巨大的挑戰
-
另一種方法通過使用自然語言描述域,將跨域時間序列生成框架為條件生成任務。特定于領域的細微差別通常難以準確地表達,從而導致嘈雜、不完整或模糊的提示。此外,對于全新的或發展中的領域,制作這些領域描述符可能是不切實際的
為了解決這些挑戰,本文提出了一種無標簽、無文本的方法,該方法學習時間序列原型作為基本元素來構建域提示,以生成具有擴散模型的時間序列,稱為TimeDP。通過訓練,原型學習表示時間序列基,作為具有時間序列語義的“文字描述”。對每個訓練樣本應用原型分配模塊,構建生成該樣本的特定“提示符”。在采樣過程中,從目標域中提取少量樣本的“提示符”來構造域提示符的總體,并以域提示符為條件生成時間序列樣本。
主要貢獻:
- 我們提出了一種多域時間序列生成模型TimeDP,該模型通過學習一組時間序列原型和原型分配模塊來構造域提示,其中域提示作為時間序列擴散模型的條件
- 我們首先提出了一種使用無標簽、無文本條件作用機制的多域時間序列生成模型
- 實驗表明,該方法具有較好的域內生成質量和較強的不可見域生成能力
相關工作與背景
時間序列生成
- GAN:通過監督目標和對抗目標來聯合優化學習嵌入空間,使得網絡學習到時間動態信息
- VAE:考慮了時間數據的趨勢和季節分解,設計了特定的解碼器結構。首先引入矢量量化技術和雙向變壓器,以更好地捕獲時間一致性
- 另一類被認為是混合型方法,將GAN、flows和ODE結合在一起
- DDPM:去噪擴散概率模型,涉及到無條件和條件擴散模型生成數據
跨域時間序列模型
- 兩階段模型:在大量多域數據上預訓練表征學習模型,第二階段為任務特定模型進行微調
- 單階段模型:使用補丁標記器對端到端變壓器模型進行預訓練,用于時間序列預測
這些方法采用實例規范化來基于歷史數據生成預測,而不顯式地處理領域差異。與這些方法相比,本文方法建議使用時間序列原型,構造域提示來明確區分域并橋接它們
去噪概率擴散模型 (DDPM)
擴散概率模型需要學習反轉馬爾可夫鏈的過程,該過程被稱為反向過程。其正向過程為擴散過程,該過程逐漸向數據添加噪聲,最終信號收斂到某個特定分布
具體公式見https://blog.csdn.net/weixin_45180140/article/details/150556555?spm=1001.2014.3001.5501的DDPMs部分
問題描述
DiT={x∈RT}Ni,??x=(x1,x2,...,xT)D_i^T = \{\pmb{x}\in\mathbb{R}^T\}^{N_i},\;\pmb{x}=(x_1, x_2,...,x_T)DiT?={x∈RT}Ni?,x=(x1?,x2?,...,xT?)定義了一個有NiN_iNi?個樣本的時間序列數據集,且屬于領域iii,其中每個樣本具有TTT個序列值。
單領域時間序列預測模型對每一個數據集獨立的利用參數θi\theta_iθi?擬合時間步的聯合分布p(x1,x2,...,xT)p(x_1, x_2,...,x_T)p(x1?,x2?,...,xT?),定義為pθ(x1,x2,...,xT)p_\theta(x_1, x_2,...,x_T)pθ?(x1?,x2?,...,xT?)
在本文中,作者探索了一個域統一設置,其中MMM個序列長度為TTT的域數據集的混合表示為DT=?i=1MDiD^T=\bigcup_{i=1}^MD_iDT=?i=1M?Di?。且作者的目標是利用一組參數來表示多個領域的聯合分布pθ(x1,x2,...,xT∣i)p_\theta(x_1, x_2,...,x_T|i)pθ?(x1?,x2?,...,xT?∣i)
方法
在訓練過程中,由于來自所有數據域的序列混合在一起,潛在表示中的所有時間序列特征都是糾纏在一起的,沒有明確的方法來區分特定的時間序列數據域。雖然利用領域標簽作為訓練時間序列生成模型的類標簽可以為識別特定領域提供指導,但這種方法隱含了一個假設,即所有領域都是相互獨立的,忽略了領域對之間的不同相似程度。因此,在考慮各領域之間的相互關系的同時,使模型具備在所選領域內生成時間序列的能力是一項挑戰。為了克服這一挑戰,關鍵是建立跨域時間序列模型的觸發機制,控制模型從特定域生成時間序列數據。受提示技術在可控內容生成方面最新進展的啟發,本文提出構建域提示來控制跨域模型。
域提示詞
與文本和圖像模態不同,文本和圖像模態的生成目標可以用自然語言表達或分類為離散類,而時間序列很難用單詞或類標簽來明確表示。受到廣泛采用的提取“基”技術的啟發,“基”是時間序列的基本特征,這些基可以作為不同域之間的共享“字典”,每個域對時間序列編碼不同的語義特征。
語義“基”模塊
每個基代表時間序列數據樣本中可能存在的某些基本時間序列特征,如趨勢和季節性。假設不同的個體時間序列樣本共享相同的基集合,但反映集合的不同子集。因此,每個時間序列得到這些底層特征的唯一實現,類似于對所有基進行可變加權分配。基于這一假設,引入一組潛在陣列作為時間序列原型P∈RNp×d\mathcal{P}\in\mathbb{R}^{N_p\times d}P∈RNp?×d,用于表示跨域時間序列的共同知識。其中,每個原型向量P∈R1×d\mathcal{P}\in\mathbb{R}^{1\times d}P∈R1×d作為時間序列基的表示。在實踐中,時間序列原型P\mathcal{P}P是用隨機正交向量初始化,然后凍結。
“基”分配模塊
假設每個時間序列樣本對應于所有基的一個不同的分配,需要建立從時間序列樣本到分配的映射,以便明確地識別每個時間序列實例的重要原型以及區分域。本文提出為每個時間序列實例提取一個原型分配作為每個時間序列對每個原型的重要權重,然后將原型分配作為生成模型的條件。
具體來說,每個輸入序列x\pmb{x}x被映射到一個權重向量,其維度等于使用權重提取器?\phi?的原型數量,這是一個神經網絡。向量?(x)\phi(\pmb{x})?(x)定義了在PPP中每個向量的權重,其該權重被用來模擬跨域機制中的注意力權重,因此預測的噪聲僅以指定的原型為條件。因此,來自不同域的序列由共享的同一組時間序列原型的不同mmm加權組合來表示。為了保證原型分配的稀疏性,在進行原型分配時,所有的負權都被丟棄。形式上,原型賦值mmm用以下公式提取:
m=?(x0)?I?(x0)≤0?∞
m=\phi(x_0)-\pmb{I}_{\phi(x_0)\leq0}\cdot\infty
m=?(x0?)?I?(x0?)≤0??∞
其中,I.≤0\pmb{I}_{.\leq0}I.≤0?為負元素的指示函數
域統一訓練
我們不是為每個特定數據集訓練單個模型,而是同時使用來自多個數據集的數據訓練一個模型,以生成不同的領域數據。在這里,我們將每個數據集視為一個單獨的域。雖然來自每個領域的數據僅代表可能數據分布的有限部分,但利用來自其他領域的數據可以幫助模型捕獲更多樣化的時間序列數據分布。
在條件去噪概率擴散模型中,通過空間注意將這些條件納入到噪聲預測網絡的中間層:
Q(i)=z(i?1)?WQ(i)K(i)=P?WK(i)V(i)=P?Wv(i)z(i)=FF(softmax(Q(i)K(i)Td)?V(i))
\pmb{Q}^{(i)}=z^{(i-1)}\cdot\pmb{W}^{(i)}_{Q}\\
\pmb{K}^{(i)}=\pmb{P}\cdot\pmb{W}^{(i)}_{K}\\
\pmb{V}^{(i)}=\pmb{P}\cdot\pmb{W}^{(i)}_{v}\\
z^{(i)} = FF(softmax(\frac{\pmb{Q}^{(i)}\pmb{K}^{(i)T}}{\sqrt{d}})\cdot\pmb{V}^{(i)})
Q(i)=z(i?1)?WQ(i)?K(i)=P?WK(i)?V(i)=P?Wv(i)?z(i)=FF(softmax(d?Q(i)K(i)T?)?V(i))
FF為前向傳播網絡,注意力輸出zfinalz^{final}zfinal是通過另一個前向傳播網絡獲取?^=FF(zfinal)\hat{\epsilon}=FF(z^{final})?^=FF(zfinal)
利用上述的條件去噪機制,使用??parameterization\epsilon-parameterization??parameterization去噪目標可以寫成并簡化為:
Lcond=E[∣∣???^∣∣2]=Ex0∈DT,?~N(0,I),n[∣∣???θ,P(xn,n,m∣∣2]
L_{cond} = \mathbb{E}[||\pmb{\epsilon}-\hat{\pmb{\epsilon}}||^2]\\
=\mathbb{E}_{\pmb{x}_0\in D^T,\pmb{\epsilon}\sim\mathcal{N}(\pmb{0},\pmb{I}),n}[||\pmb{\epsilon}-\pmb{\epsilon}_\theta,\pmb{P}(x_n,n,\pmb{m}||^2]
Lcond?=E[∣∣???^∣∣2]=Ex0?∈DT,?~N(0,I),n?[∣∣???θ?,P(xn?,n,m∣∣2]
由于跨域的訓練樣本數量不平衡,本文采用重權采樣的方法,使每個域的樣本訓練的概率相等。設NiN_iNi?表示數據集i中樣本序列的個數,將該數據集每個樣本的采樣權值設為wi=1Ni×∣D∣w_i=\frac{1}{N_i\times|D|}wi?=Ni?×∣D∣1?,使得每個數據集的采樣序列的概率是平衡的。訓練算法的偽代碼見算法1。
基于域提示的生成過程
為了在多個數據集上進行領域統一訓練后生成所選領域的時間序列樣本,我們首先在選擇的域中抽取一小部分隨機訓練樣本的領域特定原型賦值,然后將它們分組到表示所選域的域提示符分布中。設KKK表示從數據集iii中選擇的樣本個數,域提示符用mDi={m1i,...,mKi}\pmb{m}^{D_i}=\{\pmb{m}^i_1,...,\pmb{m}^i_K\}mDi?={m1i?,...,mKi?}?。通過構造條件輸入,該模型生成符合所選域的樣本,而不受所選樣本中顯示的一般時間模式的約束。當期望生成的樣本數量大于KKK時,我們在KKK個樣本中使用每次分配重復生成的策略,直到期望樣本數量滿足。采樣算法描述為算法2。
未見領域的生成
由于原型提供了基于時間序列的表示,因此它們的表示能力不局限于訓練集中的域。因此,它們可以用來表示未見過的域或數據集。對于相對于訓練集的任何未知數據集或域DjD_jDj?,我們可以使用提取的“少量”樣本x1i,...,xKi\pmb{x}^i_1,...,\pmb{x}^i_Kx1i?,...,xKi?,構造域提示mDj={m1j,...,mKi}\pmb{m}^{D_j} = \{\pmb{m}^j_1,...,\pmb{m}^i_K\}mDj?={m1j?,...,mKi?},然后將它們作為條件輸送到模型中,以生成所需數據集的新樣本。
實驗