谷歌:非等頻采樣時間序列表示學習新方法
在時間序列問題中,有一種類型的時間序列不是等頻采樣的,即每組相鄰兩個觀測值的時間間隔不一樣。時間序列表示學習在等頻采樣的時間序列中已經進行了比較多的研究,但是在這種不規則采樣的時間序列中研究比較少,并且這類時間序列的建模方式和等頻采樣中的建模方式有比較大的差別。
今天介紹的這篇文章,在不規則采樣的時間序列問題中,探索了表示學習的應用方法,借鑒了NLP中的相關經驗,在下游任務上取得了比較顯著的效果。
圖片
- 論文標題:PAITS: Pretraining and Augmentation for Irregularly-Sampled Time Series
- 下載地址:https://arxiv.org/pdf/2308.13703v1.pdf
1、不規則時間序列數據定義
如下圖是不規則時間序列數據的一個表示形式。每個時間序列由一組triplet組成,每個triple包括time、value、feature三個字段,分別表示時間序列中每個元素的采樣時間、數值、其他特征。每個序列的信息除了剛才的triplet外,還包括其他不隨時間變化的靜態特征,以及每個時間序列的label。
圖片
一般這種不規則時間序列建模方法,常見的結構是將上述triple數據分別embedding后,拼接到一起,輸入到transformer等模型中,這種方式將每個時刻的信息,以及每個時刻的時間表征融合到一起輸入到模型,進行后續任務的預測。
圖片
在本文的任務中,使用的數據既包括這些有label的數據外,還包括無label的數據,用于做無監督預訓練。
2、方法概覽
本文的預訓練方法借鑒了NLP中的經驗,主要包括兩個方面。
預訓練任務的設計:針對不規則時間序列,設計合適的預訓練任務,讓模型從無監督數據中學到良好表征。文中主要提出了基于預測的預訓練任務和基于重構的預訓練任務。
數據增強方式設計:文中設計了用于無監督學習的數據增強方式,包括添加噪聲、增加隨機mask等方式。
此外,文中還提出了一種針對不同分布數據集,如何探索最優無監督學習方式的算法。
3、預訓練任務設計
本文提出了兩種不規則時間序列上的預訓練任務,分別是Forecasting pretraining和Reconstruction pretraining。
在Forecasting pretraining中,對于時間序列中的每個特征,根據某個大小的時間窗口前序序列,預測它的取值。這里的特征指的是triplet中的feature。由于每種feature在一個時間窗口中可能出現多次,或者不會出現,因此文中采用了這個feature第一次出現的值作為label進行預訓練。這其中輸入的數據包括原始序列,以及增強后的時間序列。
在Reconstruction pretraining中,首先對于一個原始的時間序列,通過某種數據增強方式生成一個增強后的序列,然后用增強后的序列作為輸入,經過Encoder生成表示向量,再輸入到一個Decoder中還原原始的時間序列。文中通過一個mask來指導需要還原哪些部分的序列,如果這個mask都為1就是還原整個序列。
在得到預訓練參數后,可以直接應用于下游的finetune任務,整個的pretrain-finetune流程如下圖所示。
圖片
4、數據增強方式設計
文中設計了兩種數據增強方式,一種是增加noise,一種是隨機mask。
增加noise的方式,對原來序列的value或者time增加高斯噪聲,計算方式如下:
圖片
隨機mask的方式借鑒了NLP中的思路,通過隨機選擇time、feature、value等元素進行隨機mask和替換,構造增強后的時間序列。
下圖展示了上述兩種類型數據增強方法的效果:
圖片
此外,文中將數據增強、預訓練方式等進行不同組合,針對不同的時間序列數據,從這些組合中search到最優的預訓練方法。
5、實驗結果
文中在多個數據集上進行了實驗,對比了多種預訓練方法在不同數據集上的效果,可以看到文中提出的預訓練方式在大多數數據集上都取得了比較顯著的效果提升。