- Avec l’augmentation des données de streaming et de l’IoT, la détection d’anomalies dans les séries temporelles est devenue une tâche analytique clé pour distinguer le normal de l’anormal dans des domaines comme la cybersécurité, les marchés financiers, l’application de la loi et la santé
- À mesure que les approches classiques centrées sur les statistiques se mêlent aux approches récentes de machine learning, une taxonomie tenant compte de l’ordre temporel et de la structure des séries temporelles devient nécessaire
- Les anomalies peuvent apparaître non seulement sur une valeur isolée, mais aussi dans des sous-séquences, et les anomalies ponctuelles, contextuelles et collectives ne peuvent être distinguées qu’en tenant compte des motifs environnants et du contexte temporel
- La plupart des méthodes suivent un pipeline prétraitement → modèle de détection → scoring → post-traitement, en transformant la série temporelle en matrice via une fenêtre glissante avant de calculer un score d’anomalie
- Cette revue organise les méthodes en approches fondées sur la distance, la densité et la prédiction afin de réduire la fragmentation des comparaisons entre communautés de recherche qui utilisent des jeux de données, des baselines et des métriques d’évaluation différents
Pourquoi la détection d’anomalies dans les séries temporelles est difficile
- Une série temporelle est une suite ordonnée de valeurs réelles enregistrées au fil du temps ; lorsque l’ordre dépend non du temps mais de dimensions comme l’angle, la masse ou la position, on parle aussi de série de données ou de séquence de données
- L’analyse des séries temporelles est nécessaire dans de nombreux domaines, dont l’astronomie, la biologie, l’économie, les sciences de l’énergie, l’ingénierie, les sciences de l’environnement, la médecine, les neurosciences et les sciences sociales
- La complexité du processus de génération des données, l’imperfection des systèmes de mesure et l’interaction avec des acteurs malveillants peuvent produire des phénomènes anormaux dans les données collectées
- Avec la diffusion des applications IoT, le volume de séries temporelles produites augmente, et l’on s’attend donc à une hausse du nombre d’anomalies à détecter au sein de ces collections
- Une anomalie désigne un point de données ou un groupe de points qui ne correspond pas à la normalité ou au comportement attendu à partir des observations antérieures
- Des termes comme outlier, novelty, exception, peculiarity, aberration, deviant et discord sont également employés
- Selon l’application, une anomalie peut être un bruit à supprimer ou corriger, ou au contraire un événement d’intérêt à analyser ensuite, comme une panne ou un changement de comportement
Définition et types d’anomalies
- Il n’existe pas de définition unique, universelle et précise de l’anomalie
- Traditionnellement, une anomalie est une observation qui s’écarte fortement de la majorité des échantillons d’une distribution et qui peut laisser penser qu’elle a été générée par un mécanisme différent
- Si un expert connaît précisément le fonctionnement du système, il peut définir la distribution de l’état normal et ses paramètres, puis marquer comme anormaux les points situés à plus de 3 écarts-types de la moyenne
- Dans les problèmes réels, il est difficile de connaître avec précision la distribution génératrice des données et les nombreux facteurs de sortie, et les distributions pratiques sont souvent trop complexes pour identifier les anomalies uniquement par leur distance à une moyenne définie par un expert
- Les progrès de la puissance de calcul ont rendu possible l’estimation de la distribution à partir des données brutes et la détection d’anomalies par des algorithmes sans connaissance experte préalable
- Ces méthodes dépendent fortement de la qualité du dataset et de son contexte
-
Trois types d’anomalies dans les séries temporelles
- Anomalie ponctuelle (point anomaly) : un point de données unique qui s’écarte nettement du reste des données
- Anomalie contextuelle (contextual anomaly) : un point de données qui reste dans l’intervalle attendu de la distribution globale, mais qui s’écarte de la distribution attendue dans un contexte donné, par exemple une fenêtre spécifique
- Anomalie collective (collective anomaly) : une séquence de points qui ne reproduit pas un motif habituellement observé
- Les anomalies ponctuelles et contextuelles relèvent des point-based anomalies, tandis que les anomalies collectives relèvent des sequence-based anomalies
- La détection sur séquence entière est un cas de détection d’anomalies de sous-séquences où la série temporelle complète elle-même devient l’objet évalué ; elle est utilisée par exemple dans des scénarios d’assainissement de capteurs visant à repérer un capteur anormal parmi des capteurs normaux
Dimension des données et configuration d’apprentissage
- Une série temporelle univariée est une suite ordonnée de valeurs réelles sur une seule dimension, où l’anomalie est détectée sur la base d’une seule caractéristique
- Une série temporelle multivariée est soit un ensemble de plusieurs suites ordonnées de même longueur, soit une suite ordonnée de vecteurs réels
- En multivarié, chaque valeur de caractéristique peut sembler normale prise isolément, alors que la séquence complète peut être anormale
- Une sous-séquence peut être représentée comme un vecteur en univarié, et comme une matrice dont chaque ligne correspond à la sous-séquence d’une dimension en multivarié
-
Détection non supervisée, semi-supervisée et supervisée
- L’approche non supervisée est utilisée lorsqu’aucune information experte n’indique quelles anomalies doivent être détectées
- Elle peut fonctionner sans grande collection d’anomalies connues
- Elle peut détecter automatiquement des comportements anormaux inconnus
- Elle peut être utilisée pour la surveillance de l’état d’un système ou le data mining sur séries temporelles historiques
- L’approche semi-supervisée détecte les anomalies à partir d’exemples de séquences normales fournis par un expert
- De nombreux travaux classent aussi cette catégorie comme non supervisée
- Mais comme elle nécessite une connaissance préalable d’exemples normaux, certains distinguent cette catégorie d’une approche entièrement non supervisée
- L’approche supervisée correspond au cas où l’expert connaît précisément les motifs à détecter et où l’on dispose d’une collection de séries temporelles anormales étiquetées
- Il est possible de prédire une sous-séquence anormale à partir des sous-séquences qui la précèdent
- Ces sous-séquences préalables peuvent être qualifiées de précurseurs d’anomalie (precursor)
Pipeline de détection commun
- Les algorithmes de détection d’anomalies dans les séries temporelles suivent généralement le flux prétraitement → méthode de détection → scoring → post-traitement
- À l’étape de prétraitement, une approche fondée sur des fenêtres revient fréquemment : la série temporelle est convertie en matrice composée de lignes correspondant à des segments de fenêtre glissante
- Les prétraitements supplémentaires varient ensuite : extraction de caractéristiques statistiques, ajustement de modèles de machine learning, construction de réseaux neuronaux, etc.
- À l’étape de détection, on applique sur le dataset traité des méthodes comme le calcul de distances, l’ajustement d’un hyperplan de classification ou la comparaison entre sous-séquences générées et sous-séquences d’origine
- À l’étape de scoring, le résultat de la détection est converti en score d’anomalie réel représentant le caractère anormal de chaque sous-séquence
- Ce score sert à inférer le score de points individuels
- La série temporelle des scores obtenue a la même longueur que la série temporelle d’origine
- À l’étape de post-traitement, on extrait depuis cette série de scores les points ou intervalles anormaux
- En général, on fixe un seuil et l’on marque comme anormaux les points dont le score dépasse ce seuil
Taxonomie centrée sur le processus
- Les méthodes de détection d’anomalies dans les séries temporelles se répartissent globalement en approches fondées sur la distance, sur la densité et sur la prédiction
- La classification de second niveau n’est pas mutuellement exclusive
- Un même modèle peut par exemple compresser des données de séries temporelles tout en utilisant une stratégie d’identification fondée sur les discord
-
Méthodes fondées sur la distance
- Les méthodes fondées sur la distance détectent les anomalies en comparant, via une métrique de distance, les valeurs numériques brutes de la série temporelle
- En général, on définit une distance
d(A, B)entre deux séquences de même longueur, et cette distance vaut 0 si les deux séquences sont identiques - Les distances les plus utilisées sont la Euclidean distance et la Z-normalized Euclidean distance
- Dynamic Time Warping (DTW) est souvent utilisé pour traiter les problèmes de désalignement
- Les principales sous-catégories sont les approches fondées sur la proximité, le clustering et les discord
- Fondées sur la proximité (proximity-based) : elles jugent une sous-séquence anormale selon son degré d’isolement vis-à-vis de ses plus proches voisins
- Fondées sur le clustering (clustering-based) : le score d’anomalie peut être calculé à partir du fait qu’une sous-séquence n’appartient pas à un cluster appris, de sa distance au cluster ou de la taille du cluster
- Fondées sur les discord (discord-based) : elles recherchent efficacement le discord, c’est-à-dire la sous-séquence dont la distance au plus proche voisin est la plus grande parmi toutes les sous-séquences
-
Méthodes fondées sur la densité
- Les méthodes fondées sur la densité ne considèrent pas la série temporelle comme une simple suite de valeurs numériques, mais la traitent à partir d’une représentation permettant de mesurer la densité dans l’espace des points ou des sous-séquences
- Ces représentations peuvent prendre des formes variées : graphes, arbres, histogrammes, règles grammaticales induites, etc.
- Les principales sous-catégories sont les approches fondées sur la distribution, les graphes, les arbres et l’encodage
- Fondées sur la distribution (distribution-based) : elles construisent une distribution à partir des caractéristiques statistiques des points ou des sous-séquences, puis restaurent un modèle statistique associé à la distribution des caractéristiques des sous-séquences normales afin d’inférer l’anormalité
- Fondées sur les graphes (graph-based) : elles représentent les séries temporelles et leurs sous-séquences sous forme de graphes et détectent les anomalies à partir de propriétés du graphe comme les poids des nœuds et des arêtes ou le degré des nœuds
- Fondées sur les arbres (tree-based) : elles divisent les points ou sous-séquences à l’aide d’arbres et jugent l’anormalité à partir de statistiques et de propriétés comme la profondeur dans l’arbre
- Fondées sur l’encodage (encoding-based) : elles interprètent la série temporelle comme une séquence discrète de symboles ou d’états sans contexte libre, puis détectent les anomalies à l’aide de règles grammaticales portant sur les symboles extraits
-
Méthodes fondées sur la prédiction
- Les méthodes fondées sur la prédiction détectent les anomalies en prédisant le comportement normal attendu à partir de la série temporelle ou des sous-séquences d’apprentissage
- Elles reposent sur l’hypothèse que les données normales sont faciles à prédire, tandis que les anomalies, inattendues, produisent de grandes erreurs de prédiction
- Cette hypothèse est valable lorsque le jeu d’apprentissage ne contient pas ou très peu d’anomalies
- Les méthodes fondées sur la prédiction sont en général plus adaptées à une configuration semi-supervisée
- Les principales sous-catégories sont la prévision et la reconstruction
- Fondées sur la prévision (forecasting-based) : elles prennent en entrée les points ou sous-séquences précédant un instant donné pour prédire la valeur ou la sous-séquence suivante, puis utilisent l’écart entre valeur réelle et valeur prédite comme score d’anomalie
- Fondées sur la reconstruction (reconstruction-based) : elles compressent la série temporelle d’entrée ou les sous-séquences dans un espace latent plus petit, puis les reconstruisent et utilisent l’écart entre l’entrée et la reconstruction comme score d’anomalie
Évaluation et fragmentation des comparaisons de recherche
- Les différents domaines de recherche restent largement fragmentés, chacun utilisant ses propres jeux de données, baselines et métriques d’évaluation
- Les nouveaux algorithmes sont souvent comparés seulement à quelques approches peu représentatives, ce qui rend difficile l’identification des approches de pointe pour un cas d’usage donné
- Une taxonomie centrée sur le processus permet de regrouper différentes méthodes de détection en familles d’algorithmes d’approches similaires afin de faciliter leur comparaison
- Les statistiques issues de la littérature montrent l’évolution dans le temps des types d’approches et des domaines de recherche
- La revue rassemble aussi les benchmarks existants pouvant servir de base d’évaluation commune, ainsi que les avantages, limites et faiblesses des métriques d’évaluation de la détection d’anomalies dans les séries temporelles
1 commentaires
Commentaires Hacker News
Matrix Profile est l’un des outils sous-estimés de l’analyse de séries temporelles, et il est très efficace. Il est bien adapté à la recherche de motifs et d’anomalies sans avoir à ajuster autant la taille de fenêtre et les seuils que les méthodes traditionnelles, et il fonctionne de manière robuste dans divers domaines comme les données de capteurs industriels, l’analyse d’ECG et la détection sismique
https://www.cs.ucr.edu/~eamonn/MatrixProfile.html
Cette présentation, réalisée par la même équipe de recherche, est meilleure
https://matrixprofile.org/
Comme l’usage du système a une forte saisonnalité hebdomadaire, je prends la moyenne des valeurs de certains métriques à 1, 2, 3 et 4 semaines dans le passé, puis je la compare à la valeur actuelle. Cela permet de définir dynamiquement les seuils d’alerte selon le cycle jour/nuit et semaine/week-end, et de comparer à la moyenne correspondant au même jour et au même créneau horaire
GitLab a un article qui explique cette approche plus en détail
https://about.gitlab.com/blog/2019/07/23/anomaly-detection-u...
Les jours fériés compliquent un peu les choses, mais c’est réellement programmable dans Prometheus
https://promcon.io/2019-munich/slides/improved-alerting-with...
Je ne connais pas très bien ce domaine, mais la prévision et la détection d’anomalies me semblent assez liées. Je peux me tromper
Par exemple, des modèles fondés sur les séries temporelles comme Granite TS, créés par d’anciens collègues, ont plutôt bien fonctionné quand je les ai testés
La prise de conscience, dans la manière de penser les modèles de détection d’anomalies, a été de voir qu’au fond il s’agit de prédire les N prochaines étapes, puis de vérifier si la mesure réelle est « suffisamment différente » de la valeur attendue. C’est facile à dessiner au tableau blanc pour un signal unique, mais le fait que cela fonctionne aussi en multivarié est assez intéressant
[1] https://huggingface.co/ibm-granite/granite-timeseries-ttm-r1
[0] https://scikit-learn.org/stable/modules/generated/sklearn.en...
Ces appareils peuvent détecter des fuites et estimer la consommation d’eau au niveau des équipements. La détection de fuite revient en fin de compte à identifier des anomalies dans des séries temporelles, et la détection d’anomalies basée sur la distribution mentionnée dans l’article y est pertinente. Fait intéressant, dans les logements, plusieurs distributions peuvent être nécessaires à cause des variations de température des canalisations entre saisons chaudes et froides
Jusqu’ici, ce n’est pas trop mauvais, mais il y a des défauts assez importants
Je pensais pouvoir le faire avec la bibliothèque C# de Microsoft, mais c’était vraiment catastrophique. Ce serait bien que quelqu’un ait le temps et la motivation d’implémenter une vraie bonne bibliothèque
Ce domaine se prête parfaitement à un SaaS configurable ou à un outil open source doté de mécanismes avancés de reporting et d’alerte. Datadog a aussi un produit correct, mais il est assez cher
Surtout, nous faisons en sorte que cela fonctionne hors ligne par défaut. Nous intégrons l’IA dans l’équipement et n’envoyons les données ni vers des serveurs tiers, ni même vers nos propres serveurs. C’est parce que nous pensons qu’il y a beaucoup d’opportunités client manquées quand une connexion en ligne est impossible. Si vous cherchez une solution de monitoring pour machines industrielles, ou si vous vous intéressez aux logiciels industriels sensibles à la sécurité, j’aimerais en discuter. Nous développons aussi un data historian : www.sentineldevices.com
J’avais construit un système capable de détecter et de réagir avant qu’une exception ne se produise ; par exemple, en ralentissant préventivement le débit des requêtes avant d’en arriver à l’épuisement de la base de données, avec l’idée que ce serait préférable à simplement laisser l’exception se produire
À l’époque, j’avais le sentiment qu’il y avait énormément à faire dans ce domaine, et je regrette un peu de ne pas avoir pu y retravailler
Un autre problème fondamental est de définir de façon rigoureuse et précise ce qui est une anomalie et ce qui ne l’est pas
Même sans être le produit principal, elle aide dans la plupart des cas à optimiser les opérations. Dans l’industrie manufacturière, la computer vision peut repérer les produits défectueux sur une ligne d’assemblage, et côté opérations, des accéléromètres/capteurs de température combinés à l’analyse fréquentielle peuvent détecter des signes de panne pour faire de la maintenance prédictive. En vente, l’analyse de séries temporelles sur les chiffres ou les demandes au support peut révéler des signaux de hausse ou de baisse du cash-flow, de la satisfaction client, etc.
https://youtu.be/vzPgHF7gcUQ?si=rKQvOjK_qjiSSvKE