應用層級時空記憶模型(HTM)實現對實時異常流時序數據檢測

應用層級時空記憶模型(HTM)實現對實時異常流時序數據檢測

Real-Time Anomaly Detection for Streaming Analytics 
Subutai Ahmad SAHMAD@NUMENTA.COM 
Numenta, Inc., 791 Middlefield Road, Redwood City, CA 94063 USA 
Scott Purdy SPURDY@NUMENTA.COM 
Numenta, Inc., 791 Middlefield Road, Redwood City, CA 94063 USAios

摘要

世界上的許多數據都是流式的時間序列數據,在這些數據中,異常在關鍵狀況下提供了重要的信息。然而,檢測流式數據中的異常是一項艱鉅的任務,須要探測器實時處理數據,並在進行預測的同時學習。本文提出了一種新的基於在線序列記憶算法的異常檢測技術——分層時間記憶(HTM)。咱們展現了一個實時檢測財務指標異常的實時應用程序的結果。咱們還在NAB上對算法進行了測試,NAB是一個發佈的實時異常檢測基準,咱們的算法在NAB上取得了最好的結果。git

1、概述

在每一個行業中,咱們都看到流媒體形式的時間序列數據的可用性呈指數級增加。 在物聯網(IoT)和鏈接的實時數據源的興起的推進下,咱們如今擁有大量帶有傳感器的應用程序,能夠生成重要且不斷變化的數據。 
實時流數據中的異常檢測在許多行業中具備實際和重要的應用。 異常檢測有許多用例,包括預防性維護,防欺詐,故障檢測和監控。 用例能夠在許多行業中找到,例如金融,IT,安全,醫療,能源,電子商務和社交媒體。 
咱們將異常定義爲系統行爲異常且與過去行爲明顯不一樣的時間點。 根據這個定義,異常並不必定意味着問題。 改變多是因爲負面緣由,例如發動機上的溫度傳感器上升,代表可能即將發生故障。 或者更改多是出於積極的緣由,例如新產品頁面上的網頁點擊異常高,顯示需求強勁。 不管哪一種方式,數據都是不尋常的,可能須要採起行動。 異常能夠是空間的,意味着該值超出了典型範圍,如圖1中的第一個和第三個異常。它們也能夠是時間的,其中值不在典型範圍以外,但它發生的順序是不尋常的。 圖1中的中間異常是時間異常。 
這裏寫圖片描述
圖1.該圖顯示了來自大型工業機器內部組件的實際溫度傳感器數據。 異經常使用紅色圓圈標記。 第一個異常是計劃停工。 第三個異常是災難性的系統故障。 第二個異常,一個微妙但可觀察到的行爲變化,代表問題的實際發生致使最終的系統故障。 
實時應用程序對機器學習施加了本身獨特的限制。 流應用中的異常檢測特別具備挑戰性。 檢測器必須處理數據並實時輸出決策,而不是經過批量文件進行屢次傳遞。 在大多數狀況下,傳感器流的數量很大,人類不多有機會,更不用說專家干預了。 所以,以無人監督的自動方式(例如,無需手動參數調整)操做一般是必要的。 底層系統一般是非平穩的,探測器必須不斷學習和適應不斷變化的統計數據,同時進行預測。 
本文的目的是介紹一種專爲此類實時應用而設計的新型異常檢測技術。 咱們將展現如何使用Hierarchical Temporal Memory (HTM)網絡(Hawkins&Ahmad,2016; Padilla等,2013; Rozado等,2012)以有原則的方式在各類條件下穩健地檢測異常。 由此產生的系統是高效的,很是容忍噪聲數據,不斷適應數據統計的變化,並檢測很是微妙的異常,同時最大限度地減小誤報。 咱們展現了實時金融異常檢測應用程序的定性示例。 咱們還報告了實時異常檢測的開放基準測試的領先結果。 該算法已經商業化部署,咱們將討論從這些部署中學到的一些實踐經驗教訓。 咱們已經在開源存儲庫中提供了完整的源代碼(包括最終應用程序代碼)。github

2、有關工做

時間序列中的異常檢測是一個研究不少的領域,可追溯到(Fox,1972)。 一些技術,如基於分類的方法,受到監督或半監督。 雖然標記數據可用於改善結果,但監督技術一般不適用於異常檢測(G¨ornitz等,2013)。 圖2說明了對連續學習的需求,這一般不是可使用監督算法。 
這裏寫圖片描述
圖2. Amazon EC2實例的CPU利用率(百分比)。 對計算機上運行的軟件進行更改會致使CPU使用率發生變化。 持續學習對於像這樣對流數據執行異常檢測相當重要。 
其餘技術,如簡單閾值,聚類和指數平滑,只能檢測空間異常。 Holt-Winters是後者的一個例子,一般用於商業應用(Szmit&Szmit,2012)。 在實踐中一般使用的是變點檢測方法,其可以識別時間異常。 典型的方法是在兩個獨立的移動窗口中對時間序列進行建模,並檢測時間序列度量中什麼時候存在顯着誤差(Basseville&Nikiforov,1993)。 這些方法一般計算速度極快且內存開銷較低。 這些統計技術的檢測性能可能對窗口和閾值的大小敏感。 隨着數據的變化,這有時會致使許多誤報,須要頻繁更新閾值,以便在最小化誤報的同時檢測異常。 
Skyline項目提供了許多統計技術的開源實現,用於檢測流數據中的異常(Stanway,2013)。 不一樣的算法能夠組合成一個總體。 Skyline算法包含在咱們的結果中。 
還有其餘算法可以檢測複雜場景中的時間異常。 ARIMA是一種用於對季節性時態數據建模的通用技術(Bianco等,2001)。 它能夠有效地檢測具備常規每日或每週模式的數據異常。 它不能動態地肯定季節性的時期,儘管已經開發了這樣作的延伸(Hyndman&Khandakar,2008)。 還研究了將ARIMA應用於多變量數據的技術(Tsay,2000)。 貝葉斯變換點檢測方法是分割時間序列的天然方法,可用於在線異常檢測(Adams&Mackay,2007; Tartakovsky等,2013)。 用於流數據的通用異常檢測的一些附加技術包括(Keogh等人,2005; Rebbapragada等人,2009)。 
雅虎發佈了用於時間序列異常檢測的開源EGADS框架,該框架將時間序列預測技術與常見的異常檢測算法結合起來(Laptev等,2015)。 Twitter發佈了本身的時間序列數據開源異常檢測算法(Kejariwal,2015)。 二者都可以檢測空間和時間異常。 咱們的結果中包含了與Twitter檢測軟件的實證比較。 
已經有許多基於模型的方法應用於特定領域。 這些每每對他們建模的領域很是具體。 示例包括飛機發動機測量中的異常檢測(Simon&Rinehart,2015),雲數據中心溫度(Lee等人,2013)和ATM欺詐檢測(Klerx等人,2014)。 雖然這些方法可能在特定域中取得成功,但它們不適用於通用應用程序。 
咱們已經回顧了一些與咱們的工做最相關的算法。 全面的文獻綜述超出了本文的範圍,可是有一些關於異常檢測技術的詳細綜述可供進一步閱讀(Chandola等,2009; Hodge&Austin,2004; Chandola等,2008)。 
在本文中,咱們專一於使用HTM分層時間記憶(HTM)進行異常檢測。 HTM是一種源自神經科學的機器學習算法,它模擬流數據中的空間和時間模式(Hawkins&Ahmad,2016; Rozado等,2012)。 HTM與序列預測中的一些現有算法相比是有利的,特別是複雜的非馬爾可夫序列(Cui等,2015; Padilla等,2013)。 HTM不斷學習系統,自動適應不斷變化的統計數據,這是一種與流分析特別相關的屬性。算法

3、使用HTM實現異常檢測

典型的流應用涉及分析實時發生的連續數據流。 此類應用包含一些獨特的挑戰。 咱們將此形式化以下。 設矢量xtxt表示時刻tt的實時系統的狀態。 該模型接收連續的輸入流:安全

 
,xt2,xt1,xt,xt+1,xt+2,⋯,xt−2,xt−1,xt,xt+1,xt+2,⋯


(1) 
例如,考慮監控數據中心的任務。的組件可能包括各類服務器的CPU使用率,帶寬測量值,服務請求的延遲等。在每一個時間點tt,咱們但願肯定系統的行爲是否異常。 關鍵挑戰之一是必須實時地進行肯定,即在時間t+1t+1以前而且沒有任何前瞻。 在實際應用中,系統的統計數據能夠動態變化。 例如,在生產數據中心,可能會隨時安裝軟件升級,從而改變系統的行爲(圖2)。 模型的任何從新訓練必須在時間t+1t+1以前在線完成。最後,各個測量不是獨立的,而且包含能夠被利用的重要時間模式。 
HTM是一種彷佛與上述約束相匹配的學習算法。 HTM網絡不斷學習和模擬其輸入的時空特徵。 HTM已被證實能夠很好地用於預測任務(Cui等,2015; Padilla等,2013),但HTM網絡不直接輸出異常分數。爲了執行異常檢測,咱們利用HTM中可用的兩種不一樣的內部表示。給定輸入xtxt,向量a(xt)a(xt)是表示當前輸入的稀疏二進制代碼。咱們還利用內部狀態向量π(xt)π(xt)表示對a(xt+1)a(xt+1)的預測,即對下一個輸入的預測。預測向量包含關於當前序列的推斷信息。特別地,給定輸入將致使不一樣的預測,這取決於當前檢測到的序列和序列內輸入的當前推斷位置。預測的質量取決於HTM對當前數據流建模的程度。有關這些表示的更詳細說明,請參閱(Hawkins&Ahmad,2016)。 
a(xt)a(xt)和π(xt)π(xt)在每次迭代時從新計算,但不直接表示異常。 爲了建立一個強大的異常檢測系統,咱們引入了兩個額外的步驟。 咱們首先從兩個稀疏向量計算rawanomalyscore原始異常分數(rawanomalyscore)。 而後,咱們計算一個anomalylikelihood異常似然值(anomalylikelihood),該閾值被閾值化以肯定系統是不是異常的。 圖3顯示了咱們的算法的框圖。 這兩個步驟詳述以下。 而後,咱們將描述如何穩健地處理由多個不一樣模型組成的更大系統。 
這裏寫圖片描述
圖3.算法中的主要功能步驟。
服務器

 

3.1計算原始異常分數(raw anomaly score)

咱們計算一個原始異常分數,用於衡量模型預測輸入與實際輸入之間的誤差。 它是根據預測稀疏矢量和實際稀疏矢量之間的交集來計算的。 在時間tt,原始異常分數stst給出爲:網絡

 
st=π(xt1)a(xt)|a(xt)|st=π(xt−1)∙a(xt)|a(xt)|


(2) 
若是當前輸入被完美預測,則原始異常分數將爲0;若是徹底不可預測,則原始異常分數將爲1,或者取決於輸入和預測之間的類似性,原始異常分數將介於二者之間。 
該評分的一個有趣方面是正確處理分支序列。 在HTM中,多個預測以π(xt)π(xt)表示爲每一個單獨預測的二元並集。 與Bloom過濾器相似,只要向量足夠稀疏且具備足夠的維度,就能夠同時表示中等數量的預測,而且指數上的偏差概率很小(Bloom,1970; Ahmad&Hawkins,2016)。 異常分數在如下意義上優雅地處理分支序列。 若是兩個徹底不一樣的輸入都是可能的和預測的,接收任一輸入將致使0異常分數。 任何其餘輸入將產生正異常分數。 
因爲HTM的持續學習性質,也能夠優雅地處理對底層系統的更改。 若是系統的行爲發生變化,則異常分數在移位點處會很高,但在模型適應「新常態」時會自動降級爲零。 除了基礎度量值的空間移位以外,還處理系統的時間特性的變化。 (有關示例,請參閱結果部分。)
app

 

3.2計算異常似然值(anomaly likelihood)

上述原始異常分數表示當前輸入流的可預測性的瞬時度量。 這適用於可預測的場景,但在許多實際應用中,底層系統本質上是噪聲和不可預測的。 在這些狀況下,一般可預測性的變化代表了無心義的行爲。 例如,請考慮圖4.此數據顯示負載均衡器在生產網站上提供HTTP請求時的延遲。 儘管延遲一般較低,但偶爾出現隨機跳躍而且異常得分相應的峯值並不罕見。 直接對原始異常分數進行閾值處理會致使許多誤報。 然而,如圖的後半部分所示,高延遲請求頻率的持續增長是不尋常的,所以報告爲異常。 
這裏寫圖片描述
圖4.很是嘈雜,不可預測的流。 數據顯示生產網站上負載均衡器的延遲(以秒爲單位)。 紅點表示延遲異常增長的大體位置。 
爲了處理這類場景,咱們引入了第二步。 咱們不是直接對原始分數進行閾值處理,而是對異常分數的分佈進行建模,並使用此分佈來檢查當前狀態是否異常的可能性。 所以,異常可能性是定義當前狀態如何基於HTM模型的預測歷史異常的度量。 爲了計算異常可能性,咱們維持最後W原始異常分數的窗口。 咱們將分佈建模爲滾動正態分佈,其中樣本均值和方差從先前的異常分數不斷更新,以下所示:負載均衡

 
μt=i=W1i=0stikμt=∑i=0i=W−1st−ik


(3)
框架

 
σ2t=i=W1i=0(stiμt)k1σt2=∑i=0i=W−1(st−i−μt)k−1


(4) 
而後咱們計算最近的異常分數的短時間平均值,並對高斯尾機率(Q函數,(Karagiannidis&Lioumpas,2007))應用閾值來決定是否聲明異常2。 咱們將異常可能性定義爲尾部機率的補充:

 
Lt=1Q(μ~tμtσt)Lt=1−Q(μ~t−μtσt)


(5) 
其中:

 
μ~t=sumi=W1i=0stijμ~t=sumi=0i=W−1st−ij


(6) 
這裏WW′是一個短時間均線的窗口,其中W<<WW′<<W。咱們閾值LtLt若是它很是接近1報告異常,:

 
anomalydetectedLt1ϵanomalydetected≡Lt≥1−ϵ

(7) 
值得注意的是,此測試適用於異常分數的分佈,而不適用於基礎度量值xtxt的分佈。 所以,相對於近期歷史,它是衡量模型可以預測的程度的指標。 在乾淨的可預測場景中,LtLt的行爲相似於stst。 在這些狀況下,分數的分佈將具備很是小的方差而且將以0爲中心。任何尖峯將一樣致使LtLt中的相應尖峯。然而,在具備一些固有隨機性或噪聲的狀況下,方差將更寬而且stst的單個峯值不會致使LtLt顯着增長,但會出現一系列峯值。 有趣的是,從狂野隨機到徹底可預測的情景也會引起異常現象。 
因爲閾值處理LtLt涉及閾值尾部機率,所以警報的數量存在固有的上限。 用ϵϵ很是接近0,不太可能獲得機率遠高於的警報。 這也對誤報的數量施加了上限。 假設異常自己也很是罕見,咱們但願真陽性與假陽性的比例始終處於健康範圍內(見下面的結果)。 
雖然咱們使用HTM做爲基礎時間模型,但似然技術並不特定於HTM。 它能夠與輸出稀疏代碼或標量異常分數的任何其餘算法一塊兒使用。 檢測器的總體質量將取決於底層模型表示域的能力。

 

3.3結合多個獨立模型實現大型系統

許多工業或複雜環境包含大量傳感數據流。理論上,給定足夠的資源,能夠建立一個大的複雜模型,整個矢量流做爲輸入。在實踐中,一般將大型系統分解爲許多較小的模型。訓練較小的模型更容易,由於訓練和推理的複雜性比輸入維度的大小線性增加快得多(Bishop,2006)。所以,將解決方案組合成一組較小的模型能夠提升準確性而且更快地實現性能。然而,即便進行這樣的分解,重要的是計算累積單個模型的結果的全局度量而且指示系統的那些部分是否處於異常狀態。例如,考慮運行生產網站的數據中心。自動警報系統可能須要不斷決定是否生成警報並可能喚醒隨叫隨到的工程師。 
咱們假設表明系統的輸入被分解爲MM個不一樣的模型。 設xmtxtm是第mm個模型在時間tt的輸入,而smtstm是與每一個模型相關的原始異常分數。 咱們但願計算一個全局度量,指示系統中異常的整體可能性(參見圖5)。 
這裏寫圖片描述
圖5.說明具備多個獨立模型的複雜系統的功能圖。 
一種可能的方法是估計聯合分佈P(s0t,,sM1t)P(st0,⋯,stM−1)並對尾部機率應用閾值。對聯合分佈進行建模可能具備挑戰性,特別是在流式上下文中。 若是咱們進一步假設模型是獨立的,咱們能夠簡化並估算:

 
P(s0t,,sM1t)=i=0i=M1P(sit)P(st0,⋯,stM−1)=∏i=0i=M−1P(sti)


(8) 
鑑於此,咱們的異常可能性版本能夠計算爲:

 
1i=0i=M1Q(μ~itμitσit)1−∏i=0i=M−1Q(μ~ti−μtiσti)


(9) 
上述方法存在一個缺陷。 在實時動態場景中,系統某個部分的關鍵問題一般能夠級聯到其餘區域。 所以,一般存在內置的隨機時間延遲,這反過來致使各類模型中的異常分數之間的不一樣時間延遲(Kim等人,2013)。 例如,在不一樣模型中多個異常事件彼此接近發生的狀況比單個模型中的單個事件更不可能和不尋常。 正是這些狀況對於在複雜系統中檢測和捕獲是有價值的。 
理想狀況下,咱們可以估計出可追溯到時間的異常分數的聯合分佈,即P(s0ij,s1ij,,sM2t,sM1t)P(si−j0,si−j1,⋯,stM−2,stM−1)。 理論上,這將捕獲全部依賴關係,但這比早期的聯合機率更難估計。 或者,在系統拓撲相對清晰且受您控制的狀況下,能夠建立依賴關係的顯式圖,監視節點對之間的預期行爲,並檢測與這些指望相關的異常。 已經證實這種技術很是精確肯定監測服務之間特定呼叫的網站中的異常(Kim et al。,2013)。 然而,在大多數應用中,這種技術也是不切實際的。 對各類依賴關係進行建模可能很困難,而且一般能夠設置任意系統來建立該圖。 
咱們但願系統可以快速計算,作出相對較少的假設,而且具備自適應性。 咱們提出了一種簡單的通用機制,經過修改公式(9)來處理多個模型。 合併一個平滑的時間窗口。 窗口機制容許系統結合尖峯,其可能性在時間上接近但不徹底重合。 設G是高斯卷積核:

 
D(x,σ)=12π−−√σexpx22σ2D(x,σ)=12πσexp−x22σ2


(10) 
咱們將此卷積應用於每一個單獨的模型以得到最終的異常可能性得分3:

 
Lt=12(GQ)(μ~itμitσit)Lt=1−2(G∗Q)(μ~ti−μtiσti)


(11) 
和之前同樣,若是組合異常可能性大於閾值LtLt,咱們會檢測到異常Lt1ϵLt≥1−ϵ。公式(11)表示用於檢測複雜實時流應用中的異常的原則但實用的方法4。 和之前同樣,LtLt是間接測量,在每一個模型的原始異常分數之上計算。 它反映了模型在特定時間點的潛在可預測性,並不直接模擬傳感器測量自己。

 

3.4實際考慮的問題

單個模型場景中有三個參數:WW,WW′和ϵϵ。 W是計算異常分數分佈的持續時間。 系統性能對W不敏感,只要它足夠大以計算可靠的分佈。 數字WW′控制異常分數的短時間平均值。 在下面的全部實驗中,咱們使用W=8000W=8000和W=10W′=10的寬大值。 
參數ϵϵ也許是最重要的參數。 它控制異常報告的頻率,以及誤報和漏報之間的平衡。 在實踐中咱們發現了ϵ=105ϵ=10−5適用於各類領域。 直觀地說,這應該表明每10,000條記錄一次的誤報。 
多重模型場景引入了一個附加參數,即窗口寬度σσ。 這在某種程度上取決於域,但因爲軟高斯卷積,系統對此設置不是很是敏感。 在下面的全部實驗中,σ=6σ=6。 
計算效率對於實時應用程序很是重要。 在咱們的實現中,每一個模型在當前高端筆記本電腦上每一個輸入向量須要不到10毫秒。 並行運行多個模型的基於服務器的部署能夠在高端服務器上運行大約5,000個模型。 該圖假設每一個輸入每5分鐘到達一次(所以5,000個模型中的每個須要每5分鐘輸出一個分數)。 做爲社區服務,咱們已經將完整的源代碼發佈到算法以及服務器應用程序代碼庫做爲開源5。 
這裏寫圖片描述 
圖6. 2016年2月4日的實時股票異常狀況。

4結果

咱們首先展現來自已部署應用程序的示例,該應用程序定性地演示了咱們算法的行爲。 而後,咱們顯示基準數據的定量結果。 
咱們已將異常檢測算法集成到實時產品中。該應用程序持續監控大量證券的大量金融和社交媒體指標,並在發生重大異常時實時提醒用戶。圖6顯示了咱們的應用程序的兩個屏幕截圖,它們向最終用戶展現了實時異常檢測的價值。在這個例子中,Twitter活動量的異常(與股息減小有關)在股價急劇下跌以前。 Twitter異常發生在市場開放以前。基礎數據流很是嘈雜,許多重要的異常都是暫時的。圖7顯示了從咱們的應用程序中提取的原始數據,展現了一個這樣的異常。該圖顯示了Facebook幾個小時的股票交易量。每一個點表明五分鐘的平均交易量。看到交易量出現飆升是正常的,但看到連續兩次飆升是極不尋常的。所以,兩個連續峯值表示該流中的時間異常。紅色虛線表示咱們的算法檢測到異常的點,即Lt1105Lt≥1−10−5的時間點。 
這裏寫圖片描述
圖7. 2016年2月2日Facebook的股票交易量。紅色虛線顯示咱們的算法檢測到異常的點。 在這個流中,兩個連續的尖峯是很是不尋常的而且表明異常。 
這裏寫圖片描述
圖8. 2016年2月4日兩個Comcast指標得出的Q值。紅色虛線表示咱們的算法檢測到異常的點。 
圖8顯示了一個更詳細的示例,演示了組合多個指標的價值。 兩條實線表示與Comcast股票相關的兩個獨立指標的公式(5)中的Q值。 曲線越低,基礎指標異常的可能性越大。 單獨查看單個模型時,只有在其中一個值低於下方時纔會檢測到異常ϵ=105ϵ=10−5。 在這種狀況下,不會檢測到任何異常,由於任何一個都不會低於該值。 可是,以下降所示,兩個指標都表現異常。 紅色虛線表示基於咱們的組合度量(公式(11))檢測異常的結果。 由於藍色曲線很是接近10510−5,因此只要黑色曲線低於10110−1,正確地合併兩個指標就會標記異常。 從圖表中能夠理解,難以精確地排列兩個度量,所以平滑時間窗口的值。

4.1真實基準數據的結果

以上部分展現了各個數據流的定性結果。 在本節中,咱們提供定量基準測試結果。 NAB是一個包含58個流的基準測試,擁有超過350,000個來自各類不一樣應用程序的實時流數據記錄(Lavin&Ahmad,2015)。 數據集標有異常。 每一個數據文件的前15%保留用於自動校準。 NAB還包括一個圍繞每一個異常的窗口,幷包含一個時間敏感的評分機制,有利於早期檢測(只要檢測在異常窗口內)。 「應用程序配置文件」定義了誤報和漏報的權重,以說明錯誤檢測較少或錯誤檢測較少的狀況。 該基準測試要求模型在全部流中使用一組參數來模擬實際部署中的自動化。 
咱們在NAB上運行了基於HTM的異常檢測器。 表1包含咱們的分數以及其餘幾種算法的分數,包括Etsy Skyline,Twitter AnomalyDetectionVec(ADVec)和貝葉斯在線變化點檢測的變體(Adams&Mackay,2007)6。 咱們包括「完美」探測器的分數,即理想化的探測器,它儘量早地探測每一個異常而且不產生誤報。 咱們還將「滑動閾值」和「隨機」探測器的分數做爲基線進行比較。 HTM探測器得到最佳總分,其次是Twitter ADVec和Etsy Skyline。 然而,從Perfect探測器的性能能夠看出,基準測試具備挑戰性,具備很大的將來改進空間。 
這裏寫圖片描述 
表1. NAB基準測試的性能。 第一列表示每種算法的標準NAB分數。 最後兩列表示NAB的「偏低FP」和「偏低FN」曲線的分數,表明ROC曲線上的兩個特定點。 爲了進行比較,咱們提供了一個「完美」探測器,一個不會出錯的理想探測器。 
NAB基準測試不測量明確的ROC曲線,但包括兩個額外的「應用程序配置文件」,用於權衡誤報和漏報之間的權重。 「獎勵低FP」配置文件對誤報應用較高的成本。 相反,「獎勵低FN」配置文件對假陰性應用更高的成本。 表1的最後兩列顯示了這兩個配置文件的分數。 儘管存在個體差別(特別是Twitter在「獎勵低FN」列中顯着改善),但咱們的檢測器總體表現最佳,代表它在假陽性和假陰性之間實現了良好的權衡。 
仔細觀察錯誤說明了實時應用程序中出現的一些有趣狀況。 圖9(a)展現了持續學習的價值。 此文件顯示生產服務器上的CPU使用率隨時間的變化幷包含兩個異常。 第一個是全部算法檢測到的簡單尖峯。 第二是使用的持續轉變。 Skyline和HTM都檢測到變化但隨後適應新的法線(Skyline適應最快)。 然而,Twitter ADVec繼續產生異常很多天。 Skyline在這條小溪上得分最高。

圖9.三個不一樣數據流的示例NAB結果。 形狀對應於不一樣的檢測器:HTM,Skyline和ADVec分別是菱形,方形和加號。 真正的陽性標記爲黑色,誤報標記爲紅色。 粉紅色陰影區域表示NAB的異常窗口; 窗口內的任何檢測都被視爲真正的正面。 
圖9(b)和(c)顯示了時間異常及其在早期檢測中的重要性。 圖9(b)是展現早期檢測的示例。 全部三個探測器都檢測到異常,但因爲公制動態的細微變化,HTM在三小時前檢測到它。 圖9(c)顯示了圖1中所示的機器溫度傳感器數據的結果的特寫。左側的異常是稍微微妙的時間異常,其中時間行爲是不尋常的可是個體讀數在預期範圍內。 這種異常(在2月8日發生災難性故障以前)僅由HTM檢測到。 儘管Skyline和HTM早於ADVec檢測到它,但全部三個探測器都檢測到右側的異常。 在這個情節中,HTM和Skyline也都有誤報。 
咱們選擇這些例子是由於它們說明了在實踐中發生的常見狀況。 定性地,咱們發現行爲的時間變化一般先於較大的,易於檢測的變化。 基於時間和序列的異常檢測技術能夠在流數據易於可見以前檢測其中的異常。 咱們推測圖9(b)中的早期檢測是因爲HTM中的時間建模,由於較早的偏移很難經過純空間手段來檢測。 這使得但願這種算法能夠用於生產中以提供早期警告,而且可能比空間技術更可靠地幫助避免問題。 
貝葉斯變換點檢測的低分是因爲其對數據點的高斯或Gamma分佈的強有力假設。 現實世界的流數據很混亂,而且這些假設在許多應用程序中都不成立。 在它確實存在的數據中(例如圖2,9a),該算法工做良好,但對於大多數流(例如圖1,4),它不能。 實際上,正是這種流媒體應用程序之間缺少一致的分佈致使咱們對異常分數的分佈進行建模而不是度量值的分佈。 
從計算效率的角度來看,在第一做者的筆記本電腦上,運行NAB的365,558條記錄的完整數據集須要48分鐘。 這表示每條記錄平均爲8毫秒。 
5.討論 
隨着鏈接的實時傳感器的增長,流數據中的異常檢測變得愈來愈重要。 這些用例涉及衆多行業; 異常檢測可能表明物聯網中機器學習最重要的近期應用。 
在本文中,咱們討論了一種用於實時流應用的新型異常檢測算法。 基於HTM,該算法可以檢測可預測區域和噪聲區域中的空間和時間異常。 機率公式容許用戶控制誤報率,這是許多應用中的重要考慮因素。 咱們討論了具備多個獨立模型的大型系統的擴展,這些模型包含時間窗口。 
咱們的結果代表,該算法能夠在現實世界數據源的基準上得到最佳的結果。 咱們的系統實用,由於它具備計算效率,可自動適應不斷變化的統計數據,而且幾乎不須要參數調整。 它目前在商業應用中使用,該算法的完整源代碼可做爲開源軟件7使用。 
(7Please see http://numenta.com/nab) 
算法有許多可能的擴展。 NAB的偏差分析代表,咱們算法的偏差不必定與其餘兩種算法的偏差相關。 所以,基於集合的方法能夠提供準確性的顯着增長。 異常分數的高斯分佈假設並不老是正確的。 探索其餘分佈表明另外一種可能的擴展,可能會改善結果。

參考 
References 
Adams, Ryan Prescott and Mackay, David J. C. Bayesian Online Changepoint Detection. arXiv.org, pp. 7, 2007. doi: arXiv:0710.3742v1. URL http://arxiv.org/ abs/0710.3742. 
Ahmad, Subutai and Hawkins, Jeff. How do neurons operate on sparse distributed representations? A mathematical theory of sparsity, neurons and active dendrites. pp. arXiv:1601.00720 [q–bio.NC], jan 2016. URL http: //arxiv.org/abs/1601.00720. 
Basseville, M and Nikiforov, I V. Detection of Abrupt Changes, volume 2. 1993. Bianco, A. M., Garc´ıa Ben, M., Mart´ınez, E. J., and Yohai, V. J. Outlier detection in regression models with ARIMA errors using robust estimates. Journal of Forecasting, 20 (8):565–579, 2001. 
Bishop, Christopher M. Pattern Recognition and Machine Learning, volume 4. Springer, 2006. ISBN 9780387310732. 
Bloom, Burton H. Space/time trade-offs in hash coding with allowable errors, 1970. ISSN 00010782. 
Chandola, V., Mithal, V., and Kumar, V. Comparative Evaluation of Anomaly Detection Techniques for Sequence Data. 2008 Eighth IEEE International Conference on Data Mining, pp. 743–748, 2008. ISSN 1550-4786. doi: 10.1109/ICDM.2008.151. 
Chandola, Varun, Banerjee, A, and Kumar, V. Anomaly detection: A survey. ACM Computing Surveys (CSUR), (September):1–72, 2009. 
Cui, Yuwei, Surpur, Chetan, Ahmad, Subutai, and Hawkins, Jeff. Continuous online sequence learning with an unsupervised neural network model. pp. arXiv:1512.05463 [cs.NE], 2015. URL http://arxiv.org/abs/1512.05463
Fox, A J. Outliers in time series. Journal of the Royal Statistical Society, Series B (Methodological), 34(3):350–363, 1972. ISSN 00359246. 
G¨ornitz, Nico, Kloft, Marius, Rieck, Konrad, and Brefeld, Ulf. Toward supervised anomaly detection. Journal of Artificial Intelligence Research, 46:235–262, 2013. ISSN 10769757. doi: 10.1613/jair.3623. 
Hawkins, Jeff and Ahmad, Subutai. Why Neurons Have Thousands of Synapses, a Theory of Sequence Memory in Neocortex. Frontiers in Neural Circuits, 10(23):1–13, mar 2016. ISSN 1662-5110. doi: 10.3389/fncir.2016.00023. 
URL http://journal.frontiersin.org/article/10.3389/fncir.2016.00023/abstract
Hodge, Victoria J. and Austin, Jim. A survey of outlier detection methodologies, 2004. ISSN 02692821. 
Hyndman, Rob J and Khandakar, Yeasmin. Automatic time series forecasting : the forecast package for R Automatic time series forecasting : the forecast package for R. Journal Of Statistical Software, 27(3):1–22, 2008. 
Karagiannidis, George K. and Lioumpas, Athanaszsios S. An improved approximation for the Gaussian Q-function. IEEE Communications Letters, 11(8):644–646, 2007. 
Kejariwal, Arun. Twitter Engineering: Introducing practical and robust anomaly detection in a time series [Online blog], 2015. URL http://bit.ly/1xBbX0Z
Keogh, Eamonn, Lin, Jessica, and Fu, Ada. HOT SAX:Efficiently finding the most unusual time series subsequence. In Proceedings - IEEE International Conference on Data Mining, ICDM, pp. 226–233, 2005. ISBN 0769522785. doi: 10.1109/ICDM.2005.79. 
Kim, Myunghwan, Sumbaly, Roshan, and Shah, Sam. Root cause detection in a service-oriented architecture. ACM International Conference on Measurement and Modeling of Computer Systems (SIGMETRICS ’13), pp. 93,2013. doi: 10.1145/2465529.2465753. 
Klerx, Timo, Anderka, Maik, Buning, Hans Kleine, and Priesterjahn, Steffen. Model-Based Anomaly Detection for Discrete Event Systems. In 2014 IEEE 26th International Conference on Tools with Artificial Intelligence, pp. 665–672. IEEE, nov 2014. ISBN 978-1-4799-6572-4. doi: 10.1109/ICTAI.2014.105. 
Laptev, Nikolay, Amizadeh, Saeed, and Flint, Ian. Generic and Scalable Framework for Automated Time-series Anomaly Detection. In Proceedings of the 21th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, pp. 1939–1947. ACM, 2015. 
Lavin, Alexander and Ahmad, Subutai. Evaluating Realtime Anomaly Detection Algorithms the Numenta Anomaly Benchmark. In 14th International Conference on Machine Learning and Applications (IEEE ICMLA’15), Miami, Florida, 2015. IEEE. doi: 10.1109/ICMLA.2015.141. 
Lee, Eun Kyung, Viswanathan, Hariharasudhan, and Pompili,Dario. Model-based thermal anomaly detection incloud datacenters. Proceedings - IEEE International Conference on Distributed Computing in Sensor Systems,DCoSS 2013, pp. 191–198, 2013. doi: 10.1109/DCOSS.2013.8. 
Padilla, Daniel E., Brinkworth, Russell, and McDonnell,Mark D. Performance of a hierarchical temporalmemory network in noisy sequence learning. In 2013 IEEE International Conference on Computational Intelligence and Cybernetics (CYBERNETICSCOM), pp. 45–51. IEEE, dec 2013. ISBN 978-1-4673-6053-1. doi:10.1109/CyberneticsCom.2013.6865779. 
Rebbapragada, Umaa, Protopapas, Pavlos, Brodley,Carla E., and Alcock, Charles. Finding anomalous periodictime series : An application to catalogs of periodic variable stars. Machine Learning, 74(3):281–313, 2009.ISSN 08856125. doi: 10.1007/s10994-008-5093-3. 
Rozado, David, Rodriguez, Francisco B., and Varona, Pablo. Extending the bioinspired hierarchical temporal memory paradigm for sign language recognition. Neurocomputing, 79:75–86, mar 2012. ISSN 09252312. doi:10.1016/j.neucom.2011.10.005. 
Simon, Donald L and Rinehart, Aidan W. A Model-Based Anomaly Detection Approach for Analyzing Streaming Aircraft Engine Measurement Data. Technical Report 2015-218454, NASA, 2015.Stanway, A. Etsy Skyline, 2013. URL https://github.com/etsy/skyline
Szmit, MacIej and Szmit, Anna. Usage of modified holtwinters method in the anomaly detection of network traffic:Case studies. Journal of Computer Networks and Communications, 2012, 2012. ISSN 20907141. doi:10.1155/2012/192913. 
Tartakovsky, Alexander G., Polunchenko, Aleksey S., and Sokolov, Grigory. Efficient Computer Network Anomaly Detection by Changepoint Detection Methods. IEEE Journal of Selected Topics in Signal Processing, 7(1):4–11, feb 2013. ISSN 1932-4553. doi: 10.1109/JSTSP.2012.2233713. URL http://ieeexplore.ieee.org/lpdocs/epic03/wrapper.htm?arnumber=6380529. Tsay, R. S. Outliers in multivariate time series. Biometrika, 87(4):789–804, dec 2000. ISSN 0006-3444. doi: 10.1093/biomet/87.4.789.

相關文章
相關標籤/搜索