- Streaming और IoT डेटा बढ़ने के साथ टाइम सीरीज़ anomaly detection साइबर सुरक्षा, वित्तीय बाज़ार, कानून प्रवर्तन और स्वास्थ्य सेवा जैसे क्षेत्रों में सामान्य और असामान्य के बीच फर्क करने वाला एक मुख्य analytics कार्य बन गया है
- statistics-केंद्रित पारंपरिक anomaly detection और हाल की machine learning approaches के मिश्रण के कारण, टाइम सीरीज़ के समय क्रम और संरचना को दर्शाने वाली एक classification scheme की ज़रूरत बढ़ी है
- anomalies केवल single value में ही नहीं बल्कि partial sequences में भी दिख सकती हैं, और point anomaly·contextual anomaly·collective anomaly को अलग करने के लिए आसपास के patterns और temporal context को साथ में देखना पड़ता है
- ज़्यादातर methods preprocessing → detection model → scoring → post-processing pipeline का पालन करते हैं, जहाँ sliding window से टाइम सीरीज़ को matrix में बदलकर anomaly score निकाला जाता है
- यह review methods को distance-based·density-based·prediction-based रूप में व्यवस्थित करती है, ताकि अलग-अलग datasets, baselines और evaluation metrics इस्तेमाल करने वाली research communities के बीच comparison gap कम किया जा सके
टाइम सीरीज़ anomaly detection कठिन क्यों है
- टाइम सीरीज़ समय के साथ रिकॉर्ड किए गए real-valued values का ordered sequence है, और जब क्रम समय के बजाय angle, mass या position जैसे dimensions पर निर्भर हो, तब data series या data sequence जैसे शब्द भी उपयोग किए जाते हैं
- astronomy, biology, economics, energy science, engineering, environmental science, medicine, neuroscience और social science सहित कई क्षेत्रों में टाइम सीरीज़ analysis की आवश्यकता होती है
- data generation process की जटिलता, measurement systems की अपूर्णता, और malicious actors के साथ interaction, एकत्रित डेटा में असामान्य घटनाएँ पैदा कर सकते हैं
- IoT applications के फैलाव के साथ उत्पन्न होने वाली टाइम सीरीज़ बढ़ रही हैं, इसलिए टाइम सीरीज़ collections में खोजी जाने वाली anomalies भी बढ़ने की संभावना है
- anomaly का अर्थ ऐसे data point या points के group से है जो पहले के observed data पर आधारित normality या expected behavior से मेल नहीं खाते
- outlier, novelty, exception, peculiarity, aberration, deviant, discord जैसे शब्द भी साथ में उपयोग होते हैं
- application के अनुसार anomaly हटाने या ठीक करने योग्य noise भी हो सकती है, या failure और behavior change जैसी आगे के analysis के लिए महत्वपूर्ण event of interest भी हो सकती है
anomaly की परिभाषा और प्रकार
- anomaly के लिए कोई एकल, सार्वभौमिक और सटीक परिभाषा मौजूद नहीं है
- पारंपरिक रूप से anomaly वह observation है जो distribution के अधिकांश samples से काफी दूर हो, और जिससे यह संदेह हो कि वह अन्य डेटा से अलग mechanism से उत्पन्न हुई है
- यदि विशेषज्ञ को system के काम करने का तरीका सही-सही पता हो, तो वह normal state की distribution और parameters तय कर सकता है, और mean से 3 standard deviations से अधिक दूर points को anomaly के रूप में चिह्नित कर सकता है
- वास्तविक समस्याओं में data-generating distribution और कई output factors को ठीक-ठीक जानना कठिन होता है, और व्यावहारिक distributions भी जटिल होती हैं, इसलिए विशेषज्ञ द्वारा तय mean से दूरी मात्र के आधार on anomaly पहचानना कठिन है
- computing power की प्रगति से raw data से distribution का estimation करना और बिना expert knowledge के algorithms द्वारा anomaly detect करना संभव हुआ है
- ऐसे methods dataset की quality और context पर बहुत निर्भर करते हैं
-
टाइम सीरीज़ anomalies के तीन प्रकार
- point anomaly: एक single data point जो बाकी डेटा से स्पष्ट रूप से अलग हो
- contextual anomaly: ऐसा data point जो पूरी distribution के expected range के भीतर हो, लेकिन किसी खास context जैसे specific window में expected distribution से बाहर हो
- collective anomaly: points की ऐसी sequence जो सामान्यतः देखे जाने वाले pattern को दोहराती नहीं है
- point anomaly और contextual anomaly को point-based anomaly, जबकि collective anomaly को sequence-based anomaly माना जाता है
- whole-sequence detection, entire time series को एक evaluation target मानने वाला subsequence anomaly detection का एक मामला है, और यह sensor cleaning settings में उपयोग होता है जहाँ सामान्य sensors के बीच असामान्य sensor खोजा जाता है
डेटा dimensions और learning settings
- univariate time series वह रूप है जिसमें एक dimension में real-valued values क्रम से व्यवस्थित होती हैं, और anomaly detection एक single feature के आधार पर किया जाता है
- multivariate time series समान लंबाई वाले कई ordered sequences का set होती है, या real-valued vectors का ordered sequence होती है
- multivariate मामले में individual feature values सामान्य लग सकती हैं, लेकिन पूरी sequence असामान्य हो सकती है
- subsequence को univariate में vector और multivariate में matrix के रूप में दिखाया जा सकता है, जहाँ हर row एक dimension की subsequence होती है
-
unsupervised·semi-supervised·supervised detection
- unsupervised approach तब उपयोग होती है जब किस anomaly को detect करना है इस बारे में expert information उपलब्ध न हो
- यह ज्ञात anomalies के बड़े collection के बिना काम कर सकती है
- यह अज्ञात abnormal behavior को अपने-आप detect कर सकती है
- इसे system state monitoring या historical time series mining में उपयोग किया जा सकता है
- semi-supervised approach विशेषज्ञ द्वारा दिए गए normal sequences के examples के आधार पर anomalies detect करती है
- कई papers इस category को भी unsupervised कहते हैं
- लेकिन normal examples के prior knowledge की आवश्यकता होने के कारण, इसे पूरी तरह unsupervised approaches के साथ एक ही category में रखना कठिन माना जाता है
- supervised approach तब लागू होती है जब विशेषज्ञ को detect किया जाने वाला pattern ठीक-ठीक पता हो और labeled anomalous time series collection उपलब्ध हो
- anomalous subsequence से पहले आने वाली subsequences का उपयोग abnormal subsequence की prediction के लिए किया जा सकता है
- ऐसी preceding subsequences को anomaly precursor कहा जा सकता है
सामान्य detection pipeline
- टाइम सीरीज़ anomaly detection algorithms आम तौर पर preprocessing → detection method → scoring → post-processing flow का पालन करते हैं
- preprocessing stage में टाइम सीरीज़ को sliding-window fragments की rows से बनी matrix में बदलने वाला window-based approach आम तौर पर दिखाई देता है
- अतिरिक्त preprocessing statistical feature extraction, machine learning model fitting, या neural network construction आदि के अनुसार बदल सकती है
- detection stage में processed dataset पर distance calculation, classification hyperplane fitting, या generated subsequences और original subsequences की तुलना जैसे methods लागू किए जाते हैं
- scoring stage में detection result को हर subsequence की abnormality बताने वाले real-valued anomaly score में बदला जाता है
- इस score का उपयोग individual points के scores infer करने में किया जाता है
- result score time series की लंबाई मूल time series जितनी ही होती है
- post-processing stage में anomaly score time series से anomalous points या intervals निकाले जाते हैं
- आम तौर पर threshold तय किया जाता है, और threshold से ऊपर score वाले points को anomaly माना जाता है
process-केंद्रित classification scheme
- टाइम सीरीज़ anomaly detection methods को मोटे तौर पर distance-based, density-based, और prediction-based में बाँटा जाता है
- दूसरे स्तर की classification परस्पर पूर्णतः exclusive नहीं है
- एक model टाइम सीरीज़ डेटा को compress करते हुए discord-based identification strategy भी साथ में उपयोग कर सकता है
-
distance-based methods
- distance-based methods raw time series के numerical values की तुलना distance metric से करके anomalies detect करते हैं
- सामान्यतः समान लंबाई वाली दो sequences के बीच distance
d(A, B)परिभाषित की जाती है, और यदि दोनों sequences समान हों तो distance 0 होती है - व्यापक रूप से उपयोग की जाने वाली distances हैं Euclidean distance और Z-normalized Euclidean distance
- Dynamic Time Warping(DTW) alignment mismatch की समस्या संभालने के लिए अक्सर उपयोग किया जाता है
- मुख्य subcategories हैं proximity-based, clustering-based, और discord-based
- proximity-based: यह देखता है कि subsequence अपने निकटतम neighbors से कितनी isolated है, और उसी आधार पर anomaly तय की जाती है
- clustering-based: सीखी गई clusters से subsequence का बाहर होना, cluster distance, और cluster capacity जैसे तत्व anomaly score की गणना में उपयोग किए जा सकते हैं
- discord-based: यह पूरे subsequences में उस subsequence को कुशलता से खोजता है जिसकी अपने nearest neighbor से distance सबसे अधिक हो, जिसे discord कहा जाता है
-
density-based methods
- density-based methods टाइम सीरीज़ को केवल साधारण numerical sequence के रूप में नहीं देखते, बल्कि ऐसे representations पर काम करते हैं जहाँ points या subsequences के space की density मापी जा सके
- representation graph, tree, histogram, grammar-induced rules आदि कई रूपों में हो सकती है
- मुख्य subcategories हैं distribution-based, graph-based, tree-based, और encoding-based
- distribution-based: points या subsequences की statistical properties से distribution बनाई जाती है, और सामान्य subsequence properties की distribution के माध्यम से संबंधित statistical model पुनर्निर्मित कर abnormality का अनुमान लगाया जाता है
- graph-based: टाइम सीरीज़ और subsequences को graph के रूप में व्यक्त किया जाता है, और node·edge weights या node degree जैसी graph properties से anomalies detect की जाती हैं
- tree-based: tree के माध्यम से points या subsequences को विभाजित किया जाता है, और tree depth जैसी statistics और properties से anomaly का निर्णय किया जाता है
- encoding-based: टाइम सीरीज़ को context-free discrete symbols या state sequences के रूप में समझा जाता है, और निकाले गए symbols के grammar rules आदि का उपयोग कर anomalies detect की जाती हैं
-
prediction-based methods
- prediction-based methods learned time series या subsequences के आधार पर expected normal behavior की prediction करके anomalies detect करते हैं
- यह इस धारणा पर निर्भर करते हैं कि normal data की prediction आसान होती है, जबकि anomaly अप्रत्याशित होने के कारण prediction error बड़ा होता है
- यह धारणा तब मान्य होती है जब training set में anomalies न हों या बहुत कम हों
- prediction-based methods आम तौर पर semi-supervised setting में अधिक उपयुक्त होते हैं
- मुख्य subcategories हैं forecasting-based और reconstruction-based
- forecasting-based: किसी समय बिंदु से पहले के points या subsequences को input के रूप में लेकर अगले value या subsequence की prediction की जाती है, और actual value तथा predicted value के अंतर को anomaly score के रूप में उपयोग किया जाता है
- reconstruction-based: input time series या subsequence को छोटे latent space में compress करके फिर reconstruct किया जाता है, और input तथा reconstruction result के अंतर को anomaly score के रूप में उपयोग किया जाता है
evaluation और research comparison में disconnect
- कई research areas अलग-अलग datasets, baselines और evaluation metrics का उपयोग करती हैं, इसलिए वे अधिकतर एक-दूसरे से disconnected हैं
- नए algorithms की तुलना अक्सर केवल कुछ कम representative approaches से की जाती है, इसलिए किसी specific use case में state-of-the-art approach खोजना कठिन हो जाता है
- process-केंद्रित classification scheme कई detection methods को समान approach वाले algorithm groups में बाँधकर तुलना संभव बनाती है
- literature statistics समय के साथ approach types और research areas के trends दिखाती है
- साथ ही, existing benchmarks जिन्हें common evaluation basis के रूप में उपयोग किया जा सकता है, और time series anomaly detection evaluation metrics के फायदे, सीमाएँ और कमियाँ भी व्यवस्थित की गई हैं
1 टिप्पणियां
Hacker News की रायें
Matrix Profile टाइम-सीरीज़ विश्लेषण में कम आंके गए टूल्स में से एक है, और बहुत efficient है। पारंपरिक तकनीकों की तरह window size और threshold को बहुत ज़्यादा tune किए बिना motifs और outliers खोजने के लिए अच्छा है, और manufacturing sensor data, ECG analysis, earthquake detection जैसे कई क्षेत्रों में भी robust तरीके से काम करता है
https://www.cs.ucr.edu/~eamonn/MatrixProfile.html
उसी research team द्वारा बनाया गया यह बेहतर introduction material है
https://matrixprofile.org/
system usage में weekly seasonality बहुत मज़बूत है, इसलिए किसी metric के 1 week, 2 weeks, 3 weeks, 4 weeks पहले के values का average निकालकर current value से compare करते हैं। इससे day/night और weekday/weekend के हिसाब से alarm thresholds dynamically set किए जा सकते हैं, और तुलना day-of-week या time-of-day average से होती है
GitLab की तरफ़ से इस approach को और विस्तार से समझाने वाला एक लेख है
https://about.gitlab.com/blog/2019/07/23/anomaly-detection-u...
छुट्टियां पड़ने पर यह थोड़ा जटिल हो जाता है, लेकिन Prometheus में इसे सचमुच program किया जा सकता है
https://promcon.io/2019-munich/slides/improved-alerting-with...
इस क्षेत्र का मैं बहुत जानकार नहीं हूं, लेकिन forecasting और anomaly detection काफ़ी related लगते हैं। मैं गलत भी हो सकता हूं
उदाहरण के लिए, मेरे ex-colleagues द्वारा बनाए गए Granite TS जैसे time-series based models ने testing में काफ़ी अच्छा काम किया था
anomaly detection models को सोचने के तरीके पर insight यह थी कि अंततः अगले N steps predict करके देखा जाता है कि actual measurements expected values से “काफी अलग” हैं या नहीं। single signal में इसे whiteboard पर draw करना आसान है, लेकिन multivariate में भी काम करता है—यह काफ़ी interesting है
[1] https://huggingface.co/ibm-granite/granite-timeseries-ttm-r1
[0] https://scikit-learn.org/stable/modules/generated/sklearn.en...
ये devices leaks detect कर सकते हैं और facility-level water usage estimate कर सकते हैं। leak detection अंततः time-series outliers identify करने का काम है, और paper में बताए गए distribution-based anomaly detection का इससे संबंध है। दिलचस्प बात यह है कि residential spaces में warm/cold seasons के बीच pipe temperature changes की वजह से कई distributions की ज़रूरत पड़ सकती है
अभी तक बहुत खराब नहीं है, लेकिन इसमें कुछ काफी बड़े flaws हैं
लगा था Microsoft की C# library से हो जाएगा, लेकिन वह सचमुच बहुत खराब थी। अच्छा होगा अगर किसी के पास proper library implement करने का समय और इच्छा हो
यह area advanced reporting और alerting mechanisms के साथ configurable SaaS या open source tool के लिए बिलकुल सही है। Datadog का भी ठीक product है, लेकिन काफी महंगा है
खास तौर पर, हम इसे default रूप से offline चलने के लिए बना रहे हैं। AI को उपकरण में integrate करते हैं, और data को किसी third-party server पर तो नहीं ही, अपने servers पर भी नहीं भेजते। क्योंकि हमें लगता है कि online connection संभव न होने की वजह से बहुत सारे customer opportunities छूट जाते हैं। अगर आप industrial machine monitoring solution खोज रहे हैं, या security-sensitive industrial software में रुचि रखते हैं, तो हम बात करना चाहेंगे। हम एक data historian भी develop कर रहे हैं: www.sentineldevices.com
मैंने ऐसा system बनाया था जो exceptions होने से पहले उन्हें detect करके respond करता था; जैसे database exhaustion तक पहुँचने से पहले request rate को proactively slow down करना—उम्मीद थी कि यह बस exception होने देने से बेहतर होगा।
उस समय मुझे लगा था कि इस field में सचमुच बहुत काम किया जाना बाकी है, और थोड़ा अफसोस है कि मैं इस पर फिर काम नहीं कर पाया।
एक और core problem यह है कि anomaly क्या है और क्या नहीं, इसे rigorous और precise तरीके से define करना।
भले ही यह core product न हो, operations optimization में यह ज्यादातर मददगार होता है। Manufacturing में computer vision से assembly line के defective items छांटे जा सकते हैं, और operations में accelerometer/temperature sensors व frequency analysis से failure के संकेत detect करके predictive maintenance की जा सकती है। Sales में metrics या support inquiries की time-series analysis से cash flow, customer satisfaction आदि में rise/fall के signals देखे जा सकते हैं।
https://youtu.be/vzPgHF7gcUQ?si=rKQvOjK_qjiSSvKE