Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD FOR DETECTING AN ANOMALY IN AN OBSERVED TIME SERIES OF VALUES OF A PHYSICAL QUANTITY REPRESENTATIVE OF THE PERFORMANCE OF A SYSTEM
Document Type and Number:
WIPO Patent Application WO/2024/079408
Kind Code:
A1
Abstract:
The invention relates to a method for detecting an anomaly in an observed time series of values of a physical quantity representative of the performance of a system (2), the method being characterised in that it involves implementing, via data-processing means (11) of a server (1), steps of: (A) determining a residue corresponding to the observed time series from which a predictable portion of the observed time series has been removed; (b) segmenting the residue into a plurality of successive segments minimising a score representative of the intra-segment inhomogeneity; and (c) for at least the most recent segment, statistically analysing the distribution of the values of the residue in the segment so as to conclude whether or not there is an anomaly on the segment.

Inventors:
KRONERT ETIENNE MATTHIEU (FR)
HATTAB DALILA (FR)
Application Number:
PCT/FR2023/051529
Publication Date:
April 18, 2024
Filing Date:
October 04, 2023
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
WORLDLINE (FR)
International Classes:
G06F11/34; G06F17/18
Foreign References:
US9628499B12017-04-18
EP3672153A12020-06-24
US20210319081A12021-10-14
EP3672153A12020-06-24
Attorney, Agent or Firm:
CABINET GERMAIN ET MAUREAU (FR)
Download PDF:
Claims:
REVENDICATIONS

[Revendication 1] Procédé de détection d’anomalie dans une série temporelle observée de valeurs d’une grandeur physique représentative des performances d’un système (2), le procédé étant caractérisé en ce qu’il comprend la mise en œuvre par des moyens de traitement de données (11 ) d’un serveur (1 ) d’étapes de :

(a) Détermination d’un résidu correspondant à ladite série temporelle observée à laquelle on a retiré une partie prédictible de ladite série temporelle observée ;

(b) Segmentation du résidu en une pluralité de segments successifs minimisant un score représentatif de l’inhomogénéité intra-segment ;

(c) Pour au moins le segment le plus récent, analyse statistique de la distribution des valeurs du résidu dans ledit segment de sorte à conclure ou non à la présence d’une anomalie sur le segment.

[Revendication 2] Procédé selon la revendication 1 , dans lequel l’étape (a) comprend la détermination, à partir de la série temporelle observée, de ladite partie prédictible ; et la soustraction de ladite partie prédictible, de la série temporelle, de sorte à obtenir ledit résidu.

[Revendication 3] Procédé selon la revendication 2, dans lequel la détermination de la partie prédictible comprend la mise en œuvre sur la série temporelle observée d’un modèle de prédiction entraîné sur une base de séries temporelles de référence de la même grandeur physique représentative des performances du système (2).

[Revendication 4] Procédé selon l’une des revendications 1 à 3, comprenant une étape (aO) d’acquisition de ladite série temporelle observée de valeurs de la grandeur physique représentative des performances du système (2), par le système (2) ou par des moyens (20) de surveillance du système (2). [Revendication 5] Procédé selon l’une des revendications 1 à 4, dans lequel l’étape (b) comprend la proposition d’une pluralité de segmentations candidates, en particulier chacune définissant un nombre de segments différents, et la sélection de la segmentation candidate présentant ledit score représentatif de l’inhomogénéité intra-segment le plus faible.

[Revendication 6] Procédé selon l’une des revendications 1 à 5, dans lequel l’étape (c) comprend la construction d’un modèle statistique possible des valeurs du résidu dans les segments, et pour au moins ledit segment le plus récent, la détermination d’une valeur p pour ledit modèle statistique de la distribution des valeurs du résidu dans ledit segment.

[Revendication 7] Procédé selon la revendication 6, dans lequel il est conclu à une anomalie à l’étape (c) si ladite valeur p est en dessous d’au moins un seuil.

[Revendication 8] Procédé selon la revendication 7, dans lequel ledit seuil est soit prédéterminé, en particulier 5%, soit calculé pour un taux de faux positifs souhaité sur le segment pour lequel la valeur p est déterminée, en particulier en utilisant la méthode de Benjamini Hochberg.

[Revendication 9] Procédé selon la revendication 8, dans lequel ledit taux de faux positifs souhaité sur le segment pour lequel la valeur p est déterminée est calculé en fonction d’un taux de faux positifs souhaité sur toute la série temporelle.

[Revendication 10] Procédé selon l’une des revendications 6 à 9, dans lequel l’étape (c) comprend la construction d’une pluralité de modèles statistiques possibles des valeurs du résidu dans les segments, et la sélection pour au moins ledit segment le plus récent d’un meilleur modèle de ladite pluralité pour lequel la valeur p est déterminée, ledit meilleur modèle étant celui décrivant au mieux les queues de ladite distribution des valeurs du résidu dans ledit segment le plus récent.

[Revendication 11 ] Procédé selon l’une des revendications 1 à 10, comprenant une étape (d) de mise en œuvre d’une action si une anomalie est détectée sur au moins un segment.

[Revendication 12] Procédé selon la revendication 11 , dans lequel l’étape (d) comprend le déclenchement d’une alerte et/ou la sollicitation d’un équipement (3) de diagnostic et de maintenance du système (2).

[Revendication 13] Serveur (1 ) de détection d’anomalie dans une série temporelle observée de valeurs d’une grandeur physique représentative des performances d’un système (2), caractérisé en ce qu’il comprend des moyens de traitement de données (11 ) configurés pour :

- Déterminer un résidu correspondant à ladite série temporelle observée à laquelle on a retiré une partie prédictible de ladite série temporelle observée ;

- Segmenter le résidu en une pluralité de segments successifs minimisant un score représentatif de l’inhomogénéité intra-segment ;

- Pour au moins le segment le plus récent, mettre en œuvre une analyse statistique de la distribution des valeurs du résidu dans ledit segment de sorte à conclure ou non à la présence d’une anomalie sur le segment.

[Revendication 14] Ensemble du serveur (1 ) selon la revendication 13, du système (2) et d’un équipement (3) de diagnostic et de maintenance du système (2).

[Revendication 15] Produit programme d’ordinateur comprenant des instructions de code pour l’exécution d’un procédé selon l’une des revendications 1 à 12 de détection d’anomalie dans une série temporelle observée de valeurs d’une grandeur physique représentative des performances d’un système (2), lorsque ledit programme est exécuté sur un ordinateur. [Revendication 16] Moyen de stockage lisible par un équipement informatique sur lequel est enregistré un produit programme d’ordinateur comprenant des instructions de code pour l’exécution d’un procédé selon l’une des revendications 1 à 12 de détection d’anomalie dans une série temporelle observée de valeurs d’une grandeur physique représentative des performances d’un système (2).

Description:
Description

Titre de l'invention : Procédé de détection d’anomalie dans une série temporelle observée de valeurs d’une grandeur physique représentative des performances d’un système.

DOMAINE TECHNIQUE GÉNÉRAL

La présente invention se rapporte au domaine du monitoring, en particulier dans des données informatiques. Plus précisément, elle concerne un procédé de détection d’anomalie dans une série temporelle observée de valeurs d’une grandeur physique représentative des performances d’un système.

ETAT DE L’ART

Le « monitoring » (en français monitorage) est une activité de surveillance et de mesure d'une activité informatique, dans un objectif de supervision.

On peut notamment chercher à observer les performances d’un système informatique, en termes de temps de réponse par exemple, sa disponibilité, son intégrité, etc.

De manière générale, on mesure en fonction du temps les valeurs de diverses grandeurs physiques (appelées « métriques »), et l’on cherche à identifier voire prédire à partir de ces valeurs des anomalies, de sorte à mettre en place des alertes et des mécanismes de correction avant un incident. On appelle « série temporelle » l’ensemble des valeurs successives d’une métrique et la courbe correspondante.

Par exemple, la figure 1 est une série temporelle illustrant le taux d’utilisation d’un processeur (« CPU usage ») d’un système informatique (sur une durée d’une semaine). Chaque cercle est une anomalie constatée et l’on remarque par exemple dans la journée du 19 juillet des anomalies en cascade ayant entrainé une brève chute de ce CPU usage à 0% pendant quelques heures, causant une interruption de service. On voit également d’autres variations modérées du taux qui peuvent être ou non liées à des anomalies.

La solution naïve de monitoring consiste à mettre en place des seuils et à détecter leur franchissement, ce qui est en pratique insuffisant : chaque système est différent et a son comportement propre.

Et même en supposant qu’on définisse des seuils individualisés, le comportement des métriques peut évoluer dans le temps sans pour autant qu’il y ait une anomalie, et inversement on peut avoir une anomalie tout en ayant une métrique qui se maintient.

Dans l’exemple de la figure 1 , on peut par exemple mettre un seuil à 80% de CPU usage (en dessous duquel on considère qu’on est en présence d’une anomalie) qui s’avère pertinent dans la majorité des cas. Cependant, lors de l’ensemble d’anomalies initiales à l’aube du 19 juillet (qui vont entraîner en cascade d’autres anomalies et l’interruption totale du service) le CPU usage est pourtant à près de 95%, et donc bien au-dessus du seuil de détection.

Il a par conséquent été proposé des solutions basées sur la détermination d’intervalles de confiance de manière dynamique.

En particulier, la demande EP3672153 propose de déterminer un « résidu » correspondant à ce qui reste d’une métrique une fois qu’on a retiré une composante prédictible (correspondant à un comportement normal), et de calculer des intervalles de confiance (avec des seuils) sur ces résidus.

Cette méthode apporte satisfaction, mais il serait souhaitable d’améliorer encore sa précision et ainsi de diminuer le nombre de faux positifs/négatifs.

PRÉSENTATION DE L’INVENTION

La présente invention se rapporte donc selon un premier aspect à un procédé de détection d’anomalie dans une série temporelle observée de valeurs d’une grandeur physique représentative des performances d’un système, le procédé étant caractérisé en ce qu’il comprend la mise en œuvre par des moyens de traitement de données d’un serveur d’étapes de : (a) Détermination d’un résidu correspondant à ladite série temporelle observée à laquelle on a retiré une partie prédictible de ladite série temporelle observée ;

(b) Segmentation du résidu en une pluralité de segments successifs minimisant un score représentatif de l’inhomogénéité intra-segment ;

(c) Pour au moins le segment le plus récent, analyse statistique de la distribution des valeurs du résidu dans ledit segment de sorte à conclure ou non à la présence d’une anomalie sur le segment.

Selon des caractéristiques avantageuses et non limitatives :

L’étape (a) comprend la détermination, à partir de la série temporelle observée, de ladite partie prédictible ; et la soustraction de ladite partie prédictible, de la série temporelle, de sorte à obtenir ledit résidu.

La détermination de la partie prédictible comprend la mise en œuvre sur la série temporelle observée d’un modèle de prédiction entraîné sur une base de séries temporelles de référence de la même grandeur physique représentative des performances du système.

Le procédé comprend une étape (aO) d’acquisition de ladite série temporelle observée de valeurs de la grandeur physique représentative des performances du système, par le système ou par des moyens de surveillance du système.

L’étape (b) comprend la proposition d’une pluralité de segmentations candidates, en particulier chacune définissant un nombre de segments différents, et la sélection de la segmentation candidate présentant ledit score représentatif de l’inhomogénéité intra-segment le plus faible.

L’étape (c) comprend la construction d’un modèle statistique possible des valeurs du résidu dans les segments, et pour au moins ledit segment le plus récent, la détermination d’une valeur p pour ledit modèle statistique de la distribution des valeurs du résidu dans ledit segment.

Il est conclu à une anomalie à l’étape (c) si ladite valeur p est en dessous d’un seuil.

Le seuil est prédéterminé, en particulier 5%. Ledit seuil est calculé pour un taux de faux positifs souhaité, en particulier en utilisant la méthode de Benjamini Hochberg.

Ledit taux de faux positifs souhaité sur le segment pour lequel la valeur p est déterminée est calculé en fonction d’un taux de faux positifs souhaité sur toute la série temporelle.

Un premier seuil calculé pour taux de faux positifs souhaité sur toute la série temporelle, et un deuxième seuil calculé pour ledit taux de faux positifs souhaité sur le segment, sont successivement appliqués.

L’étape (c) comprend la construction d’une pluralité de modèles statistiques possibles des valeurs du résidu dans les segments, et la sélection pour au moins ledit segment le plus récent d’un meilleur modèle de ladite pluralité pour lequel la valeur p est déterminée, ledit meilleur modèle étant celui décrivant au mieux les queues de ladite distribution des valeurs du résidu dans ledit segment le plus récent.

Le procédé comprend une étape (d) de mise en œuvre d’une action si une anomalie est détectée sur au moins un segment.

L’étape (d) comprend le déclenchement d’une alerte et/ou la sollicitation d’un équipement de diagnostic et de maintenance du système.

Selon un deuxième aspect, l’invention concerne un serveur de détection d’anomalie dans une série temporelle observée de valeurs d’une grandeur physique représentative des performances d’un système, caractérisé en ce qu’il comprend des moyens de traitement de données configurés pour :

- Déterminer un résidu correspondant à ladite série temporelle observée à laquelle on a retiré une partie prédictible de ladite série temporelle observée ;

- Segmenter le résidu en une pluralité de segments successifs minimisant un score représentatif de l’inhomogénéité intra-segment ;

- Pour au moins le segment le plus récent, mettre en œuvre une analyse statistique de la distribution des valeurs du résidu dans ledit segment de sorte à conclure ou non à la présence d’une anomalie sur le segment.

Selon un troisième aspect, l’invention concerne un ensemble du serveur selon le deuxième aspect, du système et d’un équipement de diagnostic et de maintenance du système.

Selon un quatrième et un cinquième aspects, l’invention concerne un produit programme d’ordinateur comprenant des instructions de code pour l’exécution d’un procédé selon le premier aspect de détection d’anomalie dans une série temporelle observée de valeurs d’une grandeur physique représentative des performances d’un système ; et un moyen de stockage lisible par un équipement informatique sur lequel est enregistré un produit programme d’ordinateur comprenant des instructions de code pour l’exécution d’un procédé selon le premier aspect de détection d’anomalie dans une série temporelle observée de valeurs d’une grandeur physique représentative des performances d’un système.

PRÉSENTATION DES FIGURES

D’autres caractéristiques et avantages de la présente invention apparaîtront à la lecture de la description qui va suivre d’un mode de réalisation préférentiel. Cette description sera donnée en référence aux dessins annexés dans lesquels :

[Fig. 1 ]la figure 1 précédemment décrite représente un exemple de série temporelle avec les anomalies constatées ;

[Fig. 2]la figure 2 est un schéma d’un système pour la mise en œuvre du procédé selon l’invention ;

[Fig. 3]la figure 3 est un logigramme représentant les étapes d’un mode de réalisation préféré de l’invention ; [Fig.4]la figure 4 illustre la détermination du résidu à partir d’un exemple de série temporelle observée ;

[Fig ,5]la figure 5 représente un cas de segment de référence construit sur la base du segment courant en cours d’analyse et le segment très similaire en terme de moyenne et de variance déjà analysé dans le passé proche ;

[Fig.6]la figure 6 illustre la segmentation du résidu de l’exemple de la figure 4 ;

[Fig ,7]la figure 7 représente un cas de segment de référence construit sur la base du segment courant en cours d’analyse et le segment très similaire en terme de moyenne et de variance déjà analysé dans le passé proche ;

[Fig.8]la figure 8 représente un exemple de densité de probabilité sur le segment de la figure 7.

[Fig.9]la figure 9 illustre le résultat de la mise en œuvre de l’analyse statistique sur le segment courant de l’exemple des figures 4, 6 et 7. Le segment courant de la figure 9 correspond à celui de la figure 7 alimenté avec plus de données permettant une détection d’anomalie robuste.

[Fig.10]la figure 10 correspond à la figure 9 avec utilisation de seuils calculés pour des taux de faux positif souhaités.

[Fig.11 ]la figure 11 est un graphique illustrant un contrôle optimal du taux de faux positifs.

DESCRIPTION DÉTAILLÉE

Architecture

La présente invention concerne un procédé de détection d’anomalie dans une série temporelle observée de valeurs d’une grandeur physique représentative des performances d’un système 2.

Le système 2 est typiquement un serveur informatique fournissant un service, par exemple un équipement réseau, un serveur bancaire mettant en œuvre des transactions, un équipement de contrôle industriel, etc. On suppose qu’on dispose d’une grandeur physique représentative des performances dudit système 2.

Ladite grandeur physique est naturellement choisie en accord avec la nature du système 2 et le service qu’il fournit, par exemple pour un équipement réseau on pourra prendre l’usage CPU (exemple de la figure 1 décrite précédemment), mais également un usage mémoire, une bande-passante, un nombre d’utilisateurs connectés, un nombre de paquets passés, etc. Pour un serveur bancaire, cette grandeur peut être le nombre de transactions accomplies, le taux de transactions rejetées, etc. Pour un équipement de contrôle industriel, il peut s’agir d’une grandeur impliquée dans le processus industriel comme une température, une pression, etc.

On ne sera limité ni à un type de système ni à une grandeur physique, il importe juste que ladite grandeur physique soit représentative des performances de ce système 2, i.e. ait un sens pour l’homme du métier vis-à-vis du service fourni par le système 2.

Par série temporelle de valeurs de la grandeur physique, on entend une séquence de valeurs au cours du temps, chacune correspondant à une observation du système 2, par exemple une valeur par minute. Ladite série temporelle peut être vue comme un vecteur de valeurs. On parle ici de série temporelle « observée » comme étant la série des valeurs présentement examinées par opposition à des séries temporelles « de référence » qui correspondent à des exemples passés en particulier constituant une base d’apprentissage.

La série temporelle observée peut être directement acquise par le système 2, ou par des moyens 20 de surveillance du système 2.

Ledit procédé est un procédé de détection d’anomalie dans la série temporelle, c’est-à-dire qu’il vise à déterminer un caractère normal ou non des valeurs. Plus précisément, bien qu’il y ait une variabilité normale des valeurs qui soit attendue, comme expliqué avant, certaines valeurs peuvent être en pratique anormales et constituer des signaux faibles qu’une dégradation des performances du système est en cours ou imminente, et on parle d’incident lorsque le système 2 n’est plus capable d’accomplir son service. Dans l’exemple de la figure 1 , un équipement réseau dont le CPU usage s’effondre n’est plus capable de gérer correctement le trafic réseau, et les utilisateurs vont rapidement subir des ralentissements voire des déconnexions. Pour reformuler, l’incident est la conséquence d’une anomalie.

La notion d’anomalie est en soi statistique, les causes peuvent être très variées, et l’objectif du présent procédé n’est pas en soi de déterminer ces causes, mais simplement d’alerter et de lancer au plus tôt des actions correctrices de sorte à éviter ou du moins limiter l’incident (diagnostic, dépannage, mise en route d’un système de secours, etc.), ainsi que d’identifier et d’évaluer des types d’anomalies selon des filtres de sélection et critères adéquats.

Dans le cas du présent procédé de détection, on cherche à éviter les faux négatif (cas dans lequel une anomalie n’est pas détectée) et les faux positifs (cas dans lequel on croit détecter une anomalie mais en fait il n’y a rien).

En référence à la figure 2, le procédé est mis en œuvre par un serveur 1 comprenant des moyens de traitement de données 11 (typiquement un processeur), et généralement des moyens de stockage de données 12 (une mémoire). Le serveur 1 est également muni d’une interface 13 pour signaler les anomalies détectées, ce peut être une IHM mais également des moyens de connexion à un autre équipement 3 de diagnostic et de maintenance et/ou un terminal 4 par exemple d’un administrateur.

La connexion entre les différents équipements (serveurs 1 , 3, système 2 moyens 20 et/ou terminal 4) peut être via un réseau de communication 10 tel qu’internet.

Procédé

En référence à la figure 3, le présent procédé commence typiquement par une étape (aO) d’acquisition de ladite série temporelle observée de valeurs de la grandeur physique représentative des performances du système 2, par exemple par les moyens 20. Typiquement, les performances du système 2 sont observées à intervalle régulier et une nouvelle valeur complétant la série est acquise à chaque observation. On comprendra que le monitoring de systèmes est bien connu de l’homme du métier. Dans des applications réseau, l’ordre de grandeur est typiquement d’une observation par seconde.

La série peut être fournie au serveur 1 d’un coup, ou valeur par valeur (en particulier en temps réel) dans une queue et reconstituée. Le procédé peut d’ailleurs être mis en œuvre à chaque nouvelle valeur obtenue. On comprendra à ce titre que le présent procédé peut être mis en œuvre aussi bien :

- de façon isolée pour toute une série temporelle, et on cherche à détecter a posteriori si la série a comporté des anomalies, ou

- de manière itérée et en particulier en temps réel, et on cherche alors à détecter proactivement pour chaque nouvelle observation si l’on est en présence d’une anomalie (on cherche à détecter au plus tôt voire anticiper un incident).

Dans tous les cas, la série temporelle est avantageusement horodatée, i.e. associée à un timestamp initial (de la première valeur) et/ou un timestamp final (dernière valeur) correspondants aux instants d’observation

Dans une étape (a), qui est la première étape de traitement de la série temporelle observée mise en œuvre par les moyens de traitement de données 11 du serveur 1 , est déterminé un « résidu » de la série temporelle observée. Le résidu correspond à ladite série temporelle observée à laquelle on a retiré une partie prédictible, i.e. l’erreur de prédiction. Le résidu et la partie prédictible sont en elle-même des séries temporelles de valeurs.

A ce titre, l’étape (a) comprend préférentiellement :

- la détermination, à partir de la série temporelle observée, de ladite partie prédictible, et

- la soustraction de ladite partie prédictible, de la série temporelle, observée, i.e. pour chaque valeur de la série temporelle on lui soustrait la valeur correspondante de la partie prédictible. Cette étape (a) est en particulier illustrée par la figure 4 : on voit de gauche à droite la série temporelle, la partie prédictible et le résidu obtenu.

L’idée est de considérer que la série temporelle observée est la somme d’un comportement « normal » et d’un comportement « anormal » de la grandeur physique. Le comportement normal est attendu, et peut donc être prédit, contrairement au comportement anormal, qui est l’aléa.

A ce titre, on connaît des modèles d’intelligence artificielle, et notamment des réseaux de neurones artificiels tels que N-beats, capables de faire de la prédiction de série temporelle.

Ainsi, dans un mode de réalisation préférée, le serveur 1 dispose d’un modèle de prédiction prenant en entrée la série temporelle observée et générant en sortie ladite partie prédictible de la série temporelle observée.

Ce modèle de prédiction peut être entraîné de manière non-supervisée à partir d’une base d’apprentissage de séries temporelles de références de la même grandeur physique représentative des performances du système 2 (i.e. aucun label n’est associé à ces séries de référence), correspondant avantageusement à des observations passées dans des conditions comparables. En effet, ladite grandeur physique varie par exemple naturellement au cours de la journée, et cette tendance « normale » peut être appréhendée par ledit modèle de prédiction.

Pour cela, le serveur 1 peut stocker sur ses moyens de stockage de données 12 ladite base d’apprentissage et les moyens de traitement de données 11 peuvent mettre en œuvre l’apprentissage du modèle de prédiction, même s’il est tout à fait possible que ce soit fait par un serveur distinct, et le modèle appris directement récupéré par le serveur 1 .

On comprendra qu’un tel modèle et son apprentissage sont bien connus de l’homme du métier, on pourra utiliser le modèle N-beats cité avant ou par exemple d’autres réseaux récurrents tels que LSTM adaptés à de la prédiction de séries temporelles. On pourra également consulter la demande EP3672153 citée avant. De manière originale, dans une étape (b) les moyens de traitement de données 11 mettent en œuvre une segmentation du résidu en une pluralité de segments successifs minimisant un score représentatif de l’inhomogénéité intra- segment. L’inhomogénéité, ou hétérogénéité, désigne ici est la variabilité de la loi qui génère les valeurs que l’on observe, et en pratique la variabilité des valeurs du résidu, qui se traduit par exemple par des changements dans la variance. Un segment parfaitement homogène présentera un résidu constant sur toute son étendue. Au contraire un segment très inhomogène aura une grande étendue de valeurs de résidu. A noter qu’on ne vise ici que l’inhomogénéité intra- segments (i.e. à l’intérieur des segments), l’éventuelle inhomogénéité intersegments (i.e. d’un segment par rapport à un autre) n’étant pas considérée. A titre d’exemple, la figure 5 représente les valeurs d’une série temporelle, et on constate l’existence d’un changement dans la variance qui définit un segment central.

Par segmentation, on entend la division du résidu en n segments successifs. On comprendra que, de la même manière que valeurs de la grandeur physique, les segments sont ordonnés temporellement, et donc que le « dernier » segment est le plus récent.

La segmentation vise plus précisément à déterminer les n-1 points de cassure, en anglais « breakpoints » qui constituent les points de changements les plus abrupts (hétérogénéités), et où l’on place les frontières entre segments.

L’idée est qu’on puisse obtenir des segments eux-mêmes homogènes sur lesquels on pourra mettre en œuvre une analyse statistique performante.

Les techniques connues mettaient en effet en œuvre une analyse statistique globale ou sur fenêtre glissante, et l’on constate que le fait de travailler segment par segment permet de s’adapter plus finement aux variations dans la moyenne et la variance.

Par exemple si l’on reprend la figure 1 , les anomalies du 19 juillet matin étaient certes à près de 95% d’usage CPU, mais on avait déjà une baisse et donc une variance trop brutale par rapport à un comportement normal (qui est proche de la sinusoïde - alors que la baisse avant l’incident total est presque linéaire). La segmentation aurait fait ressortir un segment spécifique correspondant à cette matinée du 19 juillet.

Pour mettre en œuvre l’étape (b) en pratique, on peut utiliser tout breakpoint detector connu, notamment ceux utilisés dans le contexte de l’analyse génétique (par exemple pour analyser les variations du nombre de copies dans l'ADN). Voire en outre par exemple les méthodes dites « KernSeg » décrites dans le document New efficient algorithms for multiple change-point detection with reproducing kernels, A.Celisse, G. Marot, M. Pierre- Jean , G.J.Rigaill.

De manière préférée les moyens de traitement 11 proposent une pluralité de segmentations candidates, préférentiellement au moins une segmentation candidate par valeur du nombre n de segments, puis calculent pour chacune la valeur dudit score représentatif de l’inhomogénéité intra-segment. On choisit alors la segmentation candidate présentant ledit score représentatif de l’inhomogénéité intra-segment le plus faible, c’est-à-dire celle qui minimise le score parmi toutes les segmentations candidates.

En ce qui concerne le score, on peut en particulier prendre un score par segment (par exemple l’écart à la moyenne du segment, mais on pourra utiliser toute fonction de coût qui tend vers 0 lorsque le segment tend vers une valeur constante), et sommer les scores de segments. On préférera cependant des scores basés sur les noyaux reproduisant, permettant la détection de tous types de ruptures et pas uniquement de rupture dans la moyenne (par exemple des changements de variance).

La figure 6 représente les segmentations candidates obtenues pour le résidu de la figure 4 respectivement pour n=2, 3 et 4, ainsi que le score d’inhomogénéité correspondant. On voit que ce score présente son minimum pour n=3, car à n=2 le second segment est trop inhomogène, et à n= 4+ on a trop de segments.

A noter que dans un fonctionnement temps réel, on connaît généralement déjà les segments antérieurs terminés (du fait de la mise en œuvre itérée du procédé) et on a un segment « courant » (le plus récent). A chaque nouvelle observation, la détection de breakpoint détermine si l’on vient continuer le segment courant, ou si au contraire un nouveau segment a débuté (rétroactivement l’algorithme peut venir fragmenter le segment courant en plaçant a posteriori un breakpoint plusieurs observations avant).

De manière préférée, on vérifie à l’issue de l’étape (b) que chaque segment (en particulier le segment courant) présente une taille au-dessus d’un score prédéterminé de signifiance. Pour reformuler, un segment trop court peut ne pas comprendre assez de valeur pour permettre une analyse statistique pertinente, et cela arrive généralement dans un fonctionnement temps réel lorsqu’un nouveau segment débute.

Si c’est le cas, on peut ajouter à un segment trop court les valeurs d’un segment similaire antérieur pour l’étape suivante. Bien entendu, dès que le segment courant sera suffisamment long du fait de nouvelles observations on peut arrêter d’utiliser ces valeurs antérieures.

Par exemple, dans le cas de la figure 7, la segmentation obtenue comprend à nouveau trois segments mais le dernier est trop court : on a seulement 12 secondes d’observations. Si le seuil de signifiance est par exemple de 30 secondes, il est nécessaire d’ajouter ce troisième segment au segment précédent le plus similaire, en l’espèce le premier. C’est alors cet ensemble de segments qui sert de référence pour définir la normalité.

Dans une étape (c), pour au moins le segment courant (et possiblement pour chaque segment si l’on traite a posteriori toute la série), on analyse statiquement la distribution des valeurs du résidu dans ledit segment de sorte à conclure ou non à la présence d’une anomalie. Si le procédé est mis en œuvre en temps réel, l’étape (c) ne concerne que le segment courant (car on suppose que les segments précédents ont déjà été analysés au fur et à mesure), mais alternativement, si l’on traite a posteriori toute la série, l’étape (c) est mise en œuvre pour chaque segment identifié à l’étape (b).

De manière classique, le résidu devrait présenter une distribution de valeurs gaussienne, i.e. conformément à une loi normale centrée (autour de 0), et on vérifie si la distribution constatée est compatible avec une telle loi en termes probabiliste. Dans des cas plus réalistes, la distribution obtenue n’est pas toujours gaussienne, l’analyse statistique des résidus et la détection des anomalies est alors plus difficile avec les méthodes classiques.

L’analyse statistique vise ainsi à déterminer si la distribution constatée est « explicable » par des fluctuations statistiques, ou au contraire qu’elle ne l’est pas et donc qu’on est en présence d’une anomalie. On pourra utiliser toute méthode connue, et notamment celles citées dans la demande EP3672153, mais avantageusement, est construit au moins un modèle statistique possible des valeurs du résidu dans les segments.

On peut avoir plusieurs modèles candidats correspondants à plusieurs distributions possibles, et progressivement mettre à jour ces modèles au fur et à mesure que l’on reçoit des observations.

De manière préférée, on évalue le ou les modèles par leur capacité à décrire les parties extrémales de la distribution, dites « queues ». Il est plus courant de sélectionner les modèles par leur capacité à décrire précisément toute la distribution, mais de tels modèles sont biaisés en faveur de la partie centrale et en défaveur de la queue de la distribution. Or c’est justement dans la queue de distribution que les éventuelles anomalies sont observées que l’on souhaite capturer.

Le modèle ou un « meilleur modèle » s’il y en a plusieurs, est choisi et utilisé pour déterminer des seuils d’alerte sur les valeurs du résidu.

Par exemple, on peut utiliser la « valeur p », en anglais « p value » qui désigne la probabilité pour le modèle statistique choisi d’obtenir une erreur aussi grande que l'erreur observée (i.e. la valeur du résidu). Ainsi, une faible valeur de p correspond à une erreur de prédiction anormalement élevée, et donc qu’on est en présence d’une anomalie. Traditionnellement, on utilise un seuil de valeur p à 5%

L'estimation de la p-value implique typiquement une estimation par noyau, en anglais « Kernel Density Estimation » (KDE) appliquée à la queue de distribution, qui permet d’estimer la densité de probabilité du résidu en lissant plus ou moins l’estimation, et la procédure de Grimshaw (Computing Maximum Likelihood Estimates for the Generalized Pareto Distribution, Scott D. Grimshaw).

La figure 8 représente pour un segment la densité de probabilité estimée par KDE avec les seuils de valeur p correspondants.

De manière visuelle, on peut reporter sur le résidu les seuils de valeurs correspondants : si un seuil est dépassé, une anomalie est constatée, voir la figure 9. On comprendra toutefois qu’on peut simplement déterminer la valeur p et la comparer au seuil, sans recalculer des seuils de valeurs du résidu.

Comme expliqué le seuil peut être prédéterminé, par exemple 5%, mais alternativement il est calculé pour un taux de faux positifs souhaité sur le segment considéré (en particulier le segment le plus récent), de sorte à être plus adéquat pour statuer sur l’existence d’anomalies.

Pour cela, on peut utiliser la méthode de Benjamini-Hochberg, qui définit le seuil 0 a pour un taux de faux positifs a souhaité, grâce à la formule suivante :

P(k) :1a k-ième plus petite valeur p de la série analysée m : Taille de la série analysée

L’homme du métier saura trouver des méthodes alternatives.

De manière préférée, on peut même utiliser une version modifiée de la méthode de Benjamini-Hochberg :

- le taux de faux positifs souhaité sur le segment considéré (dit taux local) peut être prédéterminé, mais alternativement ce qui peut être prédéterminé est un taux de faux positifs souhaité sur toute la série temporelle (dit taux global). En effet, si on utilise le seuil 0 a alors on peut garantir que le taux de faux positifs sera inférieur à a sur le segment mais c’est insuffisant pour garantir un contrôle sur le taux de faux positifs dans la série complète, c’est pourquoi on peut appliquer au segment un deuxième seuil 0a’ calculé pour une valeur a’ correspondant à une légère variation du taux global a de sorte à garantir ledit taux de faux positifs souhaité sur toute la série temporelle (i.e. ledit taux de faux positifs souhaité sur le segment pour lequel la valeur p est déterminée est calculé en fonction du taux de faux positifs souhaité sur toute la série temporelle), comme illustré sur la figure 10, afin de contrôler le taux de faux positifs de la série temporelle globale analysée par le contrôle du taux de faux positifs de ses sous-séries.

On peut notamment commencer par calculer et appliquer sur le segment considéré le premier seuil 0 a pour le taux a souhaité sur toute la série temporelle (avec la méthode de Benjamini-Hochberg standard), calculer une proportion li d’anomalies, et appliquer la où m’ est la taille de la sous-série locale (i.e. le nombre de valeurs de la grandeur physique dans le segment). Le second seuil 0 a ’ est alors calculé pour le segment en appliquant à nouveau la méthode de Benjamini-Hochberg mais en prenant le taux a’.

En résumé, dans le mode de réalisation préféré : o un premier seuil 0 a est calculé pour un taux de faux positifs a souhaité sur toute la série temporelle (prédéterminé), et appliqué au segment considéré ; o un taux de faux positifs a’ souhaité sur le segment considéré est calculé en fonction du taux de faux positifs a souhaité sur toute la série temporelle (et du résultat de l’application du premier seuil 0 a au segment) ; o un deuxième seuil 0a’ est calculé pour ledit taux de faux positifs a’ souhaité sur le segment considéré, et appliqué au segment considéré.

- la taille de référence peut être modifiée de sorte à garantir que l’erreur commise sur l’estimation de la valeur p n’empêche pas d’avoir le contrôle du taux de faux positifs, aussi bien au niveau local que global. En effet, le nombre de points de l’ensemble de référence doit être choisi de façon judicieuse pour contrôler au mieux le faux positifs, On peut voir sur la figure 11 que le contrôle est en particulier optimal pour une taille de référence Ni choisie de la manière suivante: N, = l — 1, a où l’indice I est un hyperparamètre choisi par l’utilisateur. Il s’agit d’un nombre entier positif (généralement 1 ou 2) qui contrôle la taille de l’ensemble de référence. Choisir un ensemble de référence plus grand permet de diminuer le nombre de faux négatifs mais augmente le temps de calcul.

Dans tous les cas, le procédé comprend avantageusement une étape (d) de mise en œuvre d’une action si une anomalie est détectée sur au moins un segment :

- a minima une alerte pour être déclenchée sur une interface 13 du serveur 1 ou un terminal 4 connecté

- de manière préférée, l’éventuel équipement 3 de diagnostic et de maintenance du système 2 est sollicité, i.e. une requête lui est envoyée, de sorte à ce que ce dernier mette en œuvre des tests pour déterminer la nature de l’anomalie, voire la résolve, si possible avant même qu’un incident survienne.

Résultats

La présente méthode a été testée pour la détection proactive d’anomalies sur un système 2 de type équipement réseau telles qu’une attaque par déni de service (DDoS).

On constate que le serveur 1 parvient à détecter l’anomalie 15 minutes plus tôt qu’en utilisant les procédés connus à seuils prédéfinis.

Serveur, système

Selon un deuxième aspect, l’invention concerne le serveur 1 pour la mise en œuvre du procédé selon l’invention. Ce serveur de détection d’anomalie dans une série temporelle observée de valeurs d’une grandeur physique représentative des performances d’un système 2 comprend des moyens de traitement de données 11 , et généralement des moyens de stockage de données 12, par exemple stockant une base de séries temporelles observées de valeurs de ladite grandeur physique représentative des performances du système 2, et une interface 13.

Le moyens 11 sont configurés pour :

- Déterminer un résidu correspondant à ladite série temporelle observée à laquelle on a retiré une partie prédictible de ladite série temporelle observée ;

- Segmenter le résidu en une pluralité de segments successifs minimisant un score représentatif de l’inhomogénéité intra-segment ;

- Pour au moins le segment le plus récent, mettre en œuvre une analyse statistique de la distribution des valeurs du résidu dans ledit segment de sorte à conclure ou non à la présence d’une anomalie sur le segment.

- Avantageusement, mettre en œuvre une action si une anomalie est détectée sur au moins un segment

Selon un troisième aspect, est proposé un ensemble du serveur 1 et du système 2. L’ensemble peut éventuellement comprendre des moyens 20 de monitoring du système 2, un équipement 3 de diagnostic et de maintenance du système 2 et/ou un terminal 4. Toutes ces éléments 1 , 2, 20, 3, 4 peuvent être connectés via un réseau 10.

Produit programme d’ordinateur

Selon un quatrième et un cinquième aspects, l’invention concerne un produit programme d’ordinateur comprenant des instructions de code pour l’exécution (en particulier sur les moyens de traitement de données 11 ) d’un procédé selon le premier aspect de l’invention de détection d’anomalie dans une série temporelle observée de valeurs d’une grandeur physique représentative des performances d’un système, ainsi que des moyens de stockage lisibles par un équipement informatique (une mémoire 12 du serveur 1) sur lequel on trouve ce produit programme d’ordinateur.