在時(shí)間序列問題中,有一種類型的時(shí)間序列不是等頻采樣的,即每組相鄰兩個(gè)觀測(cè)值的時(shí)間間隔不一樣。時(shí)間序列表示學(xué)習(xí)在等頻采樣的時(shí)間序列中已經(jīng)進(jìn)行了比較多的研究,但是在這種不規(guī)則采樣的時(shí)間序列中研究比較少,并且這類時(shí)間序列的建模方式和等頻采樣中的建模方式有比較大的差別。 今天介紹的這篇文章,在不規(guī)則采樣的時(shí)間序列問題中,探索了表示學(xué)習(xí)的應(yīng)用方法,借鑒了NLP中的相關(guān)經(jīng)驗(yàn),在下游任務(wù)上取得了比較顯著的效果。
如下圖是不規(guī)則時(shí)間序列數(shù)據(jù)的一個(gè)表示形式。每個(gè)時(shí)間序列由一組triplet組成,每個(gè)triple包括time、value、feature三個(gè)字段,分別表示時(shí)間序列中每個(gè)元素的采樣時(shí)間、數(shù)值、其他特征。每個(gè)序列的信息除了剛才的triplet外,還包括其他不隨時(shí)間變化的靜態(tài)特征,以及每個(gè)時(shí)間序列的label。 一般這種不規(guī)則時(shí)間序列建模方法,常見的結(jié)構(gòu)是將上述triple數(shù)據(jù)分別embedding后,拼接到一起,輸入到transformer等模型中,這種方式將每個(gè)時(shí)刻的信息,以及每個(gè)時(shí)刻的時(shí)間表征融合到一起輸入到模型,進(jìn)行后續(xù)任務(wù)的預(yù)測(cè)。 在本文的任務(wù)中,使用的數(shù)據(jù)既包括這些有l(wèi)abel的數(shù)據(jù)外,還包括無label的數(shù)據(jù),用于做無監(jiān)督預(yù)訓(xùn)練。 本文的預(yù)訓(xùn)練方法借鑒了NLP中的經(jīng)驗(yàn),主要包括兩個(gè)方面。 預(yù)訓(xùn)練任務(wù)的設(shè)計(jì):針對(duì)不規(guī)則時(shí)間序列,設(shè)計(jì)合適的預(yù)訓(xùn)練任務(wù),讓模型從無監(jiān)督數(shù)據(jù)中學(xué)到良好表征。文中主要提出了基于預(yù)測(cè)的預(yù)訓(xùn)練任務(wù)和基于重構(gòu)的預(yù)訓(xùn)練任務(wù)。 數(shù)據(jù)增強(qiáng)方式設(shè)計(jì):文中設(shè)計(jì)了用于無監(jiān)督學(xué)習(xí)的數(shù)據(jù)增強(qiáng)方式,包括添加噪聲、增加隨機(jī)mask等方式。 此外,文中還提出了一種針對(duì)不同分布數(shù)據(jù)集,如何探索最優(yōu)無監(jiān)督學(xué)習(xí)方式的算法。 本文提出了兩種不規(guī)則時(shí)間序列上的預(yù)訓(xùn)練任務(wù),分別是Forecasting pretraining和Reconstruction pretraining。 在Forecasting pretraining中,對(duì)于時(shí)間序列中的每個(gè)特征,根據(jù)某個(gè)大小的時(shí)間窗口前序序列,預(yù)測(cè)它的取值。這里的特征指的是triplet中的feature。由于每種feature在一個(gè)時(shí)間窗口中可能出現(xiàn)多次,或者不會(huì)出現(xiàn),因此文中采用了這個(gè)feature第一次出現(xiàn)的值作為label進(jìn)行預(yù)訓(xùn)練。這其中輸入的數(shù)據(jù)包括原始序列,以及增強(qiáng)后的時(shí)間序列。 在Reconstruction pretraining中,首先對(duì)于一個(gè)原始的時(shí)間序列,通過某種數(shù)據(jù)增強(qiáng)方式生成一個(gè)增強(qiáng)后的序列,然后用增強(qiáng)后的序列作為輸入,經(jīng)過Encoder生成表示向量,再輸入到一個(gè)Decoder中還原原始的時(shí)間序列。文中通過一個(gè)mask來指導(dǎo)需要還原哪些部分的序列,如果這個(gè)mask都為1就是還原整個(gè)序列。 在得到預(yù)訓(xùn)練參數(shù)后,可以直接應(yīng)用于下游的finetune任務(wù),整個(gè)的pretrain-finetune流程如下圖所示。 文中設(shè)計(jì)了兩種數(shù)據(jù)增強(qiáng)方式,一種是增加noise,一種是隨機(jī)mask。 增加noise的方式,對(duì)原來序列的value或者time增加高斯噪聲,計(jì)算方式如下: 隨機(jī)mask的方式借鑒了NLP中的思路,通過隨機(jī)選擇time、feature、value等元素進(jìn)行隨機(jī)mask和替換,構(gòu)造增強(qiáng)后的時(shí)間序列。 下圖展示了上述兩種類型數(shù)據(jù)增強(qiáng)方法的效果: 此外,文中將數(shù)據(jù)增強(qiáng)、預(yù)訓(xùn)練方式等進(jìn)行不同組合,針對(duì)不同的時(shí)間序列數(shù)據(jù),從這些組合中search到最優(yōu)的預(yù)訓(xùn)練方法。 文中在多個(gè)數(shù)據(jù)集上進(jìn)行了實(shí)驗(yàn),對(duì)比了多種預(yù)訓(xùn)練方法在不同數(shù)據(jù)集上的效果,可以看到文中提出的預(yù)訓(xùn)練方式在大多數(shù)數(shù)據(jù)集上都取得了比較顯著的效果提升。 ![]() END ![]() |
|