sabato 20 ottobre 2018

Tutta colpa dell'Algoritmo

"Facebook cambia algoritmo", "Algoritmo impazzito", "Twitter sconfessa l'algoritmo": sono solo alcuni (estratti di) titoli di notizie recenti che hanno a che fare il mostro dei nostri tempi: l'algoritmo. Pochi giorni fa, ad un convegno in tema di privacy, una stimatissima professoressa di Diritto ha confessato che deve farsi aiutare dai tecnici a capire cosa vuol dire che "si è perso il controllo dell'algoritmo". Ne ha ben ragione: non ne ho idea neanch'io, di cosa vuol dire. Ma alla fine, cos'è 'sto algoritmo?
Dal Dizionario della lingua Italiana di De Mauro:
matematica: insieme di regole per la risoluzione di un calcolo numerico; gener., procedimento matematico
informatica: insieme di regole che forniscono una sequenza di operazioni atte a risolvere un particolare problema
Le parole su cui bisogna soffermarsi sono: regole, procedimento, risoluzione. Lo scopo di un algoritmo è trovare la soluzione di un problema; è composto da un procedimento e delle regole. Tutto qui; ma per capire meglio, guardiamolo un algoritmo (ho scelto quello che era mitico all'università, il bubble sort, che è il più efficiente tra i procedimenti di ordinamento):



In pratica, presa una sequenza di elementi, si procede a scambiare ripetutamente quelli che non rispettano l'ordinamento, finché non si arriva alla sequenza ordinata. Facile no?
In realtà, quello che mi preme sottolineare è che un algoritmo non è altro che un procedimento logico per risolvere un problema. Niente di più. Un frutto dell'ingegno umano. Che poi deve diventare qualcosa di realmente utilizzabile, tipicamente un programma software: il che vuole dire che qualcuno, che non è quasi mai chi ha "inventato" l'algoritmo, lo traduce in un linguaggio di programmazione, diventando, appunto, il programma (o parte di esso). In realtà, vale anche il viceversa: ogni programma non è altro che l'implementazione di uno o più algoritmi, che magari esistono solo nella testa del programmatore.
Ovviamente niente vieta che un algoritmo possa essere sbagliato (cioè non risolve correttamente il problema), o che lo sia il corrispondente programma (cioè il software non fa quello che prevede l'algoritmo); ma se si effettuano i dovuti controlli, la questione è marginale.
Che c'azzecca tutto ciò con gli algoritmi che impazziscono? Niente, appunto. Un algoritmo (o il computer attraverso il programma) fa ciò che gli viene detto. Il risultato è sbagliato se l'algoritmo (o il corrispondente programma) è sbagliato. Punto. A parte questo, non esistono algoritmi buoni o cattivi: buono o cattivo è lo scopo, o il risultato, dell'algoritmo.

Fin qui la teoria; la pratica è un po' più complicata. Perché gli algoritmi che, secondo alcuni, impazziscono, sono enormemente più complessi dell'esempio che ho proposto; ed è piuttosto comune (mi rifiuto comunque di considerarlo normale) che i suoi errori siano evidenziati in situazioni estreme, tipicamente dati enormi o molto diversi da quelli attesi da chi ha sviluppato l'algoritmo.
Gli algoritmi sono diventati famosi, uscendo dalle buie stanze dei nerd, con l'informatizzazione di massa, e da quando hanno iniziato ad avere effetti sulla vita dell'uomo comune: oggi vanno per la maggiore quelli che, a seconda dello scopo (o meglio, della tipologia di scopo) prendono il nome di Big Data, Intelligenza Artificiale, Machine Learning, e compagnia bella. Tutta roba bellissima per chi la studia, un po' meno per chi la subisce. Intanto perché l'abuso di questi algoritmi ci limita la libertà di scelta (vedi i risultati dei motori di ricerca: quelli che dovrebbero essere i più pertinenti sono scelti in base a criteri che non possiamo controllare); e poi perché molte volte nemmeno è chiaro come e perché si usano queste tecniche avanzatissime.

Facciamo un altro esempio, e lo prendiamo dal mondo dello sport, in particolare dalla pallavolo (chi mi conosce non ne resterà stupito). Esiste da anni la "moviola" in campo, per diverse situazioni; per stabilire la palla dentro o fuori, esistono in realtà due tecniche, una "reale" (telecamere ad alta velocità e risoluzione poste in corrispondenza alle linee) ed una "virtuale" (ricostruzione tridimensionale della traiettoria del pallone, lo stesso metodo usato nel tennis, cosiddetto occhio di falco).

 

Nessun dubbio che l'algoritmo alla base di "occhio di falco" sia corretto; tuttavia, basandosi sulla ricostruzione della traiettoria nello spazio a partire dalle immagini riprese da apposite telecamere che coprono tutto il campo (una tecnica, chiamata motion tracking, usata da più di 20 anni nel cinema, per esempio così fu generato Gollum nella trilogia del Signore degli anelli), richiede un'attentissima calibrazione e posizionamento per garantire precisione. Ma se hai una tecnica più semplice, e che non ti lascia nessun tipo di dubbio, perché usare un artificio, per quanto bellissimo e precisissimo? Eppure la prima viene utilizzata nelle competizioni italiane, e la seconda in quelle internazionali, ormai da diversi anni!

In conclusione, fermo restando che non sono gli algoritmi ad impazzire (è sempre e solo l'intelligenza umana a venire meno), è la dipendenza da essi il vero male della nostra società iperconnessa. Dove non portino effettivo beneficio per la comunità, è nostro dovere difenderci rifiutandoli, invece di lamentarci o, peggio, adeguandoci passivamente.

N.B. Il post è nato da un'idea di qualche giorno fa, ma non è un caso che sia stato scritto il giorno della finale del campionato mondiale femminile di pallavolo... serviva anche a smaltire la delusione della sconfitta (che non ha avuto nulla a che fare con decisioni arbitrali).