Breve viaggio attraverso le tecniche di anomaly detection, fra algoritmi supervisionati e non supervisionati. La sfida più difficile? Identificare le anomalie in serie temporali.
Detto nella maniera più semplice possibile, il processo di anomaly detection («identificazione delle anomalie») consiste nel riconoscimento di condizioni o circostanze inattese all’interno di un dataset. Per contenuto o evento inatteso si intende qualcosa che differisce dalla norma. Si tratta di uno degli ambiti più fertili per le applicazioni di machine learning («apprendimento automatico») in molti contesti, dal controllo dei processi industriali e delle performance dei sistemi produttivi, fino all’analisi del comportamento dei clienti. Il team di AI di Spindox è fortemente impegnato in questo ambito.
Esistono diverse tecniche di anomaly detection, ma innanzi tutto è importante definire l’anomalia in modo corretto sul piano concettuale. In primo luogo un’anomalia, per essere tale, deve manifestarsi raramente. Ciò che si verifica spesso, infatti, non può essere definito anomalo ed è semmai riconducibile a una regola. Inoltre la difformità rispetto alla norma deve essere significativa: scostamenti che non siano apprezzabili non meritano di essere presi in considerazione. In statistica, il valore anomalo o aberrante è definito outlier.
Lo scenario di analisi che si prospetta, quando cerchiamo di riconoscere un’anomalia, può essere più o meno complesso. Con riferimento al numero di variabili da esaminare, distinguiamo fra anomaly detection univariata e anomaly detection monovariata. Nel primo caso gli outlier emergono osservando la distribuzione dei valori relativi a un singolo parametro (per esempio i dati relativi al fatturato di tutti i punti vendita di una rete distributiva). Nel secondo caso, viceversa, l’outlier emerge dall’osservazione di almeno due variabili, combinate fra loro (per esempio i dati relativi alla correlazione fra vendite e profitti).
Algoritmi supervisionati e non supervisionati
Un’altra distinzione fondamentale è fra le anomalie che sono tali in generale e quelle che lo sono solamente all’interno di una determinata serie temporale. Che la temperatura atmosferica scenda a livelli prossimi allo zero nel deserto del Sahara, per esempio, è un fatto consueto nelle ore notturne, mentre rappresenta senz’altro un’anomalia se il fenomeno si verifica di giorno.
Su questo punto torneremo più avanti. Prima, ricordiamo un’altra importante distinzione: quella fra metodo supervisionato e metodo non supervisionato. La anomaly detection che non considera la variabile temporale, infatti, può essere dell’uno oppure dell’altro tipo.
Approccio supervisionato
Il primo approccio si adotta quando la natura delle anomalie è nota in partenza, ossia quando si tratta di rilevare nuovi casi di un fenomeno già conosciuto. L’algoritmo viene addestrato con i dati disponibili, fino a quando non riesce a riconoscere il fenomeno in modo autonomo. Fra i molteplici algoritmi standard, la scelta ricade su quello che “impara” meglio la lezione senza cadere nell’overfitting («sovradattamento» o adattamento eccessivo del modello ai dati osservati, con la conseguente incapacità di generalizzare e predire in maniera corretta dati non presenti tra quelli osservati).
Approccio non supervisionato
Più complesso è l’approccio non supervisionato, da seguire quando gli elementi che possono avere un esito anomalo non sono noti in partenza. In questi casi occorre ricorrere a tecniche di machine learning: clustering, PCA e Isolation Forest.
Il metodo più classico è appunto quello del clustering, il quale – partendo dall’analisi multivariata del dataset – permette di selezionare e raggruppare in sottoinsiemi gli elementi omogenei presenti al suo interno. La cluster analysis consente di collocare nello stesso insieme gli elementi che hanno il massimo grado di somiglianza e di separare quelli che hanno il massimo livello di differenza.
In altri casi si ricorre alla PCA (Principal Component Analysis), ossia una riduzione dei parametri per la ricerca degli outlier. L’obiettivo è la semplificazione dello scenario di analisi, nella consapevolezza che il numero di correlazioni spurie, e quindi di epifenomeni, cresce in misura esponenziale rispetto al numero di variabili da considerare.
Infine è possibile usare la tecnica delle random forest, in particolare delle cosiddette isolation forest. Per random forest si intende un’aggregazione di alberi di decisione, costruita applicando la tecnica del bagging (ogni albero è addestrato su un dataset diverso). Gli algoritmi di tipo isolation forest permettono di isolare – come il nome suggerisce – ciascun punto del dataset sulla base della sua maggiore o minore distanza dagli altri punti. Gli outlier corrispondono in genere alle foglie che sono tagliate per prime dall’albero.
Anche il deep learning viene talvolta usato nell’ambito della anomaly detection. In particolare si ricorre a particolari reti neurali – dette autoencoder – che comprimono l’input in uno spazio di variabili latenti (encoding) e poi lo ricostruiscono sulla base delle informazioni raccolte (decoding). In tal modo permettono di scoprire vicinanze fra punti ed evidenziano le relazioni con altri dati.
Identificare le anomalie in serie temporali
Relativamente più complessa è la anomaly detection quando essa si applica, come già detto, all’interno di una determinata serie temporale. Le tecniche utilizzate sono molte. Spindox, in particolare, ha avuto occasione di lavorare con tre modelli: algoritmo di S-H-ESD, ARIMAX e reti neurali ricorrenti.
Per quanto riguarda la velocità di valutazione di un’anomalia, ci sono metodi come S-H-ESD che richiedono una valutazione complessiva del periodo per estrarre gli outlier, Questo dipende dal fatto che S-H-ESD non calcola un modello, ma analizza tutto l’intervallo di tempo. Gli altri metodi citati, invece, calcolano un modello vero e proprio di predizione del valore aspettato. Dunque confrontano l’atteso con il reale e “capiscono” se siamo di fronte a un’anomalia o meno sulla base dell’ampiezza dello scarto. In genere questo approccio è pesante in termini computazionali di calcolo del modello, ma veloce nella risposta di valutazione quasi in tempo reale.
S-H-ESD
L’algoritmo di S-H-ESD (Seasonal Hybrid ESD, dove ESD sta per Extreme Studentized Deviate). L’ESD è una metodologia consolidata per identificare uno o più outlier in un dataset univariato che segue una distribuzione normale. S-H-ESD lavora con l’obiettivo di estrarre dal dataset l’andamento normale nel tempo. Per ottenere questo risultato, l’algoritmo procede in due fasi.
Nella prima fase S-H-ESD rileva sia le anomalie globali che si estendono oltre il minimo e il massimo stagionale previsto, sia le anomalie locali che altrimenti sarebbero mascherate dalla stagionalità. Un segnale temporale è infatti costituito da due componenti. La prima componente è di tipo appunto stagionale. Pensiamo, per esempio, alla doppia gobba (mattino-pomeriggio-notte) che si registra nel traffico web, con un calo nei giorni festivi. La seconda componente è relativa alla tendenza. È il caso dell’andamento delle vendite nel corso di un anno. Le due componenti interagiscono, nel senso che l’andamento della prima evolve nel tempo, secondo una certa tendenza.
Nella seconda fase S-H-ESD evidenzia il residuo, dovuto a fluttuazioni fisiologiche. Sul residuo, che si calcola rimuovendo dal valore originale la mediana e la stagionalità, può essere condotta un’analisi statistica più tradizionale.
ARIMAX
C’è poi ARIMAX (Autoregressive Integrated Moving Average with Explanatory Variable), un metodo statistico che studia i coefficienti di alcune componenti sullo storico, per fare la predizione sull’intervallo temporale successivo. Una sorta di regressione in ambito temporale, insomma. ARIMAX può essere visto come un modello di regressione multipla con uno o più termini autoregressivi (AR) e uno o più termini della media mobile (MA).
Reti neurali ricorrenti
Infine ci sono le reti neurali ricorrenti. A differenza di ciò che avviene nelle reti neurali di altro tipo, nelle reti neurali ricorrenti ciascun layer di neuroni salva le informazioni sullo stato precedente per alcuni istanti. I valori di uscita di uno strato di un livello superiore vengono utilizzati come ingresso a uno strato di livello inferiore. Questa caratteristica delle RNN permette di dare una sequenzialità alla struttura. La rete neurale effettua la predizione, sulla quale si calcola un livello di confidenza in base alla variabilità del fenomeno.
Come spiegavamo in un post su BERT – il nuovo algoritmo di Google Search, che però si basa sull’architettura alternativa del trasformer – le reti neurali ricorrenti sono molto utilizzate nelle applicazioni di NLP, come i traduttori automatici o i sistemi di risposta in linguaggio naturale.
Correlazione e automazione
Come è facile capire, l’anomaly detection è un processo relativamente articolato. Il che ha una duplice conseguenza. Da un lato, come già detto, non ci si devono attendere risposte istantanee dall’analisi dei dati in tempo reale. Le anomalie si evidenziano nel tempo e col tempo. Dall’altro lato occorre studiare l’anomalia non solo per i suoi effetti diretti, ma anche per l’impatto che esercita su altri processi. In sostanza, al di là della bontà intrinseca dell’algoritmo identificato di volta in volta per l’analisi, si tratta di mettere in piedi un robusto modello concettuale. Come abbiamo dire, la data science non è solo matematica.
Un’ultima considerazione riguarda lo scenario a tendere. Il sogno di tutti è l’automazione del processo, ossia la messa a punto di un sistema che, identificata l’anomalia, intervenga automaticamente sulla base di regole di business predefinite (ed eventualmente modificabili). Si tratta di un’aspirazione legittima. Tuttavia occorre non sottovalutare la complessità di certi scenari e quindi scongiurare il rischio di danni causati dall’automazione. Basti pensare agli interventi forzati dall’algoritmo nei casi di falso positivo.
Per approfondire
- Li, S. (2019). Anomaly Detection for Dummies, “Towards Data Science”.
- Pawar, V. (2018). Anomaly Detection- Key Feature, “Towards Data Science”.
- Hamilton, J.D. (1994). Time Series Analysis. Taylor & Francis US.
- Box, G; Jenkins, G. (1970). Time Series Analysis: Forecasting and Control. San Francisco: Holden-Day.