BIG DATA E STORIA RAGIONATA DEGLI ALGORITMI – prima parte – di Fiorello Casi

Una conquista che ognuno di noi realizza, senza il contributo della Filosofia e di altre discipline scientifiche e culturali ma semplicemente attraverso l’esperienza empirica, ingenua, della vita quotidiana, è che dietro a ciò che viene” offerto gratuitamente” si nasconde (salvo casi caritatevoli o filantropici) un doppio sacrificio. Questo è l’aspetto in ombra dei social network e di tutte le piattaforme con le quali gli individui interagiscono con la Rete. In cambio di una piazza virtuale, nella quale sviluppare una propria rete sociale e coltivare relazioni oltre i limiti spazio temporali, ci viene chiesta la cessione della conoscenza delle nostre relazioni sociali e parentali, dei nostri sentimenti, pensieri, gusti, ideologie, caratteristiche personali e perfino i nostri spostamenti topografici. Per una conferma immediata di quanto affermato, si può digitare sul proprio “browser”: https://www.google.com/dashboard/.

Come tutti gli utenti di Google sanno, dopo aver digitato le proprie credenziali su Google.dashboard, si può fare l’esperienza diretta di come Google conosca molte più cose di noi di quante potessimo immaginare. Dobbiamo subito aggiungere che Google non è un social network, e l’esempio potrebbe apparire non perfettamente calzante; tuttavia è grazie al suo “PageRank”, il potente algoritmo che risiede dietro o al centro di questo sistema, che viene reso possibile il coordinamento e la gestione di tutte le nostre attività messe in opera in rete.

Gli algoritmi sono, a tutti gli effetti, delle potenti macchine astratte che tramite linguaggi simbolici, operano sui dati col fine di ottenere il prodotto desiderato dal loro ideatore e realizzatore. Sono veri e propri esperimenti rivolti a estrarre senso dalle tracce digitali delle attività umane registrate appunto nei Big Data, usando la conoscenza estratta per realizzare nuove scoperte scientifiche, per esempio in campo sociale ed economico, per nuovi servizi e prodotti, o a supporto delle decisioni.

Tutta la storia della matematica è costellata di algoritmi, fin da tempi antichissimi ma non è questa la sede per affrontare, anche solo in minima parte, la vastità e la complessità di un tale argomento. Ci limitiamo a osservarne per sommi capi il loro divenire per collocare in una giusta prospettiva storica lo stato attuale di questo campo della matematica e le sue implicazioni nell’ambito di questo lavoro.

L’idea di eseguire una sequenza di istruzioni da ripetere indefinitamente, in modo automatico, fino ad arrivare a un risultato e all’esaurimento dei dati sui quali tale congegno opera, è antichissima. Soltanto con il matematico arabo Al-Khwarizmi (circa 790-850 d.C.) viene coniata la parola che descrive questo metodo. Dalla trascrizione, la più fedele possibile, di procedimenti, tecniche, metodi e conoscenze antiche, il termine algoritmo, assume il significato di un particolare metodo di calcolo.

Gli algoritmi entrano a pieno titolo nelle istituzioni matematiche come strumenti che, tramite sequenze di istruzioni per svolgere calcoli o per l’individuazione di percorsi (logici) nella risoluzione di problemi.

Non riteniamo necessario esplorare più a fondo le articolazioni e le declinazioni che il concetto di algoritmo ha assunto nel corso dei secoli, pur costellate di conquiste intellettuali importantissime; infatti pur essendo un viaggio affascinante esula da questo lavoro. Ci limitiamo a fare cenno alla storia di un’idea che si è evoluta e ha ispirato alcuni grandi pensatori (filosofi) a iniziare una riflessione, su prospettive più vaste, utilizzando il modello cognitivo ispirato dagli algoritmi. L’intuizione geniale del “lullismo” (Raimondo Lullo, Palma di Maiorca, 1233 circa – Mediterraneo, 29 giugno 1316) e di conseguenza di Cartesio, che lo cita nel suo “Discorso sul metodo”. Nel XVII secolo Leibniz riprende questa idea nei suoi studi sulla lingua e sulla concezione della logica. I filosofi, che dal 1600 iniziano a porre le basi per una nuova concezione della scienza (moderna), sono contaminati da alcune idee che presidiano il pensiero di Lullo. Tre sono i temi che trovano continuità con il lullismo, la necessità di tracciare una struttura enciclopedica del mondo, la centralità della matematica e il calcolo computazionale. Un accenno a un filosofo che, negli stessi anni, nella sua opera più rappresentativa scarta completamente l’utilizzo della matematica. Francesco Bacone (Londra, 22 gennaio 1561 – Londra, 9 aprile 1626), universalmente riconosciuto come oracolo della scienza moderna, nella sua opera “Novum organon scientiarum” ponendo le basi del suo metodo scientifico, rimuove completamente l’utilizzo del metodo matematico. E’ interessante notare che, nell’ambito di questo lavoro, trattando dell’emersione dei Big Data come importante causa di modificazione di un paradigma, il pensiero di questo filosofo assume una rinnovata centralità. Le ragioni di quanto affermato risulteranno più chiare quando si tratterà dei principi che presiedono allo sviluppo e all’utilizzo dei Big Data a confronto con strumenti intellettuali e operativi più tradizionali. In sintesi, il pensiero di Bacone è un supporto, una spinta propulsiva e un conforto circa le mutazioni che implicano l’efficacia delle innovazioni della tecnica nel mondo. E’ curioso notare come quelle che erano due correnti di pensiero, sostanzialmente antitetiche, già dal XVII secolo, abbiano trovato una conciliazione e una cooperazione, si potrebbe dire simbiotica, con l’avvento dei Big Data. Infatti la portata della scienza computazionale attuale affonda le radici a partire da Eratostene, Al-Khwarizmi, Lullo, Leibnitz, Babbage e tanti altri. Per contro il geniale metodo di ricerca proposto da Bacone, costituisce il tratto portante che caratterizza la progettazione e catalogazione dei metodi di ricerca e analisi proposti e adottati dai Big Data.

Concludiamo questo breve excursus con Charles Babbage (Londra, 26 dicembre 1791 – Londra, 18 ottobre 1871), al quale si deve la progettazione della prima macchina programmabile per il calcolo. Questo trisavolo dei computer moderni era comunque già in grado di ricevere le istruzioni, attraverso l’utilizzo di cartoni forati (simili ai cartoni per pianole) che saranno i precursori delle schede perforate utilizzate da Hollerit, a partire dal censimento degli U.S. del 1890, e che fungeranno da medium tra uomo e computer da allora fino agli anni ’70 del secolo scorso. Già con questo sistema era possibile fare eseguire alla macchina programmabile tutti gli algoritmi di calcolo con i quali veniva alimentata.

Le evoluzioni nel corso del XX secolo sono enormi e portano i nomi di K. Gödel, A. Turing, E. von Braun, J. Kleene, A. Church.  E molti altri ancora. Ma non bisogna dimenticare che il progresso in questo settore, soprattutto dagli ultimi anni del secolo scorso, ha riguardato la collaborazione e la cooperazione di centri di ricerca sempre più interdisciplinari. Il progresso tecnico ha iniziato a spostarsi sempre più dai singoli ingegni a gruppi sempre più ampi di collaborazione e condivisione delle attività di ricerca. Questo è dipeso dal fatto che le sfide si facevano sempre più complesse e non era più possibile incanalarle in settori e discipline ben definite; questo è risultato già evidente quando si è affrontato, in precedenza, le grandi tematiche dalle quali sono sorte le condizioni di emersione dei Big Data. Inoltre la capacità stessa della tecnologia (Internet e i network) hanno reso possibile un abbattimento quasi totale delle barriere spaziali e temporali, creando così un clima e un alveo di condivisione e collaborazione estremamente favorevole e mai realizzato in precedenza.

Questa brevissima esposizione è servita per collocare in una prospettiva storica il tema degli algoritmi; tutto con il fine di comprenderne meglio la loro collocazione e la loro portata nel contesto del quale stiamo per accingerci a parlare. Quanto appena esposto non ha la pretesa di approfondire le proprietà squisitamente formali di tale strumento; ma semplicemente quella di arricchire l’idea intuitiva che se ne può avere. E per il proseguimento di questa analisi è sufficiente.

Giungiamo così alla nascita di una nuova branca della scienza legata agli algoritmi ma che, quasi in simbiosi, si accompagna allo sviluppo dei computer, dei linguaggi e dei compilatori che traducono questi linguaggi per i computer stessi. E’ un abbraccio che con gli anni diventerà sempre più serrato e che attraverso tappe importanti, come la teoria della complessità e quella della computabilità, unite a quella dei Sistemi e alla realizzazione dei microprocessori sempre più potenti, vedranno un concorrere di forze verso la ricerca di soluzioni di problemi sempre più complessi.

Certamente la soluzione dei problemi ha costituito un potente fattore di sfida e di progresso per gli uomini di tutte le epoche. Una definizione che aderisce a questo pensiero è stata formulata da Donald E. Knuth:

“Non appena una cosa viene dimostrata impossibile a compiersi, una quantità di gente si mette al lavoro per cercare di realizzarla comunque. Questa sembra una componente essenziale del comportamento umano.”

Si può partire da qui, e riallacciarci a quanto già affrontato circa le gigantesche sfide ingaggiate da numerosi e diversi specialisti per dare risposte adeguate agli insormontabili problemi legati al progresso nelle esplorazioni e osservazioni spaziali, il Genoma umano, la fisica delle particelle e molti altri ancora.

Tutto ciò costituisce l’origine delle nuove tecnologie di trattamento dei Big Data. Processo e analisi di quantità gigantesche attraverso strumenti fisici e logici opportunamente congegnati. Le nuove tecnologie ideate per questo scopo nascono in quegli anni e si andranno perfezionando in quelli successivi, rimanendo uno standard a tutt’oggi. Parliamo di “MapReduce” di Google e “Hadoop”, una piattaforma “open source” realizzata da Yahoo, partendo da una “costola” del “Google File System” (GFS).

Questi due veri e propri ecosistemi consentivano un trattamento innovativo e, soprattutto possibile, di enormi quantità di dati sui quali poter applicare gli algoritmi di estrazione, correlazione e qualsiasi “framework” gli specialisti ipotizzassero e sottoponessero a verifica utilizzando enormi dataset messi a loro disposizione dai canali di generazione e raccolta.

Attualmente Il principale generatore di questi dati è il WEB, anche se, come già visto, non è l’unico. Ogni giorno, dai dati sulle calorie ingerite che calcola una “app” sul proprio i-pod, al codice Rfid su un libro acquistato in libreria, passando per gli acquisti fatti con carte di credito e carte fedeltà, tutto finisce nel gigantesco setaccio dell’analisi dei Big Data. Per esempio, l’analisi per sondare gli “umori” dei mercati finanziari e del commercio, e quindi, del trend complessivo della società e del fiume di informazioni che viaggiano e transitano attraverso Internet. Già da diversi anni, prima di massicci acquisti di stock azionari sui mercati finanziari, le grandi banche d’investimento compiono una pre-analisi, tramite i Big Data, allo scopo di sondare gli umori degli investitori e, sulla base di modelli standard matematici, scegliere il momento più propizio per attuare la propria strategia. Attività analoghe sono svolte dalle grandi case farmaceutiche per indirizzare la ricerca di nuovi farmaci su puntuali indicazioni prevenienti dai sondaggi volti a individuare potenziali mercati e dalle aziende di cosmetici.

Ma gli algoritmi applicati ai Big Data possono andare ben oltre. Un esempio paradigmatico è quello della pandemia influenzale. E’ ormai noto al grande pubblico l’interessante episodio legato alla individuazione dei focolai della pandemia del virus influenzale H1N1, altrimenti conosciuto come “influenza aviaria”. Nel 2009 venne isolato questo ceppo virale del quale, inizialmente, si temevano effetti molto gravi riguardo la mortalità. Un aspetto inquietante riguardava la velocità di diffusione planetaria e ciò creò allarme nelle strutture sanitarie di molti paesi dove il timore principale era quello di trovarsi, in pochi giorni, di fronte a una devastante pandemia. Negli Stati Uniti, come in generale in molti paesi occidentali, la sorveglianza sulle pandemie è affidata ai “Centers for Disease Control and Prevention (CDC)”. Questi ultimi ordinarono ai medici di segnalare tutti i nuovi casi di influenza al fine di disporre di una immagine sulla diffusione della pandemia, la più dettagliata possibile. Questa attività è una prassi consolidata da moltissimi anni, e non solo negli Stati Uniti; tuttavia nel caso del virus H1N1 i timori di una pandemia perniciosa (alcuni media, sconsideratamente la paragonarono alla influenza spagnola diffusasi dal 1918 che aveva devastato interi stati con oltre mezzo milione di contagiati e venti milioni di morti) rendeva il fattore tempo ancora più urgente di quello che già normalmente viene richiesto. Tuttavia, come era prassi consolidata, per quanto operose ed efficienti fossero le strutture mediche, le informazioni puntuali sulla pandemia avevano un ritardo di una o addirittura due settimane sulla realtà della situazione. Per la posta in gioco un’eternità. Infatti le persone colpite dal virus, prima di consultare il medico, aspettavano qualche giorno. Successivamente le informazioni e il trasferimento degli allerta alle strutture centrali richiedeva ancora tempo e infine i CDC aggiornavano i dati solo una volta alla settimana. Questo ritardo rendeva sostanzialmente cieche le autorità sanitarie.

Poche settimane prima che il virus H1N1 comparisse sulla scena mondiale le strutture tecniche di progettazione di Google avevano pubblicato uno studio sulla rivista “Nature” che aveva avuto una considerevole attenzione dagli addetti ai lavori ma totalmente ignorato – come spesso accade – fuori dagli ambienti strettamente specialistici. L’articolo spiegava come Google era in grado di “prevedere” la diffusione dell’influenza negli Stati Uniti, e non solo a livello nazionale ma anche con dettagli maggiori, come le aree geografiche e i singoli stati. Questo era possibile tramite l’analisi delle “queries” (ricerche) effettuate dagli utenti di Internet. Infatti Google riceveva (e oggi sono enormemente maggiori) e immagazzinava oltre tre miliardi di “queries”, quindi disponeva di una quantità di dati gigantesca. L’attività di Google fu, almeno in teoria, abbastanza semplice; vennero estratte i 50 milioni di parole-chiave più digitate dagli utenti americani e vennero confrontate con i dati pubblicati dai CDC sulla diffusione delle pandemie influenzali tra il 2003 ed il 2008. L’idea che presiedeva a tale attività era quella che per identificare le aree di contagio dell’influenza bisognasse analizzare le ricerche effettuate su Internet. Fin qui niente di speciale o particolarmente innovativo. Infatti già diversi attori dell’ICT e del mondo Accademico ci avevano provato. Ma nessuno disponeva ancora di una tale quantità di dati, potenza di calcolo e conoscenza in campo statistico come Google fino a quel giorno.

I ricercatori di Google, come si evince dal loro articolo, immaginavano che le ricerche precedenti alla loro si concentrassero nella individuazione di “queries” su prescrizioni e consigli sulle terapie per l’influenza, in cui le parole chiave potevano essere del tipo “farmaci per febbre e mal di gola”. Ma non erano confidenti che un tale approccio fosse completamente corretto; quindi, condizionati positivamente dal loro retroterra ingegneristico riguardo la costruzione dei loro motori di ricerca, si limitarono a fare ciò che il loro sistema faceva molto bene. Avviarono la ricerca di correlazioni tra la frequenza di determinate “queries” e la propagazione dell’influenza nello spazio e nel tempo. Si trovarono così a processare 450 milioni di modelli matematici per verificare le “queries”; confrontando le loro previsioni con i dati ufficiali ottenuti dai CDC nel biennio 2007-2008. La scelta si è rivelata vincente; infatti i loro algoritmi hanno isolato una serie di 45 parole-chiave che, abbinate a un modello matematico, evidenziavano nettamente una importante correlazione tra la previsione ottenuta e i dati ufficiali per tutto il territorio degli Stati Uniti . Esattamente come i CDC anche gli algoritmi di Google erano in grado di esibire rigorosamente la propagazione dell’influenza, ma lo facevano in tempo reale e non con uno scarto di due settimane. Nel 2009, quando esplose il caso dell’influenza “aviaria”, il sistema di Google si rivelò un indicatore insostituibile in materia previsionale rispetto al sistema statistico nazionale, fornendo informazioni fondamentali alle strutture sanitarie pubbliche.

E’ utile sottolineare che il sistema di Google non richiede accertamenti di laboratorio per verificare scientificamente la autentica presenza di un virus influenzale o anche semplicemente di una visita medica. Tutto è organizzato intorno all’ecosistema dei Big Data e si conclude al suo interno. Questo è un esempio emblematico di come la “Big Data science” possa contribuire in maniera determinante alla gestione di problematiche di enorme rilevanza generale e pubblica, mettendo in grado gli enti di governo di analizzare maggiori quantità di dati, stabilendo tra di essi relazioni di tipo causale e non più semplici statistiche, per il benessere collettivo. Questo sempre grazie a sofisticati algoritmi.

Esempi di questo tipo sono numerosi ormai e vanno dal campo della sanità pubblica a quello dell’ottimizzazione delle risorse e dell’energia e dove non sono ancora operativi, stanno contribuendo in modo determinante a creare le condizioni per un celere mutamento nella lettura delle realtà in evoluzione e delle nuove politiche operative da adottare.