30 anni di Data Science Una recensione da un praticante di Data Science

30 anni di Data Science una recensione di un praticante

 

30 anni di VoAGI e 30 anni di data science. Più o meno 30 anni della mia vita professionale. Uno dei privilegi che viene con il lavorare nello stesso campo per molto tempo – chiamato esperienza – è la possibilità di scrivere sulla sua evoluzione, come un testimone diretto. 

 

Gli Algoritmi

 

Ho iniziato a lavorare all’inizio degli anni ’90 su ciò che all’epoca si chiamava Intelligenza Artificiale, facendo riferimento a un nuovo paradigma che era auto-apprendente, mimando organizzazioni di cellule nervose e che non richiedeva alcuna ipotesi statistica da verificare: sì, le reti neurali! Un uso efficiente dell’algoritmo di retropropagazione era stato pubblicato solo pochi anni prima [1], risolvendo il problema dell’allenamento dei livelli nascosti nelle reti neurali multistrato, permettendo ad un esercito di studenti entusiasti di affrontare nuove soluzioni a una serie di vecchi casi d’uso. Nulla avrebbe potuto fermarci… tranne la potenza delle macchine. 

L’allenamento di una rete neurale multistrato richiede una notevole potenza di calcolo, soprattutto se il numero di parametri di rete è elevato e il dataset è grande. Una potenza di calcolo che le macchine dell’epoca non avevano. Sono stati sviluppati framework teorici, come il Back-Propagation Through Time (BPTT) nel 1988 [2] per le serie temporali o le Long Short Term Memories (LSTM) [3] nel 1997 per l’apprendimento della memoria selettiva. Tuttavia, la potenza di calcolo è rimasta un problema e le reti neurali sono state accantonate dalla maggior parte degli operatori di analisi dei dati, in attesa di tempi migliori.

Nel frattempo, sono apparsi algoritmi più leggeri e spesso altrettanto performanti. Gli alberi decisionali nella forma di C4.5 [4] sono diventati popolari nel 1993, anche se nella forma di CART [5] erano già presenti dal 1984. Gli alberi decisionali erano più leggeri da allenare, più intuitivi da capire e spesso sufficientemente performanti per i dataset dell’epoca. Presto abbiamo anche imparato a combinare molti alberi decisionali insieme come una foresta [6], nell’algoritmo delle random forest, o come una cascata [7] [8], nell’algoritmo dei gradient boosted trees. Anche se questi modelli sono abbastanza grandi, ovvero con un gran numero di parametri da allenare, erano ancora gestibili in un tempo ragionevole. In particolare, i gradient boosted trees, con la loro cascata di alberi allenati in sequenza, diluivano la potenza di calcolo richiesta nel tempo, rendendolo un algoritmo molto accessibile e di grande successo per la data science.

Fino alla fine degli anni ’90, tutti i dataset erano dataset classici di dimensioni ragionevoli: dati dei clienti, dati dei pazienti, transazioni, dati chimici e così via. Fondamentalmente, dati operativi classici delle aziende. Con l’espansione dei social media, del commercio e delle piattaforme di streaming, i dati hanno iniziato a crescere a un ritmo molto più veloce, ponendo sfide completamente nuove. Prima di tutto, la sfida dello storage e dell’accesso rapido per quantità così grandi di dati strutturati e non strutturati. In secondo luogo, la necessità di algoritmi più veloci per la loro analisi. Le piattaforme big data si sono occupate dello storage e dell’accesso rapido. I tradizionali database relazionali che ospitano dati strutturati hanno lasciato spazio a nuovi data lake che ospitano ogni tipo di dato. Inoltre, l’espansione delle attività di ecommerce ha spinto la popolarità dei motori di raccomandazione. Sia utilizzati per l’analisi del carrello della spesa che per le raccomandazioni di streaming video, due di questi algoritmi sono diventati comunemente usati: l’algoritmo apriori [9] e l’algoritmo di filtraggio collaborativo [10].

Nel frattempo, le prestazioni dell’hardware dei computer sono migliorate raggiungendo una velocità inimmaginabile e… siamo tornati alle reti neurali. Le GPU hanno iniziato ad essere utilizzate come acceleratori per l’esecuzione di operazioni specifiche nell’allenamento delle reti neurali, consentendo la creazione, l’allenamento e la distribuzione di algoritmi e architetture neurali sempre più complessi. Questa seconda giovinezza delle reti neurali ha preso il nome di deep learning [11] [12]. Il termine Intelligenza Artificiale (AI) ha iniziato a riemergere.

Un ramo collaterale del deep learning, l’AI generativa [13], si è concentrato sulla generazione di nuovi dati: numeri, testi, immagini e persino musica. I modelli e i dataset sono continuamente cresciuti in dimensioni e complessità per raggiungere la generazione di immagini, testi e interazioni uomo-macchina sempre più realistiche.

Nuovi modelli e nuovi dati sono stati rapidamente sostituiti da nuovi modelli e nuovi dati in un ciclo continuo. È diventato sempre più un problema di ingegneria piuttosto che un problema di data science. Di recente, grazie ad un ammirevole sforzo nell’ingegneria dei dati e dell’apprendimento automatico, sono stati sviluppati frameworks automatici per la raccolta continua di dati, l’allenamento dei modelli, i test, le azioni umane nel loop e infine la distribuzione di modelli di machine learning molto grandi. T’utta questa infrastruttura di ingegneria è alla base dei modelli di linguaggio di grandi dimensioni (LLM), addestrati per fornire risposte a una varietà di problemi mentre simulano un’interazione umano-umano.

 

Il ciclo di vita

 

Più che sugli algoritmi, il cambiamento più grande nel campo della scienza dei dati negli ultimi anni, secondo me, è avvenuto nell’infrastruttura sottostante: dall’acquisizione frequente dei dati alla continua e fluida riaffinazione e rilascio dei modelli. In altre parole, la scienza dei dati è passata da una disciplina di ricerca a uno sforzo ingegneristico.

Il ciclo di vita di un modello di apprendimento automatico è passato da un singolo ciclo di creazione, addestramento, test e rilascio, come CRISP-DM [14] e altri paradigmi simili, a un doppio ciclo che comprende la creazione da un lato e la produzione – rilascio, convalida, utilizzo e manutenzione – dall’altro [15]. 

 

 

Gli strumenti

 

Di conseguenza, gli strumenti per la scienza dei dati hanno dovuto adattarsi. Hanno dovuto iniziare a supportare non solo la fase di creazione, ma anche la fase di produzione di un modello di apprendimento automatico. Dovevano esserci due prodotti o due parti separate all’interno dello stesso prodotto: uno per supportare l’utente nella creazione e nell’addestramento di un modello di scienza dei dati e uno per consentire una produzione finale scorrevole e priva di errori. Mentre la parte di creazione è ancora un esercizio di intelligenza, la parte di produzione è un compito strutturato e ripetitivo.

Ovviamente, per la fase di creazione, gli scienziati dei dati hanno bisogno di una piattaforma con una vasta copertura di algoritmi di apprendimento automatico, dai più basilari ai più avanzati e sofisticati. Non si sa mai quale algoritmo potrebbe essere necessario per risolvere quale problema. Naturalmente, i modelli più potenti hanno una maggiore probabilità di successo, ma ciò comporta un rischio più elevato di sovradattamento e di esecuzione più lenta. Gli scienziati dei dati, alla fine, sono come artigiani che hanno bisogno di una scatola piena di strumenti diversi per le molte sfide del loro lavoro.

Le piattaforme basate su codice ridotto hanno anche guadagnato popolarità, poiché il codice ridotto consente ai programmatori e persino ai non programmatori di creare e aggiornare rapidamente ogni tipo di applicazione di scienza dei dati.

Come esercizio di intelligenza, la creazione di modelli di apprendimento automatico dovrebbe essere accessibile a tutti. Ecco perché, sebbene non sia strettamente necessario, sarebbe desiderabile una piattaforma open source per la scienza dei dati. L’open source consente l’accesso gratuito alle operazioni sui dati e agli algoritmi di apprendimento automatico a tutti gli aspiranti scienziati dei dati e allo stesso tempo consente alla comunità di investigare e contribuire al codice sorgente.

Dall’altra parte del ciclo, la produzione richiede una piattaforma che fornisca un affidabile framework IT per il rilascio, l’esecuzione e il monitoraggio dell’applicazione di scienza dei dati pronta per l’uso.

 

Conclusione

 

Riassumere 30 anni di evoluzione della scienza dei dati in meno di 2000 parole è ovviamente impossibile. Inoltre, ho citato le pubblicazioni più popolari all’epoca, anche se potrebbero non essere state le prime assolute sull’argomento. Mi scuso già per i molti algoritmi che hanno avuto un ruolo importante in questo processo e che non ho menzionato qui. Tuttavia, spero che questo breve riassunto ti dia una comprensione più profonda di dove e perché ci troviamo ora nello spazio della scienza dei dati, 30 anni dopo!

 

Bibliografia 

 

[1] Rumelhart, D.E.; Hinton, G.E.; Williams, R.J. (1986). “Learning representations by back-propagating errors”. Nature, 323, p. 533-536.

[2] Werbos, P.J.  (1988). “Generalization of backpropagation with application to a recurrent gas market model”. Neural Networks. 1 (4): 339–356. doi:10.1016/0893-6080(88)90007

[3] Hochreiter, S.; Schmidhuber, J.  (1997). “Long Short-Term Memory”. Neural Computation. 9 (8): 1735–1780. 

[4] Quinlan, J. R. (1993). “C4.5: Programs for Machine Learning” Morgan Kaufmann Publishers.

[5] Breiman, L. ; Friedman, J.; Stone, C.J.; Olshen, R.A. (1984) “Classification and Regression Trees”, Routledge. https://doi.org/10.1201/9781315139470 

[6] Ho, T.K. (1995). Random Decision Forests. Proceedings of the 3rd International Conference on Document Analysis and Recognition, Montreal, QC, 14-16 agosto 1995. pp. 278-282

[7] Friedman, J. H. (1999). “Greedy Function Approximation: Una macchina di boosting del gradiente, lezione Reitz

[8] Mason, L.; Baxter, J.; Bartlett, P. L.; Frean, Marcus (1999). “Algoritmi di boosting come discesa del gradiente”. In S.A. Solla e T.K. Leen e K. Müller (ed.). Progressi nei sistemi di informazione neurale 12. MIT Press. pp. 512-518

[9] Agrawal, R.; Srikant, R (1994) Algoritmi veloci per l’estrazione di regole di associazione. Atti del 20° Convegno Internazionale sulle Basi di Dati Molto Grandi, VLDB, pagine 487-499, Santiago, Cile, settembre 1994.

[10] Breese, J.S.; Heckerman, D,; Kadie C. (1998) “Analisi empirica di algoritmi di previsione per il filtraggio collaborativo”, Atti della quattordicesima conferenza sull’incertezza nell’intelligenza artificiale (UAI1998)

[11] Ciresan, D.; Meier, U.; Schmidhuber, J. (2012). “Reti neurali profonde a colonne multiple per la classificazione delle immagini”. 2012 Conferenza IEEE su visione artificiale e riconoscimento dei pattern. pp. 3642-3649. arXiv:1202.2745. doi:10.1109/cvpr.2012.6248110. ISBN 978-1-4673-1228-8. S2CID 2161592.

[12] Krizhevsky, A.; Sutskever, I.; Hinton, G. (2012). “Classificazione ImageNet con reti neurali convoluzionali profonde”. NIPS 2012: Neural Information Processing Systems, Lake Tahoe, Nevada.

[13] Hinton, G.E.; Osindero, S.; Teh, Y.W. (2006) “Un algoritmo di apprendimento rapido per reti di credenze profonde”. Neural Comput 2006; 18 (7): 1527-1554. doi: https://doi.org/10.1162/neco.2006.18.7.1527

[14] Wirth, R.; Jochen, H.. (2000) “CRISP-DM: Verso un modello di processo standard per l’estrazione di dati.” Atti della 4ª conferenza internazionale sulle applicazioni pratiche della scoperta delle conoscenze e dell’estrazione di dati (4), pp. 29-39.

[15] Berthold, R.M. (2021) “Come portare la scienza dei dati in produzione”, Blog KNIME Rosaria Silipo non è solo un’esperta di data mining, machine learning, reporting e data warehousing, ma è diventata un’esperta riconosciuta del motore di data mining KNIME, su cui ha pubblicato tre libri: KNIME Beginner’s Luck, The KNIME Cookbook e The KNIME Booklet for SAS Users. In precedenza, Rosaria ha lavorato come analista di dati freelance per molte aziende in tutta Europa. Ha anche guidato il gruppo di sviluppo SAS presso Viseca (Zurigo), implementato le interfacce di riconoscimento del parlato e del testo in C# presso Spoken Translation (Berkeley, California) e sviluppato diversi motori di riconoscimento del parlato in diverse lingue presso Nuance Communications (Menlo Park, California). Rosaria ha conseguito il dottorato di ricerca in ingegneria biomedica nel 1996 presso l’Università di Firenze, Italia.