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)的策略來學習時間序列的固有結構。

已有模型的缺陷

  1. 實例級別的表達不夠精確,無法勝任一些需要細粒度分析的工作。比如有時候需要針對特定的時間戳或者子序列預測目標。

  2. 過去很少有模型能夠處理不同間隔的多尺度信息。

    1. TNC以固定的長度區別不同的段(segment)。

    2. T-Loss采用隨機策略從原來的時間序列中選取子序列作為正樣本。

      過去的模型不能獲取尺度不變信息。(不同尺度的特征可能提供不同層級的語義信息,並且提升泛化能力)

  3. 過去許多模型是受CV或者NLP啟發得到的,但是時間序列預測領域的許多問題沒有圖像或者自然語言的性質。這時,歸納偏置就未必成立了。

    1. 變幻不變性未必成立(transformation invariance)
    2. 剪裁不變性未必成立(cropping-invariance)。序列信號的分布和語義可能會隨時間變化,因而時間序列的子序列的分布可能與原序列相差甚遠。

本模型的特點

  • 可以在任意語義層級上學習時間序列的表達
  • 在實例和時間維度上分層區分正負樣本
  • 任意一個子序列的總體表達可以由針對對應時間戳的最大值池化得到。
  • 模型可以以多種分辨率捕捉時間數據的語義信息,並且得到任何間隔的細粒度表達
  • 模型中比較的目標是基於增強上下文視圖的。因而同一個子序列在兩種不同的增強上下文視圖中的表達應當一致。通過這種方式,我們在沒有引入奇怪的歸納偏置的情況下就得到了對於每個子序列的魯棒的上下文表達。

本文貢獻

  • TS2Vec是一種統一的框架,能夠在不同的語義層級上學習到任意一個子序列的上下文表達。它具有彈性,而且是一種廣泛的表示方法。

  • 在對比性學習框架里,提出了兩個新的設計。

    • 在實例級別和時間維度上都采用了分層對比的方法,來捕捉不同尺度的上下文信息。

    • 提出了positive pair selection的上下文一致性。這更適合時間序列的特征(多分布,多尺度)

      廣泛的分析證明了本模型對於有缺失值的時間序列數據具有魯棒性。分層對比和上下文一致性的有效性得到了消融實驗的檢驗。

  • TS2Vec在時間序列預測的三個分支上超過了當前最佳模型:分類,預測,異常檢測。

方法

問題定義

給出時間序列X={x1,x2,x3,...xN},它們是N個實例。目標是學習到一個函數 ,這個函數把每個xi映射到riri是對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)所致。如果讓位置信息被時間對比模型知道了,那么模型就會更傾向於利用絕對位置信息而不是上下文信息來減少時間對比損失。例如,模型可以獨熱的輸出其位置過去的人們已經證明了,卷積層可以把位置信息隱式的編碼進去。隨機剪裁層保證模型不可能推斷出某個時間戳在重疊區域中的位置


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM