La parola “algoritmo” è ormai di uso comune. Ma quando si discute degli algoritmi di YouTube o Facebook, di cosa si parla esattamente? Cosa sono questi algoritmi e perché suscitano così tante lamentele?
Gli algoritmi: una sequenza di istruzioni per risolvere problemi
Viviamo in un’epoca in cui i computer sono onnipresenti, pur essendo compresi solo superficialmente. Tuttavia, esiste un campo dell’informatica in cui le basi sono accessibili a tutti: la programmazione.
La programmazione, benché non sia considerata un’attività affascinante, costituisce il fondamento di ogni software, da Microsoft Office ai sistemi automatici di chiamata. Anche se la tua conoscenza della programmazione è limitata a vecchi film e notizie bizzarre, probabilmente non hai bisogno di ulteriori spiegazioni sul ruolo di un programmatore. In sostanza, un programmatore crea codice che il computer segue per eseguire compiti o risolvere problemi.
Nel contesto dell’informatica, un algoritmo non è altro che un termine tecnico per definire il codice. Qualsiasi insieme di istruzioni che guida un computer nella risoluzione di un problema è un algoritmo, a prescindere dalla semplicità dell’operazione. Anche l’accensione di un computer si basa su una serie di istruzioni predefinite. Allo stesso modo, quando un computer della NASA elabora dati per creare immagini dello spazio, sta eseguendo un algoritmo.
La parola “algoritmo” può essere utilizzata per descrivere qualsiasi serie di istruzioni, anche al di fuori dell’ambito informatico. Ad esempio, il modo in cui organizzi le posate nel cassetto è un algoritmo, così come la procedura per lavarsi le mani dopo aver usato il bagno.
Tuttavia, la parola “algoritmo” tende ad essere associata a discussioni tecniche molto specifiche. Raramente si sentono persone parlare di “algoritmi di matematica elementare” o di “algoritmi dello strumento per graffiti di MS Paint”. Invece, gli utenti di Instagram si lamentano degli algoritmi per i suggerimenti di amicizia, mentre i gruppi a difesa della privacy contestano gli algoritmi di raccolta dati di Facebook.
Se “algoritmo” è un termine generico per le istruzioni computazionali, perché viene utilizzato principalmente per descrivere aspetti oscuri, misteriosi e talvolta controversi del mondo digitale?
La confusione tra “algoritmi” e “apprendimento automatico”
In passato, programmatori e cultura popolare tendevano a riferirsi alle istruzioni di calcolo come “codice”. Questo è ancora vero nella maggior parte dei casi. L’apprendimento automatico, o machine learning, è l’area complessa dell’informatica in cui si preferisce usare la parola “algoritmo” anziché “codice”. Questo ha contribuito alla confusione e al disagio che circondano il termine “algoritmo”.
L’apprendimento automatico esiste da tempo, ma ha acquisito rilevanza nel mondo digitale negli ultimi quindici anni. Nonostante possa sembrare complesso, il concetto è semplice: i programmatori creano codice che è in grado di auto-generarsi. Invece di scrivere codice specifico per ogni situazione, scrivono codice che può apprendere e adattarsi.
Consideralo una forma più pratica di intelligenza artificiale. Se contrassegni ripetutamente le email del tuo capo come spam, il tuo client di posta inizierà a smistarle automaticamente nella cartella spam. Allo stesso modo, Google utilizza l’apprendimento automatico per garantire che i risultati di ricerca su YouTube siano pertinenti, e Amazon lo utilizza per suggerire prodotti da acquistare.
Naturalmente, l’apprendimento automatico non è perfetto. Il termine “machine learning” può suonare inquietante per alcuni, e alcuni dei suoi usi più diffusi sono eticamente discutibili. Gli algoritmi che Facebook utilizza per la raccolta dati o per indirizzare gli utenti sul web sono un esempio controverso di apprendimento automatico.
Nei media, si parla spesso di “algoritmo di Google” per il posizionamento dei risultati di ricerca, “algoritmo di YouTube” per i suggerimenti video e “algoritmo di Facebook” per decidere quali post visualizzare. Questi sono tutti argomenti di discussione e dibattito.
Perché gli algoritmi sono controversi
La divisione lunga è un algoritmo familiare, tra i tanti altri, per la divisione dei numeri. Solo che viene eseguita da studenti anziché da computer. La tua CPU Intel utilizza un algoritmo completamente diverso quando divide i numeri, ma il risultato è sempre lo stesso.
La sintesi vocale si basa sull’apprendimento automatico, ma nessuno parla dell'”algoritmo” della sintesi vocale, perché esiste una risposta oggettivamente corretta che chiunque può riconoscere. A nessuno interessa il “come” il computer capisce cosa dici, o se si tratta di apprendimento automatico. Ciò che importa è se il risultato è corretto.
Ma altre applicazioni dell’apprendimento automatico non hanno una risposta “giusta” predefinita. Ecco perché gli algoritmi sono diventati un argomento di discussione frequente nei media.
Un algoritmo per ordinare alfabeticamente una lista è solo un modo per eseguire un compito definito. Ma algoritmi come quelli di Google per “classificare i migliori siti web per una ricerca” o di YouTube per “consigliare i video migliori” sono più vaghi e non svolgono un’attività ben definita. Le persone possono discutere se tali algoritmi stiano producendo i risultati desiderati, e avranno opinioni diverse al riguardo. Invece, nell’esempio dell’ordinamento alfabetico, tutti concordano sul fatto che la lista è in ordine alfabetico come dovrebbe essere. Non ci sono polemiche.
Come dovremmo usare la parola “algoritmo”?
Gli algoritmi sono alla base di tutti i software. Senza algoritmi, non avresti uno smartphone o un computer, e probabilmente staresti leggendo questo articolo su carta (o, più precisamente, non lo leggeresti affatto).
Tuttavia, il pubblico non usa la parola “algoritmo” come termine generico per il codice. Anzi, molti pensano che ci sia una differenza tra codice e algoritmo, ma non è così. A causa dell’associazione con l’apprendimento automatico, il significato della parola “algoritmo” è diventato più ambiguo, ma il suo utilizzo più specifico.
Dovremmo iniziare a usare la parola “algoritmo” anche per descrivere semplici porzioni di codice? Probabilmente no, perché non tutti capirebbero. La lingua cambia per necessità, e le persone hanno bisogno di una parola per descrivere il mondo oscuro e spesso discutibile dell’apprendimento automatico. “Algoritmo” sta diventando quella parola, almeno per il momento.
Detto ciò, è utile ricordare che un algoritmo, e anche l’apprendimento automatico, è semplicemente un insieme di codice scritto per risolvere compiti. Non c’è magia, è solo un’iterazione più complessa del software con cui abbiamo già familiarità.
Fonti: Ardesia, Wikipedia, GeeksforGeeks