(譯)Assumption-Free Anomaly Detection in Time Series

 

                                                       摘要

    近期在傳感器技術上的進步使得實時收集大量數據成爲可能。然而,由於龐大的數據量,它永遠不會被一個算法檢查,更不用說讓一個人去做這個事情。緩解這個問題的一個方法是完成某些類型的異常檢測,標記不尋常的模式以供人或更多CPU密集型算法進一步檢查。大部分當前的解決方案是對於部分領域的“custom made”,比如ECG監控,閾值監控等。這個定製需要領域專家額外的付出。此外,手工製作的系統容易受概念漂移的影響。在這個演示中,我們將展示一個在線異常檢測系統不需要爲個人領域定製,然而會表現出異常高的精確度/recall。系統基於最近引入的時間序列bitmaps想法。爲了證明我們系統的通用性,我們將允許對來自ECGs、航天飛機遙測監控、視頻監控和呼吸數據等不同領域的獨立標註數據集進行測試。此外,我們邀請參與者使用任何網絡上可獲得的數據集測試我們的系統。


1. 簡介

    近期在傳感器技術上的進步使得實時收集大量數據成爲可能。然而,由於龐大的數據量,它永遠不會被一個算法檢查,更不用說讓一個人去做這個事情。緩解這個問題的一個方法是完成某些類型的異常檢測,標記不尋常的模式以供人或更多CPU密集型算法進一步檢查。大部分當前的解決方案是對於部分領域的“custom made”,比如ECG監控,閾值監控等。這個定製需要領域專家額外的付出。此外,手工製作的系統容易受概念漂移的影響。在這個演示中,我們將展示一個在線異常檢測系統不需要爲個人領域定製,然而會表現出異常高的精確度/recall。系統基於最近引入的時間序列bitmaps想法。爲了證明我們系統的通用性,我們將允許對來自ECGs、航天飛機遙測監控、視頻監控和呼吸數據等不同領域的獨立標註數據集進行測試。此外,我們邀請參與者使用任何網絡上可獲得的數據集測試我們的系統。

2. 背景和相關工作

在這個部分,我們簡要回顧混沌博弈表示和時間序列的符號表示,它們是我們異常檢測技術的核心。


2.1 混沌博弈表示

    我們的可視化技術部分靈感來自一種繪製圖形的算法,該算法被稱爲混沌遊戲[1]。該方法可以產生DNA序列的表示,同時顯示本地模式和全局模式。

    基本思想是將長度爲L的DNA子串的頻率計數映射成一個2L×2L矩陣,如圖2所示,然後用顏色編碼這些頻率計數。從我們的觀點來看,關鍵的觀察是序列的CGR表示允許對序列中的模式進行研究,從而使人眼有可能識別隱藏的結構。

    例如,如果我們取四種常見物種的線粒體DNA序列的前5000個符號,並使用它們來重製它們自己的文件圖標,我們就可以得到該方法的潛在效用的提示。下面的圖3說明了這一點。請注意,黑猩猩是我們所熟悉的,非洲象Loxodonta africana和印度象Elephas maximus分別是非洲象和印度象。即使我們不知道這些特殊的動物,我們也可以毫無疑問地認識到有兩對高度相關的物種正在被考慮之中。

 

2.2 符號化時間序列表示

    雖然文獻中至少有200種將實值時間序列轉換爲離散符號的技術,但Lin等人的SAX技術是獨特的,非常適合ata挖掘。SAX是惟一允許原始空間中距離的下界的符號表示形式。

    SAX表示是通過獲取一個實值信號並將其分成大小相同的部分來創建的。然後計算每個部分的平均值。將每一節的均值代入,得到數據的降維逐段常數逼近。然後將這種表示離散化,以生成帶有近似等概率符號的ord。圖4顯示了將一個簡短的時間序列轉換爲SAX單詞baabccbc。

    有人指出,在處理非常長的時間序列時,將整個時間序列轉換爲單個SAX單詞[11]不一定是一個好主意。因此,對於長時間序列,我們滑動一個較短的窗口(稱爲feature窗口),並從中獲得一組較短的SAX單詞。

    注意,用戶必須同時選擇滑動特徵窗口N的長度和要分割N的等大小部分的數量N(正如我們將看到的,字母大小沒有選擇的餘地)。N的最佳選擇應該反映時間序列中事件發生的自然尺度。例如,對於心電圖,這大約是一個或兩個心跳的長度。n的取值取決於信號的複雜度。直觀地說,人們希望在近似保真度和降維之間取得良好的折衷。正如我們將看到的,所提出的技術對參數選擇不是太敏感。

3. 時間序列異常檢測

3.1 時間序列Bitmaps

    至此,我們已經看到混沌遊戲bitmaps可以用於可視化離散序列,SAX表示是一種離散時間序列表示,它在數據挖掘方面顯示了巨大的實用價值。考慮把這些想法結合起來是很自然的。

    混沌遊戲bitmaps是爲字母表大小爲4的序列定義的。SAX可以生成任意字母表大小的字符串。事實證明,許多作者都報告過基數爲4是針對各種問題的不同數據集[2][3][6][7][8][9]的最佳選擇。

    我們需要爲四個SAX符號a、b、c和d定義一個初始順序。我們使用簡單的字母順序,如圖5所示。

    在將原始時間序列轉換爲SAX表示形式之後,我們可以計算長度爲L的SAX“子單詞”的頻率,其中L是所需的遞歸級別。1級頻率只是4個符號的原始計數。對於級別2,我們計算大小爲2的子單詞對(aa、ab、ac等)。注意,我們只計算從單個SAX單詞中提取的子單詞。例如,在圖5中右的SAX表示中,第一行的最後一個符號是a,第二個單詞的第一個符號是b。

    一旦獲得所需長度的所有子詞的原始計數,並記錄在網格的相應像素中,我們將其除以最大值,從而對頻率進行歸一化.因此,像素值P的範圍從0到1。最後一步是將這些值映射到顏色。在上面的例子中,我們映射到灰度,0 =白色,1 =黑色。然而,人們普遍認爲灰度並不是感知上一致的[10]。如果一個像素值的微小變化在該值的範圍內幾乎是同樣可感知的,則稱顏色空間在感知上是一致的。對於本文中的所有圖像,我們將像素值編碼爲[P, 1-P, 0]在RGB顏色空間中。
  對於相同大小的位圖,我們將它們之間的距離定義爲每對像素之間距離的平方和。更正式,兩個n×n位圖英航和BB,它們之間的距離定義爲。

3.2 異常檢測

    我們創建兩個連接的窗口,並將它們在序列中滑動到一起。後一種被稱爲“領先窗口”,它顯示了異常模式的預測距離。一個合理的值應該是feature窗口長度的兩到三倍。前者稱爲延遲窗口,其大小表示要記住的過去的內存。通常,它至少應該和前置窗口一樣長。我們將每個窗口轉換爲SAX表示形式,計算所需級別上SAX“子單詞”的頻率,並獲得相應的位圖。測量兩個位圖之間的距離,並將其作爲每個時間實例的異常分數進行報告,繪製位圖以可視化兩個窗口之間的相似性和差異性。

    使用該工具有兩種方法,非監督(一個時間序列)和監督(兩個時間序列)。對於非監督使用,用戶必須指定延遲窗口的大小。對於監督使用,用戶必須指定他/她認爲包含系統正常行爲的時間序列文件。例如,這可能是正常的10分鐘心電圖,或者是一次成功的太空任務留下的痕跡。在這種情況下,整個訓練時間序列可以想象爲滯後窗口。

    在滑動窗口的每個“步驟”中,我們可以增量地進入一個新的數據點,並以恆定的時間退出一箇舊的數據點(只更新每個位圖的兩個像素)。因此,時間複雜度在時間序列的長度上是線性的。

4.實驗評價

    爲了證明我們系統的通用性,我們對來自ECGs、航天飛機遙測監控、視頻監控和呼吸數據等不同領域的獨立標註數據集進行了測試。由於篇幅的限制,這裏我們只展示了實驗結果的一個子集。但是我們在這裏主要關注它在異常檢測中的應用。我們敦促感興趣的讀者諮詢[5]的大規模彩色複製和其他細節。

     圖6以一個ECG數據的子集爲例。一位心臟病專家分別在0.4和1.1標記處註釋了兩次室性早搏,在1.0標記處註釋了一次室上逸出搏動。我們的方法很容易檢測到這三種異常。

    圖7展示了一個非常複雜並且有噪聲的ECG。但是根據一位心臟病專家的說法,在0.23的範圍內只有一次心跳異常。我們的工具很容易找到它。

5.示範計劃

我們的演示將包括以下三個部分。

首先,我們將展示一些可以應用我們的技術的實際應用。這些例子將爲觀衆提供時間序列異常檢測任務的見解。

其次,通過使用來自不同領域的真實數據集,我們將展示我們的系統的實驗評估。

最後,我們會邀請觀衆自己互動地玩這個工具。鼓勵聽衆測試他們自己的數據集。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章