TS2Vec: Towards Universal Representation of Time Series 論文翻譯
重點:
①有的模型只能進行instance級別的representation,本文是任意層級
②選取positive pair 的原則是:模型根據不同上下文對於同一個時間戳的representation應當一致。
③隨機剪裁層保證了模型不會只學到絕對位置資訊而忽視了上下文資訊。
疑問
①本模型在ETTH2資料集上的表現既有Informer能捕捉長期訊號的優點,也有TCN能捕捉週期性訊號的優點。【?其他資料集上會怎樣呢】
②演算法裡把各層的損失是直接相加的,能否乘上引數再相加
摘要
本文提出的TS2Vec,是一種在任意語義層級上學習時間序列表達的的普遍架構。TS2Vec在增強的上下文檢視上進行分層的對比學習,這對每一個時間戳都增強了魯棒的上下文表達。
為了獲得時間序列的任意一個子序列的表達,可以在對應的時間戳上施加一個簡單的迴歸。
介紹
a universal contrastive learning framework called TS2Vec
學習對於時間序列的普遍表達(universal representations)很重要,但很難。之前的許多工作專注於學習例項級別(instance-level)的表達。最近的工作引入了對比損失(contrastive loss)的策略來學習時間序列的固有結構。
已有模型的缺陷
-
例項級別的表達不夠精確,無法勝任一些需要細粒度分析的工作。比如有時候需要針對特定的時間戳或者子序列預測目標。
-
過去很少有模型能夠處理不同間隔的多尺度資訊。
-
TNC以固定的長度區別不同的段(segment)。
-
T-Loss採用隨機策略從原來的時間序列中選取子序列作為正樣本。
過去的模型不能獲取尺度不變資訊。(不同尺度的特徵可能提供不同層級的語義資訊,並且提升泛化能力)
-
-
過去許多模型是受CV或者NLP啟發得到的,但是時間序列預測領域的許多問題沒有影象或者自然語言的性質。這時,歸納偏置就未必成立了。
- 變幻不變性未必成立(transformation invariance)
- 剪裁不變性未必成立(cropping-invariance)。序列訊號的分佈和語義可能會隨時間變化,因而時間序列的子序列的分佈可能與原序列相差甚遠。
本模型的特點
- 可以在任意語義層級上學習時間序列的表達
- 在例項和時間維度上分層區分正負樣本
- 任意一個子序列的總體表達可以由針對對應時間戳的最大值池化得到。
- 模型可以以多種解析度捕捉時間資料的語義資訊,並且得到任何間隔的細粒度表達
- 模型中比較的目標是基於增強上下文檢視的。因而同一個子序列在兩種不同的增強上下文檢視中的表達應當一致。通過這種方式,我們在沒有引入奇怪的歸納偏置的情況下就得到了對於每個子序列的魯棒的上下文表達。
本文貢獻
-
TS2Vec是一種統一的框架,能夠在不同的語義層級上學習到任意一個子序列的上下文表達。它具有彈性,而且是一種廣泛的表示方法。
-
在對比性學習框架裡,提出了兩個新的設計。
-
在例項級別和時間維度上都採用了分層對比的方法,來捕捉不同尺度的上下文資訊。
-
提出了positive pair selection的上下文一致性。這更適合時間序列的特徵(多分佈,多尺度)
廣泛的分析證明了本模型對於有缺失值的時間序列資料具有魯棒性。分層對比和上下文一致性的有效性得到了消融實驗的檢驗。
-
-
TS2Vec在時間序列預測的三個分支上超過了當前最佳模型:分類,預測,異常檢測。
方法
問題定義
給出時間序列X={x1,x2,x3,...xN},它們是N個例項。目標是學習到一個函式fθ ,這個函式把每個xi對映到ri。ri是對xi的最佳描述。
xi 的維度是T × F。T是序列長度;F是特徵維度。ri = {ri1,ri2,...riT} 。其中每個rit都是K維的,它是針對每個時間戳t的。K是表達向量的維度
模型結構
對於xi,隨機選取它的兩個子序列(有重疊部分)。期望對於重疊部分獲得一致的上下文表達。原始資料被投入編碼器,編碼器通過兩方面進行優化:時間對比損失(temporal contrastive loss ),例項對比損失(instance-wise contrastive loss)。在當前的分層框架裡,總損失是多種尺度損失之和。
編碼器fθ包含三部分
-
輸入工程層(input projection layer)
全連線層。把各個xit(F維向量)對映到更高維度的zit(稱作“潛在向量”)
-
時間戳掩碼層(timestamp masking module)
隨機選擇時間戳,對上一步得到的zi進行掩碼,目的是獲得增強上下文檢視。
【注】對潛在向量進行掩碼,而不是直接對輸入進行掩碼。這是因為時間序列的值的取值範圍未必有界,而且不可能對於原始資料找到一個特殊的token。【見附錄B】
-
擴張卷積層( dilated CNN module)
有十個殘差塊。本層的目的是對於每個時間戳得到上下文表達。
每個殘差塊擁有兩個卷積層,並帶有一個擴張引數(第l個塊是2^l)。這種結構導致了不同層級擁有不同的感受野。
上下文不變性
對比學習中的正樣本對(positive pairs)的建立至關重要。
過去的論文采取了以下策略:
- 一個時間序列的表達應當與它被選取出來的子序列儘量近【?】
- 通過選擇相鄰的部分作為正樣本來增強表示的區域性平滑性【?】
- 通過不同的變幻增強輸入序列,比如放縮(scaling),排列(permutation)。期望模型能夠學到變幻不變性的表達。
上述策略是基於對資料分佈的比較強的假設作出的,可能不適應時間序列。
例如,當出現序列中存在水平移動時,子序列不變性的性質變得難以利用。
當序列中存在反常資訊時,時間不變性反而可能引入錯誤的正樣本對
上面兩張圖中,綠色和黃色部分顯然具有不同的模式,但是過去的策略會把它們考慮為相似的樣本對。【?第一張為何黃色比綠色寬】
所以我們提出了上下文不變性(contextual consistency)。這種策略會把同一個時間戳在兩個不同的增強上下文中的表達作為正樣本對。通過對原始資料進行時間戳掩碼(是先全連線,後掩碼)和隨機剪裁,就能得到一個上下文。
我們的做法有雙重優點:
- 掩碼和剪裁沒有改變時間序列的量級( magnitude)【?什麼意思】
- 強制讓每個時間戳在不同的上下文中重建自身,這提高了學習到的特徵的魯棒性
時間戳掩碼
對一個例項的時間戳進行隨機掩碼,得到新的上下文檢視。具體的來說,是對 輸入工程層(input projection layer)輸出的向量zi = {zit}沿著時間軸進行掩碼,過程中會用到二元掩碼向量m ∈ {0, 1}T 。 掩碼位置的選取是獨立的,服從p=0.5的伯努利分佈。在編碼器的每個前向傳播中,掩碼都是隨機選擇的。
隨機剪裁
對於每個T×F的xi,要隨機從上面選取兩個部分重疊的部分[a1,b1] , [a2,b2] 。對於兩個上下文檢視,重疊部分的上下文表達應當是一致的。
時間戳掩碼和隨機剪裁只在訓練階段發生
分層對比
分層對比損失將會強迫編碼器學習到不同尺度的表達。以下是演算法:
基於時間戳級的表達,沿時間軸對學到的表達進行最大值池化,並且遞迴的計算等式3。特殊地,在最高語義級別進行的對比讓模型可以學到例項級別的表達。
利用分層對比方法得到的表達遠比過去的模型給出的結果複雜。例如T-Loss只在例項層級進行了逐例項對比。TS-TCC只在時間戳級進行了逐例項對比;TNC在某個特定的粒度追求時間區域性平滑性。它們都沒有像本模型一樣封裝不同層級的表達。
為了捕捉時間序列的上下文表達,我們既利用了逐例項對比損失,也利用了時間維度上的對比損失,從而把時間序列分佈進行編碼。在分層比對模型中,損失函式被應用到所有粒度級別。
時間對比損失Temporal Contrastive Loss
為了學到隨時間變化的不同表達,本模型把相同時間戳不同檢視得到的表達作為正樣本對,把不同時間戳對應的表達作為負樣本對。
i是時間序列樣本的下標,t是時間戳。ri,t 和r'it分別表示相同時間戳不同檢視得到的表達(時間戳為t)。則第i個時間序列在時間戳t處的損失為![image-20211031230114083]
Ω 是重疊區域的時間戳集合。
逐例項對比損失(Instance-wise Contrastive Loss)
公式如下(i與t的含義同上)
B表示batch大小。把同一個batch裡的其他時間序列在t時刻的表達作為負樣本。
上面兩種對損失的計算是互補的。例如,給出一組來自不同使用者的電力消耗資料,例項對比可能會學到使用者相關的特徵,而時間對比可用於挖掘隨時間的動態趨勢。所以總損失定義為:
實驗
評估TS2Vec在時序分類、預測和異常檢測上學到的表達。
時序分類(Time Series Classifification)
每個例項對應一個標籤。因此需要例項層級的表達,這可以通過對所有時間戳進行最大值池化得到。
流程:把一個時間序列採用不同的方式進行特徵表達,然後用某種模型進行分類。發現用TES2Vec進行特徵表達時,結果最好。
而且TES2Vec訓練時間也更短。
時序預測(Time Series Forecasting)
輸入T個觀測到的資料,預測接下來將要出現的H個數據。
使用最後一個時間戳的表達rt來預測將來的觀測。具體來說,利用L2規範懲罰( L2 norm penalty)訓練一個線性迴歸模型,它直接把rt作為輸入,預測將來的所有x的值。
序列的表達只需要學習一次,就能被反覆的用到不同的任務中去(只需調整線性層),這印證了本模型的普遍價值
在ETTH2資料集上,Informer能夠捕捉長期趨勢,但無法捕捉到週期性的趨勢;TCN恰好相反;TS2Vec兩個都能捕捉到。
TS2Vec在訓練和預測階段都比Informer要快,這是因為不管要預測多久之後的資料,也不管預測將來多長的資料,特徵表達部分的模型只需訓練一次。
時序異常檢測
輸入一段時間序列{x1, x2, ..., xt}。判斷最後那個xt是否是異常的。在學到的表達上,異常點會與正常點有很大不同。另外,TS2Vec鼓勵對於一個例項在相同時間戳上的上下文不變性。
把是否掩碼得到的表達的差別作為異常等級。具體的來說,在預測階段,訓練好的TS2Vec對於每個輸入前向傳播兩次:第一次只把xt掩碼,第二次不掩碼。利用L1距離【?】來計算差別(不正常的程度)。
為了避免漂移( drifting)【?】,利用前Z個點的區域性平均來調整:
調整後的不正常程度計算公式為:
判斷一個時間戳是否不正常的標準是:
µ 和σ分別是歷史資料的均值和標準差【?】。β是超引數。
分析
消融實驗
對缺失資料的魯棒性
本模型具有很高的魯棒性。理論分析和實驗驗證都證明,這很大程度上歸功於分層對比和時間戳掩碼的策略。
視覺化解釋
第一行是各種資料的原始描述
第二行是模型給出的它們的表達。
附錄B 模型結構細節
輸入工程層
輸入工程層是對原始資料進行線性變幻,會把它對映到更高的維度
時間戳掩碼層務必要放到輸入工程層後面,這是因為
時間序列的值域可能是無限的,對於原始資料不可能找到一個特殊的token。
例如,我們可能用0進行掩碼,但是原來的輸入資料可能本身就是好多0,或者接近0。
但是如果放到輸入工程層後面,根據引理:
能保證得到的資料裡面沒有0,這樣就能區別掩碼位置和非掩碼位置了。【?訓練過程中,W和b會發生變化,還能保證這條性質嗎】
隨機剪裁
對於每個時間序列輸入
模型隨機剪裁出兩段重疊的子序列。隨機剪裁不僅是對時間戳掩碼的補充,而且是學到位置未知表達的關鍵環節。如果沒有隨機剪裁,可能會導致representation collapse【?】。這個現象可能是隱式位置對比( implicit positional contrasting)所致。如果讓位置資訊被時間對比模型知道了,那麼模型就會更傾向於利用絕對位置資訊而不是上下文資訊來減少時間對比損失。例如,模型可以獨熱的輸出其位置過去的人們已經證明了,卷積層可以把位置資訊隱式的編碼進去。隨機剪裁層保證模型不可能推斷出某個時間戳在重疊區域中的位置。