Sei in: Home » Ricerca » Terza Missione » Big Data » Saverio Caminiti - Responsabile Ricerca e Sviluppo, K-Tech s.r.l. (Roma)

Saverio Caminiti - Responsabile Ricerca e Sviluppo, K-Tech s.r.l. (Roma)

di Luigi Crimella

Ci inchineremo tutti al “Dio-Algoritmo”?

“Data mining”, “machine learning”, “deep learning”, “computational thinking”: sono alcune delle formule che vanno per la maggiore nel linguaggio che descrive il mondo dei Big Data e della loro utilizzazione ai più diversi livelli. Il mondo degli algoritmi e degli specialisti che li creano e fanno funzionare sta sempre più affascinando l’immaginario collettivo, come si trattasse di una sorta di nuovo Eldorado, o addirittura di una nuova “divinità” in grado di risolvere i problemi dell’umanità. Per comprendere e penetrare in questo alone misterioso del “Dio-Algoritmo”, abbiamo intervistato uno specialista del settore. Si tratta di Saverio Caminiti, laurea e dottorato di ricerca in Informatica, che ha lavorato come ricercatore presso la University of Central Florida (Orlando, USA), la Eötvös Loránd University (Budapest, Ungheria), il CNR e l'Università degli Studi di Roma "La Sapienza", presso la quale mantiene un carico didattico. Esperto di informatica teorica e algoritmi, ha al suo attivo più di venti pubblicazioni su riviste e conferenze internazionali. Cofondatore nel 2013 di una delle prime start-up italiane per la Realtà Aumentata, ora lavora presso K-Tech s.r.l. occupandosi di ricerca e sviluppo di progetti strategici di rilievo internazionale principalmente in ambito web e mobile.

 

I Big Data, da molte parti indicati come la chiave di lettura e il punto di forza (il “petrolio”) della società digitale, vengono raccolti, organizzati, analizzati e utilizzati a vari livelli tramite potenti algoritmi di calcolo. Ci vuole spiegare in cosa consiste un algoritmo?
CAMINITI - Un algoritmo è una sequenza di istruzioni elementari che, a partire da un dato iniziale (input), derivano un risultato desiderato (output). In parole più semplici è una via di mezzo tra una formula matematica e una ricetta culinaria: come una ricetta ci dice, tramite una sequenza di azioni da compiere, come trasformare gli ingredienti iniziali nel piatto desiderato ma, proprio come nel calcolo di una formula matematica, il processo deve essere scomposto in passi così elementari da poter essere eseguiti da chiunque senza alcuna decisione arbitraria. L’algoritmo incapsula quindi tutta “l’intelligenza” necessaria per portare a termine un compito complesso fondando la garanzia del risultato solo sulla capacità necessaria a completare ogni singolo passo elementare in esso contenuto. Proprio quest’ultima caratteristica fa si che anche una macchina, un oggetto assolutamente privo di intelligenza, possa eseguire compiti anche più complessi di quelli che un singolo essere umano sarebbe in grado di portare a termine.
Gli algoritmi (il termine deriva dal nome del matematico persiano del VIII secolo d.C. Abū Jaʿfar Muḥammad ibn Mūsā al-Khwārizmī) così importanti nell’era informatica, sono in verità sempre esistiti: in molti abbiamo imparato alle scuole elementari gli algoritmi per fare le divisioni in colonna o la prova del nove. L’esempio più antico di algoritmo noto è il Crivello di Eratostene (III secolo a.C.) che permette di capire se un dato numero è o no un numero primo. Stupisce pensare che tutt’oggi, a distanza di più di 2200 anni, la sicurezza della maggior parte dei sistemi crittografici usati in ogni ambito (dal commercio elettronico alla comunicazioni militari) fondano sull’assunzione che sia algoritmicamente complesso scomporre un numero nei numeri primi che lo compongono.

Chi crea un algoritmo e ne avvia l’utilizzo, sia esso azienda o università o centro di ricerca o privato cittadino, si può considerare il legittimo e unico proprietario dello stesso?
CAMINITI - Anzitutto chiariamo che un algoritmo di norma è una descrizione teorica di un processo, prima di avviarne l’esecuzione su un computer è necessario passare dalla teoria alla pratica: si deve implementare l’algoritmo, ovvero scrivere un software utilizzando un linguaggio di programmazione. Solo a questo punto è possibile eseguirlo su un computer (o su una rete di computer) per fargli processare i dati su cui vogliamo che esegua il calcolo.
Non c’è dubbio circa la proprietà del software scritto che può essere considerato a tutti gli effetti un bene, anche se digitale. Molto più discutibile è la proprietà intellettuale dell’idea algoritmica alla base di un dato software. Un algoritmo in fondo è poco più di una complessa formula matematica. Viene da chiedersi se il teorema di Pitagora sia di “proprietà di Pitagora” e se gli eredi possano chiedere il pagamento di una royalty a chiunque lo utilizzi per calcolare l’ipotenusa di un triangolo.
Io preferisco pensare che la conoscenza sia patrimonio di tutti e che solo sugli artefatti da essa derivati si possa vantare la proprietà individuale.
Lo scenario si complica ulteriormente se consideriamo che sia un algoritmo, sia la sua implementazione software si compongono spesso di migliaia di istruzioni e rimandi ad altri algoritmi noti ed è praticamente sempre possibile trovare alcune istruzioni che, anche se eseguite in un ordine diverso da quello dato, di fatto non alterano il risultato calcolato. Questo significa che è relativamente facile analizzare un software ed estrapolarne i passi salienti per riscriverlo in maniera alternativa ma equivalente. In Italia un tale procedimento che va sotto il nome di reverse engineering, è illecito (con alcune eccezioni); ma in altri paesi vigono leggi differenti.

Il caso del motore di ricerca di Google, con il suo potentissimo algoritmo che consente risposte in frazioni di secondo dopo aver analizzato milioni di possibilità, può considerarsi il “campione mondiale” degli algoritmi? Oppure ne esistono anche di più potenti?
CAMINITI - Non penso possa esistere un “campione mondiale” degli algoritmi, semplicemente perché algoritmi volti a calcoli differenti non sono tra loro comparabili. Sarebbe come mettere sullo stesso piano sportivi che eccellono in discipline diverse: chi è il migliore tra un campione di Formula 1 e il capitano di una squadra di basket? Sicuramente l’algoritmo di PageRank — che è alla base della capacità di Google di produrre velocemente risultati inerenti alla ricerca fatta tra miliardi di pagine indicizzate — è un ottimo esempio di come nell’era informatica il giusto algoritmo possa essere determinante per la vittoria. Google riuscì a scalzare praticamente tutti gli altri motori di ricerca esistenti in pochi anni. Questa posizione dominante è stata però poi consolidata con strategie di marketing, investimenti in ricerca e in infrastrutture, ecc.
Altri esempi eccellenti di algoritmi si trovano in vari ambiti, volendo fare qualche esempio potrei citare:

  • il sequenziamento del DNA umano: gli algoritmi usati devono riorganizzare i frammenti di una sequenza lunga più di 3 miliardi di coppie di basi;
  • l’analisi di dati scientifici come quelli prodotti dall’acceleratore di particelle del CERN di Ginevra (fino a 25 Gigabyte di informazioni al secondo);
  • le criptovalute (un Bitcoin valeva pochi centesimi nel 2010, ora vale decine di migliaia di dollari): in mancanza di un ente di gestione centrale sono degli algoritmi distribuiti che decidono tutto e certificano la proprietà individuale.

Se volessimo valutare il tasso di penetrazione degli algoritmi a livello di funzioni sociali oltre che di applicazioni economiche e statistiche, cosa si potrebbe dire?
CAMINITI - Ogni giorno ascoltiamo musica, guardiamo la tv, scattiamo foto usando algoritmi di codifica e decodifica multimediali; comunichiamo con persone lontane con Internet e cellulari usando algoritmi di instradamento delle informazioni; paghiamo con bancomat e carte di credito al supermercato o online usando algoritmi crittografici per garantire la sicurezza dei nostri soldi; persino i nostri elettrodomestici “intelligenti” usano degli algoritmi per decidere al posto nostro come lavarci i vestiti. Dal navigatore che abbiamo in auto alle rotte degli aerei, anche i nostri spostamenti sono spesso scelti da algoritmi. Sempre gli algoritmi hanno un ruolo fondamentale nei progressi in campo medico, sia per l’avanzamento scientifico, sia per la realizzazione di macchinari sempre più sofisticati.
In ambito sociale è sempre più evidente l’impatto che ha la possibilità di raccogliere ed elaborare l’opinione di grandi gruppi di persone in tempo reale, a partire dal semplice show televisivo che esorta gli spettatori ad interagire con i social network, fino ad arrivare ai partiti politici.
Algoritmi di Blockchain (alla base delle criptovalute) sono ora usati anche per forme di voto elettronico più affidabili di quelle usate in passato. Sicuramente tutto questo ha ripercussioni anche in ambito politico in quanto modifica il significato stesso di rappresentanza popolare e quindi di democrazia.

Non c’è il rischio, in questa società sempre più algoritmo-dipendente, di trovarci alle prese con una ristrettissima super-elite di cibernetici che di fatto possono controllare e magari anche dominare la massa degli “analfabeti digitali”, cioè di coloro che non conoscono la scienza del coding?
CAMINITI - Sicuramente no: sempre più persone imparano a programmare computer, e non soltanto quelle con una formazione scientifica. Si trovano moltissime fonti per imparare a programmare, anche da autodidatti; in generale la comunità informatica è molto aperta alla condivisione globale non solo della conoscenza ma anche del codice scritto: esistono software opensource praticamente per ogni esigenza il cui codice sorgente è reso pubblico dagli autori.
Inoltre definirei “analfabeti digitali” non tanto quelli che non sanno programmare, ma piuttosto coloro che non riescono ad utilizzare gli strumenti che l’informatica mette a disposizione sia per scopi professionali che di comunicazione. Costoro in effetti rischiano, già ora e sempre più in futuro, di essere tagliati fuori dalla nostra società.

Così come nel secolo scorso siamo usciti dall’ignoranza diffusa con l’introduzione della scolarizzazione obbligatoria, è pensabile che in un prossimo futuro si esca dall’ignoranza informatica diffusa con programmi di alfabetizzazione tecnologica obbligatoria fin dalla più tenera età?
CAMINITI - Non solo è pensabile, ma è inevitabile. In Svezia, ad esempio, dal prossimo anno tutti i bambini studieranno coding fin dalle scuole elementari. Può sembrare strano ma si può iniziare a “pensare” in codice prima ancora di saper scrivere. Il così detto Computational Thinking, il pensiero computazionale, è infatti la capacità di descrivere un problema e la sua soluzione in termini di passi elementari: è la base per capire gli algoritmi e poter programmare computer.
Sono passati ormai 50 anni dalla presentazione del linguaggio Logo, esperimento volto proprio ad avvicinare i bambini alla programmazione, le cui istruzioni permettevano di tracciare linee facendo muovere sullo schermo una tartarughina (in verità era un semplice triangolo, ma i bambini hanno tanta fantasia). Questo anniversario è stato ricordato da Google il 4 dicembre 2017 mettendo in prima pagina un gioco in cui il movimento di un coniglio in cerca di carote su una scacchiera deve essere programmato in maniera visuale, utilizzando le 4 direzioni come istruzioni elementari di movimento e dei cicli per ripetere sequenze complesse di istruzioni elementari.

La capacità “predittiva” degli algoritmi viene presentata come una delle prerogative più interessanti. Esiste qualche altra applicazione, al momento meno nota o non ancora sviluppata, che possa ulteriormente accentuare il ruolo degli algoritmi nella ricerca e analisi sociale ed economica?
CAMINITI - In verità un algoritmo non è in grado di fare nulla più di chi lo programma in termini qualitativi, lo è invece in termini quantitativi. Su piccole quantità di informazioni quindi un algoritmo è in grado di fare le stesse previsioni che farebbe chi lo ha scritto, ma grazie ai progressi tecnici e alla potenza di calcolo degli odierni computer, gli algoritmi possono analizzare moli enormi di dati e trovare significati e correlazioni la dove nessun umano potrebbe. Gli algoritmi di Data Mining sono appunto quelli che analizzano i Big Data per estrarne informazioni significative. Particolarmente promettente sembra anche la spinta che l’ambito dell’intelligenza artificiale ha avuto negli ultimi anni con gli algoritmi di Deep Learning. Questo tipo di algoritmi permettono ai computer non solo di mostrare comportamenti molto simili a quelli umani ma anche di scoprire nuovi pianeti o battere campioni mondiali di scacchi e go (antichissimo gioco di strategia cinese).

(22 dicembre 2017)
©Riproduzione Riservata


Bibliografia di riferimento

Corsi di Laurea Master e Post Laurea

Ateneo partner o membro di