應用層級時空記憶模型(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 USA
摘要
世界上的許多數據都是流式的時間序列數據,在這些數據中,異常在關鍵情況下提供了重要的信息。然而,檢測流式數據中的異常是一項艱巨的任務,需要探測器實時處理數據,並在進行預測的同時學習。本文提出了一種新的基於在線序列記憶算法的異常檢測技術——分層時間記憶(HTM)。我們展示了一個實時檢測財務指標異常的實時應用程序的結果。我們還在NAB上對算法進行了測試,NAB是一個發布的實時異常檢測基准,我們的算法在NAB上取得了最好的結果。
一、概述
在每個行業中,我們都看到流媒體形式的時間序列數據的可用性呈指數級增長。 在物聯網(IoT)和連接的實時數據源的興起的推動下,我們現在擁有大量帶有傳感器的應用程序,可以生成重要且不斷變化的數據。
實時流數據中的異常檢測在許多行業中具有實際和重要的應用。 異常檢測有許多用例,包括預防性維護,防欺詐,故障檢測和監控。 用例可以在許多行業中找到,例如金融,IT,安全,醫療,能源,電子商務和社交媒體。
我們將異常定義為系統行為異常且與過去行為明顯不同的時間點。 根據這個定義,異常並不一定意味着問題。 改變可能是由於負面原因,例如發動機上的溫度傳感器上升,表明可能即將發生故障。 或者更改可能是出於積極的原因,例如新產品頁面上的網頁點擊異常高,顯示需求強勁。 無論哪種方式,數據都是不尋常的,可能需要采取行動。 異常可以是空間的,意味着該值超出了典型范圍,如圖1中的第一個和第三個異常。它們也可以是時間的,其中值不在典型范圍之外,但它發生的順序是不尋常的。 圖1中的中間異常是時間異常。
圖1.該圖顯示了來自大型工業機器內部組件的實際溫度傳感器數據。 異常用紅色圓圈標記。 第一個異常是計划停工。 第三個異常是災難性的系統故障。 第二個異常,一個微妙但可觀察到的行為變化,表明問題的實際發生導致最終的系統故障。
實時應用程序對機器學習施加了自己獨特的限制。 流應用中的異常檢測特別具有挑戰性。 檢測器必須處理數據並實時輸出決策,而不是通過批量文件進行多次傳遞。 在大多數情況下,傳感器流的數量很大,人類很少有機會,更不用說專家干預了。 因此,以無人監督的自動方式(例如,無需手動參數調整)操作通常是必要的。 底層系統通常是非平穩的,探測器必須不斷學習和適應不斷變化的統計數據,同時進行預測。
本文的目的是介紹一種專為此類實時應用而設計的新型異常檢測技術。 我們將展示如何使用Hierarchical Temporal Memory (HTM)網絡(Hawkins&Ahmad,2016; Padilla等,2013; Rozado等,2012)以有原則的方式在各種條件下穩健地檢測異常。 由此產生的系統是高效的,非常容忍噪聲數據,不斷適應數據統計的變化,並檢測非常微妙的異常,同時最大限度地減少誤報。 我們展示了實時金融異常檢測應用程序的定性示例。 我們還報告了實時異常檢測的開放基准測試的領先結果。 該算法已經商業化部署,我們將討論從這些部署中學到的一些實踐經驗教訓。 我們已經在開源存儲庫中提供了完整的源代碼(包括最終應用程序代碼)。
二、有關工作
時間序列中的異常檢測是一個研究很多的領域,可追溯到(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不斷學習系統,自動適應不斷變化的統計數據,這是一種與流分析特別相關的屬性。
三、使用HTM實現異常檢測
典型的流應用涉及分析實時發生的連續數據流。 此類應用包含一些獨特的挑戰。 我們將此形式化如下。 設矢量xtxt表示時刻tt的實時系統的狀態。 該模型接收連續的輸入流:
(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給出為:
(2)
如果當前輸入被完美預測,則原始異常分數將為0;如果完全不可預測,則原始異常分數將為1,或者取決於輸入和預測之間的相似性,原始異常分數將介於兩者之間。
該評分的一個有趣方面是正確處理分支序列。 在HTM中,多個預測以π(xt)π(xt)表示為每個單獨預測的二元並集。 與Bloom過濾器類似,只要向量足夠稀疏且具有足夠的維度,就可以同時表示中等數量的預測,並且指數上的誤差幾率很小(Bloom,1970; Ahmad&Hawkins,2016)。 異常分數在以下意義上優雅地處理分支序列。 如果兩個完全不同的輸入都是可能的和預測的,接收任一輸入將導致0異常分數。 任何其他輸入將產生正異常分數。
由於HTM的持續學習性質,也可以優雅地處理對底層系統的更改。 如果系統的行為發生變化,則異常分數在移位點處會很高,但在模型適應“新常態”時會自動降級為零。 除了基礎度量值的空間移位之外,還處理系統的時間特性的變化。 (有關示例,請參閱結果部分。)
3.2計算異常似然值(anomaly likelihood)
上述原始異常分數表示當前輸入流的可預測性的瞬時度量。 這適用於可預測的場景,但在許多實際應用中,底層系統本質上是噪聲和不可預測的。 在這些情況下,通常可預測性的變化表明了無意義的行為。 例如,請考慮圖4.此數據顯示負載均衡器在生產網站上提供HTTP請求時的延遲。 盡管延遲通常較低,但偶爾出現隨機跳躍並且異常得分相應的峰值並不罕見。 直接對原始異常分數進行閾值處理會導致許多誤報。 然而,如圖的后半部分所示,高延遲請求頻率的持續增加是不尋常的,因此報告為異常。
圖4.非常嘈雜,不可預測的流。 數據顯示生產網站上負載均衡器的延遲(以秒為單位)。 紅點表示延遲異常增加的大致位置。
為了處理這類場景,我們引入了第二步。 我們不是直接對原始分數進行閾值處理,而是對異常分數的分布進行建模,並使用此分布來檢查當前狀態是否異常的可能性。 因此,異常可能性是定義當前狀態如何基於HTM模型的預測歷史異常的度量。 為了計算異常可能性,我們維持最后W原始異常分數的窗口。 我們將分布建模為滾動正態分布,其中樣本均值和方差從先前的異常分數不斷更新,如下所示:
(3)
(4)
然后我們計算最近的異常分數的短期平均值,並對高斯尾概率(Q函數,(Karagiannidis&Lioumpas,2007))應用閾值來決定是否聲明異常2。 我們將異常可能性定義為尾部概率的補充:
(5)
其中:
(6)
這里W′W′是一個短期均線的窗口,其中W′<<WW′<<W。我們閾值LtLt如果它非常接近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,⋯,sM−1t)P(st0,⋯,stM−1)並對尾部概率應用閾值。對聯合分布進行建模可能具有挑戰性,特別是在流式上下文中。 如果我們進一步假設模型是獨立的,我們可以簡化並估算:
(8)
鑒於此,我們的異常可能性版本可以計算為:
(9)
上述方法存在一個缺陷。 在實時動態場景中,系統某個部分的關鍵問題通常可以級聯到其他區域。 因此,通常存在內置的隨機時間延遲,這反過來導致各種模型中的異常分數之間的不同時間延遲(Kim等人,2013)。 例如,在不同模型中多個異常事件彼此接近發生的情況比單個模型中的單個事件更不可能和不尋常。 正是這些情況對於在復雜系統中檢測和捕獲是有價值的。
理想情況下,我們能夠估計出可追溯到時間的異常分數的聯合分布,即P(s0i−j,s1i−j,⋯,sM−2t,sM−1t)P(si−j0,si−j1,⋯,stM−2,stM−1)。 理論上,這將捕獲所有依賴關系,但這比早期的聯合概率更難估計。 或者,在系統拓撲相對清晰且受您控制的情況下,可以創建依賴關系的顯式圖,監視節點對之間的預期行為,並檢測與這些期望相關的異常。 已經證明這種技術非常精確確定監測服務之間特定呼叫的網站中的異常(Kim et al。,2013)。 然而,在大多數應用中,這種技術也是不切實際的。 對各種依賴關系進行建模可能很困難,並且通常可以設置任意系統來創建該圖。
我們希望系統能夠快速計算,做出相對較少的假設,並且具有自適應性。 我們提出了一種簡單的通用機制,通過修改公式(9)來處理多個模型。 合並一個平滑的時間窗口。 窗口機制允許系統結合尖峰,其可能性在時間上接近但不完全重合。 設G是高斯卷積核:
(10)
我們將此卷積應用於每個單獨的模型以獲得最終的異常可能性得分3:
(11)
和以前一樣,如果組合異常可能性大於閾值LtLt,我們會檢測到異常Lt≥1−ϵLt≥1−ϵ。公式(11)表示用於檢測復雜實時流應用中的異常的原則但實用的方法4。 和以前一樣,LtLt是間接測量,在每個模型的原始異常分數之上計算。 它反映了模型在特定時間點的潛在可預測性,並不直接模擬傳感器測量本身。
3.4實際考慮的問題
單個模型場景中有三個參數:WW,W′W′和ϵϵ。 W是計算異常分數分布的持續時間。 系統性能對W不敏感,只要它足夠大以計算可靠的分布。 數字W′W′控制異常分數的短期平均值。 在下面的所有實驗中,我們使用W=8000W=8000和W′=10W′=10的寬大值。
參數ϵϵ也許是最重要的參數。 它控制異常報告的頻率,以及誤報和漏報之間的平衡。 在實踐中我們發現了ϵ=10−5ϵ=10−5適用於各種領域。 直觀地說,這應該代表每10,000條記錄一次的誤報。
多重模型場景引入了一個附加參數,即窗口寬度σσ。 這在某種程度上取決於域,但由於軟高斯卷積,系統對此設置不是非常敏感。 在下面的所有實驗中,σ=6σ=6。
計算效率對於實時應用程序非常重要。 在我們的實現中,每個模型在當前高端筆記本電腦上每個輸入向量需要不到10毫秒。 並行運行多個模型的基於服務器的部署可以在高端服務器上運行大約5,000個模型。 該圖假設每個輸入每5分鍾到達一次(因此5,000個模型中的每一個需要每5分鍾輸出一個分數)。 作為社區服務,我們已經將完整的源代碼發布到算法以及服務器應用程序代碼庫作為開源5。
圖6. 2016年2月4日的實時股票異常情況。
4結果
我們首先展示來自已部署應用程序的示例,該應用程序定性地演示了我們算法的行為。 然后,我們顯示基准數據的定量結果。
我們已將異常檢測算法集成到實時產品中。該應用程序持續監控大量證券的大量金融和社交媒體指標,並在發生重大異常時實時提醒用戶。圖6顯示了我們的應用程序的兩個屏幕截圖,它們向最終用戶展示了實時異常檢測的價值。在這個例子中,Twitter活動量的異常(與股息減少有關)在股價急劇下跌之前。 Twitter異常發生在市場開放之前。基礎數據流非常嘈雜,許多重要的異常都是暫時的。圖7顯示了從我們的應用程序中提取的原始數據,展示了一個這樣的異常。該圖顯示了Facebook幾個小時的股票交易量。每個點代表五分鍾的平均交易量。看到交易量出現飆升是正常的,但看到連續兩次飆升是極不尋常的。因此,兩個連續峰值表示該流中的時間異常。紅色虛線表示我們的算法檢測到異常的點,即Lt≥1−10−5Lt≥1−10−5的時間點。
圖7. 2016年2月2日Facebook的股票交易量。紅色虛線顯示我們的算法檢測到異常的點。 在這個流中,兩個連續的尖峰是非常不尋常的並且代表異常。
圖8. 2016年2月4日兩個Comcast指標得出的Q值。紅色虛線表示我們的算法檢測到異常的點。
圖8顯示了一個更詳細的示例,演示了組合多個指標的價值。 兩條實線表示與Comcast股票相關的兩個獨立指標的公式(5)中的Q值。 曲線越低,基礎指標異常的可能性越大。 單獨查看單個模型時,只有在其中一個值低於下方時才會檢測到異常ϵ=10−5ϵ=10−5。 在這種情況下,不會檢測到任何異常,因為任何一個都不會低於該值。 但是,如下降所示,兩個指標都表現異常。 紅色虛線表示基於我們的組合度量(公式(11))檢測異常的結果。 因為藍色曲線非常接近10−510−5,所以只要黑色曲線低於10−110−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.