
Tipicamente gli algoritmi di Machine Learning (ML) classici sono addestrati su dati statici. Questi dati vengono solitamente pre-processati, analizzati e infine usati per addestrare i modelli.
Ma cosa succede quando i dati arrivano in flussi continui e in grande quantità?
Ecco che le normali tecniche di ML non bastano più e devono essere ripensate.
Non è possibile, per esempio, usare l’intero dataset per l’addestramento; è necessario elaborare i dati uno alla volta o in piccoli batch.
È qui che ci viene in aiuto l’Online Machine Learning, un insieme di tecniche e strumenti che permettono di fare Machine Learning sui flussi di dati.
Sommario
Scenari del Machine Learning Online: previsioni in tempo reale
Immagina di voler analizzare gli acquisti nei tuoi negozi per prevedere a quale categoria di consumatore appartiene un cliente.
Normalmente, dovresti aspettare la fine di tutte le transazioni per avere i dati completi, raccoglierli, organizzarli, processarli e infine usarli per addestrare i modelli.
E se invece volessi farlo in tempo reale? Magari per proporre sconti e promozioni personalizzate sul momento?
Per farlo, dovresti analizzare i dati del cliente all’istante e dare una risposta immediata. Ecco che l’Online Machine Learning ti viene in soccorso, rendendo possibili previsioni e azioni immediate basate sui dati che arrivano.
La sfida del Concept Drift
Un altro aspetto fondamentale nell’Online Machine Learning (chiamato anche Machine Learning of Streams) è la gestione del concept drift, cioè il cambiamento della distribuzione dei dati.
Nel ML classico, i dati hanno una distribuzione predefinita e solitamente stabile.
Nei flussi di dati, invece, la distribuzione è in continua evoluzione.
Torniamo all’esempio dell’analisi del profilo cliente.
Immaginiamo di aver definito le categorie dei clienti in base alla spesa effettuata (ad esempio, “fascia bassa”, “fascia media”, “fascia alta”).
Nel tempo, i prezzi dei prodotti possono variare, magari a causa dell’inflazione, come abbiamo visto di recente.
Questo potrebbe portare il modello a prevedere erroneamente che tutti i clienti siano diventati di fascia alta, solo perché la loro spesa è aumentata in termini nominali.
In realtà, le categorie dei consumatori potrebbero essersi mantenute, ed è solo la distribuzione della loro spesa che è cambiata a causa dei prezzi.
Il concept drift costringe il modello a riadattarsi per non fare previsioni fuorvianti.
Vantaggi e considerazioni critiche
Un ulteriore vantaggio di questi algoritmi è la minore richiesta di risorse computazionali rispetto al ML classico.
Essendo progettati per gestire grandi quantità di dati che arrivano in flussi (streaming), i modelli devono eseguire le operazioni rapidamente, concentrando l’addestramento su un numero minore di dati.
È tuttavia cruciale prestare attenzione quando si adotta questa metodologia: il fine-tuning dei parametri è infatti più complesso rispetto al ML classico.
Inoltre, dato che questi metodi si concentrano sulla rapidità di adattamento a nuovi concetti (nuove distribuzioni di dati), la conoscenza passata viene in gran parte persa, lasciando spazio a nuovi concetti.
Questo fenomeno è spesso chiamato “oblio catastrofico”.
Continual Learning: preservare la conoscenza nel tempo
Qualora si volesse mantenere parte della conoscenza pregressa, si può optare per l’utilizzo di tecniche di Continual Learning (CL). A differenza dell’Online ML, il Continual Learning ha l’obiettivo primario di aggiungere nuova conoscenza senza dimenticare quella appresa in passato.
Un’altra differenza fondamentale tra Online ML e CL sta nella dimensione dei batch di dati usati per l’addestramento: nel CL, i batch sono spesso molto più ampi e includono non solo dati recenti, ma anche dati storici del passato.
Questo avviene tramite le cosiddette “replay strategies”, che aiutano i modelli a integrare la conoscenza passata con quella nuova.
Immaginiamo di voler analizzare la qualità dei nostri prodotti utilizzando delle telecamere, con un modello ML che deve adattarsi a nuovi criteri nel tempo:
- Fase 1: Apprendimento basato sul Colore. Inizialmente, il sistema viene addestrato a distinguere i prodotti buoni da quelli difettosi basandosi esclusivamente sul colore. Il modello impara a riconoscere le sfumature e le irregolarità cromatiche che indicano un difetto.
- Fase 2: Integrazione della Dimensione (senza dimenticare il colore). Successivamente, vogliamo aggiungere un nuovo criterio di valutazione: la dimensione. Qui entra in gioco il Continual Learning. Il nostro obiettivo è che il modello impari a identificare i difetti legati alla dimensione (ad esempio, prodotti troppo grandi o troppo piccoli) senza però dimenticare la sua capacità di riconoscere i difetti basati sul colore appresa in precedenza. Il CL permette al modello di integrare questa nuova conoscenza, mantenendo la sua “memoria” sulle caratteristiche cromatiche.
- Fase 3: Aggiunta del peso (mantenendo colore e dimensione). Una volta che il sistema padroneggia bene sia il colore che la dimensione, decidiamo di introdurre un ulteriore criterio di qualità: il peso. Anche in questo caso, il Continual Learning è fondamentale. Il modello si allenerà sui dati relativi al peso, imparando a identificare prodotti difettosi in base a questo parametro. Allo stesso tempo, grazie alle tecniche di CL (come le replay strategies o l’apprendimento su dati misti), il sistema non perderà le capacità acquisite nel riconoscere i difetti legati al colore e alla dimensione.
In questo modo, un sistema basato sul Continual Learning può evolvere progressivamente, acquisendo nuove competenze (dimensione, peso) e arricchendo la sua “conoscenza” sulla qualità del prodotto, pur conservando la sua capacità di valutare i criteri appresi precedentemente (colore, poi colore e dimensione).
Questo metodo è in netto contrasto con l’Online Machine Learning “puro”, che, focalizzandosi sulla rapidità di adattamento ai concetti più recenti, tenderebbe a “dimenticare” la capacità di valutare il colore una volta introdotta la dimensione, e così via.
Entra in contatto con gli esperti di Dataskills per AI e Machine Learning
ContattaciConclusione
Le metodologie di Machine Learning per dati in streaming rappresentano una soluzione strategica per scenari caratterizzati da elevata dinamicità e necessità di adattamento continuo in tempo reale.
L’Online Machine Learning e il Continual Learning offrono approcci complementari per affrontare le sfide dei flussi di dati in tempo reale.
L’Online ML si distingue per la sua capacità di fornire risposte immediate e di adattarsi rapidamente ai cambiamenti nelle distribuzioni dei dati, rendendolo ideale per applicazioni che richiedono previsioni istantanee.
Tuttavia, il trade-off principale risiede nella perdita progressiva della conoscenza pregressa in favore dell’adattamento ai concetti più recenti.
Il Continual Learning, d’altra parte, emerge come soluzione più sofisticata quando è cruciale preservare l’apprendimento accumulato nel tempo.
Attraverso strategie di “replay” e l’integrazione di dati storici, consente ai modelli di espandere le proprie competenze senza sacrificare le conoscenze acquisite precedentemente.
La scelta tra questi approcci dipende dalle specifiche esigenze applicative: privilegiare la velocità di adattamento o la conservazione della memoria storica.
In entrambi i casi, queste tecnologie rappresentano strumenti fondamentali per sviluppare sistemi di ML resilienti e performanti in ambienti caratterizzati da continua evoluzione.
Di Mattia Repetti, Data Scientist
Comments are closed.