L’ombra della discriminazione algoritmica e la necessità della fairness
Cos’è un algoritmo? Perché e come serve all’Intelligenza artificiale? E’ dal contributo della professoressa Donatella Merlini del Dipartimento di Statistica dell’Università fiorentina, dal trasparente titolo “Dall’algoritmo all’intelligenza artificiale”, tenuto in occasione del corso di formazione per giornalisti organizzato dall’Ordine toscano con l’Università degli Studi di Firenze, che prende le mosse questa sorta di viaggio.
La nascita dell’algoritmo e le sue proprietà
Il termine algoritmo viene utilizzato nell’informatica per descrivere un metodo di risoluzione dei problemi adatto ad essere implementato tramite la programmazione di un computer. Ma come riconoscerlo?
“Per essere definito tale, un algoritmo deve possedere delle proprietà cui deve soddisfare – spiega Merlini – Innanzitutto, ogni soluzione deve essere istruita in un tempo finito e questa istruzione deve essere eseguita in un numero finito di volte. Quindi la prima proprietà che un algoritmo deve possedere è la finitezza: deve essere finito. Altra proprietà, deve essere generale, ovvero deve essere in grado di fornire la soluzione a tutti i problemi che appartengono a una determinata classe. Deve essere non ambiguo, che significa che i passi necessari per raggiungere il risultato, devono essere definiti in maniera non ambigua. Un’altra caratteristica richiesta all’algoritmo è la correttezza; in questo caso ciò che si cerca è un procedimento di calcolo che sia in grado di calcolare la soluzione corretta del problema qualsiasi sia l’input che viene dato all’algoritmo. Altra caratteristica importante, l’efficienza.
L’algoritmo non solo deve eseguire certe azioni, ma deve farlo in maniera efficiente: non solo in termini di tempi di esecuzione, ma anche di occupazione di memoria ad esempio, ovvero quanto spazio di memoria verrà richiesto per eseguire certi compiti”. Un esempio di algoritmo in cui si vedono le caratteristiche esposte, è quello per l’esecuzione di un’equazione di secondo grado. L’algoritmo deve essere in grado di esplorare tutte le possibilità, e anche i casi particolari.
Cos’è un algoritmo efficiente
Per passare dall’algoritmo all’Intelligenza Artificiale bisogna chiarire innanzi tutto cosa sia un algoritmo efficiente. Per farlo, la professoressa Merlini ricorre all’esempio dell’ordinamento. “Abbiamo una lista L, che contiene N valori, e vogliamo ordinarla in ordine crescente o decrescente. Un problema con cui si ha a che fare spesso, ad esempio tutte le volte che si fa una ricerca su Google, quando abbiamo come risposta una lista di risultati ordinati secondo i criteri che Google giudica adeguati a fornire la risposta più opportuna”.
In realtà, esistono tanti algoritmi diversi che permettono di risolvere questo problema. “Quando si vuole valutare l’efficienza di un algoritmo, si ha la necessità di scegliere un parametro che sia indipendente dalla particolare implementazione e anche dalla piattaforma su cui l’algoritmo viene utilizzato. Nel caso degli algoritmi d’apprendimento, ad esempio, il tipico parametro che si utilizza è il numero dei confronti che si eseguono per arrivare al risultato. Uno degli algoritmi più semplici è quello di selezione, ma utilizzando il numero dei confronti come parametro di efficienza, l’heap sort è uno degli algoritmi più validi”.
Dall’algoritmo all’intelligenza artificiale
Dato conto per sommi capi dell’algoritmo, si può passare all’intelligenza artificiale, ormai nota universalmente come AI. L’AI comprende moltissime attività, dai sistemi che vengono utilizzati per l’elaborazione del linguaggio naturale (ChaptGPT è senz’altro quello più noto), ma ci sono altre applicazioni, per esempio per l’elaborazione intelligente dei documenti, per attivare il riconoscimento di immagini, volti, di oggetti, di sistemi di raccomandazione, ovvero quelli che ci raccomandano ciò che si dovrà vedere su Netflix o altro sulla base di quanto visto in precedenza, fino alle applicazioni fisiche dell’AI, dalle auto munite di blocco automatico ai robot che tagliano l’erba o si cominciano a vedere nei ristoranti a servire il cibo.
“L’idea alla base è quella di poter sviluppare macchine, sia software che hardware, che siano dotate di capacità autonome di adattamento e apprendimento ispirate ai modelli di apprendimento umano. Alla base di tutte queste applicazioni ci sono algoritmi e tecniche computazionali – spiega Merlini – in particolare, gli algoritmi che sono dietro l’AI sono algoritmi di machine learning“.
Cos’è un algoritmo di machine learning?
Secondo la definizione ritenuta più corretta, quella di Tom Mitchell che risale al 1997, “Si dice che un programma apprende dall’esperienza E con riferimento a alcune classi di compiti T e con misurazione della performance P, se le sue performance nel compito T, come misurato da P, migliorano con l’esperienza E.”. Si potrebbe forse semplificare così, c’è stato apprendimento quando il programma svolge le prestazioni richieste migliorandole dopo un compito svolto.
Tornando a quanto spiega la professoressa Merlini, per meglio comprendere la definizione di Mitchell, possiamo partire dall’esperienza citata dalla definizione. Cos’è l’esperienza? “L’esperienza è tipicamente rappresentata da un dataset di training, che tipicamente viene utilizzato per costruire il modello di apprendimento” . Il dataset è un insieme di dati strutturati (come potrebbe essere una tabella) creato per poter essere letto ed elaborato da un algoritmo.
Come funziona un algoritmo di machine learning?
L’algoritmo di machine learning, riassumendo, risolve un compito specifico, partendo da un dataset di training. Il passo successivo è la valutazione del modello che si ottiene. Per fare queste valutazioni, sono necessarie delle misure e “P rappresenta la misura che viene adottata per valutare la bontà del metodo che si va a considerare. Ce ne sono tante, fra le più utilizzate l’accuratezza e il tasso di errore”. Riassumendo, “abbiamo immaginato una tabella, con dei record, tante informazioni e caratteristiche. Però ho necessità di scegliere un algoritmo di machine learning a seconda del problema che voglio risolvere: classificazione, regressione, traduzione da una lingua all’altra, ecc. L’applicazione dell’algoritmo sul training set mi restituisce un modello, un modello di apprendimento”.
Questo modello di apprendimento, generato tramite un algoritmo, è a sua volta un algoritmo. Un algoritmo che posso utilizzare su nuovi dati e, per valutare il modello, “lo devo applicare a un test set, per capire quanto il modello di apprendimento mi permette di fare deduzione rispetto al training set iniziale”.
Tecniche di machine learning: apprendimento supervisionato e non supervisionato
Fra le tecniche di machine learning, ci sono svariati approcci. I due approcci principalmente utilizzati sono l‘apprendimento supervisionato e l’apprendimento non supervisionato. “Si ha un addestramento supervisionato quando, ad ogni record del dataset di training, è associata un’etichetta o categoria. Appartiene a questa tipologia la classificazione”, specifica Merlini. Tuttavia ci sono altre tecniche che non hanno la necessità di conoscere qual è la categoria di appartenenza di ogni elemento del dataset; in un certo senso l’algoritmo va egli stesso a creare le categorie di appartenenza.
Tornando all’apprendimento supervisionato e alla classificazione su cui si è deciso di mantenere il focus (ricordiamo che l’obiettivo è quello, date le categorie, di assegnare le categorie agli oggetti, secondo le caratteristiche prescelte), fra gli algoritmi che permettono di fare classificazione si trovano gli alberi di decisione. “L’idea di fondo è, sempre partendo da dataset di learning, di costruire un albero con radice, in cui ci sono nodi interni e nodi che corrispondono a foglie. Ai nodi interni corrispondono delle regole di partizionamento che hanno come obiettivo la suddivisione di dati del training set in sottogruppi con la caratteristica di avere più o meno tutti, la stessa categoria. I nodi invece che sono foglie, fanno riferimento alla categoria prevista. Una volta che l’albero è stato costruito, si ottiene il modello di apprendimento, ovvero il modello di classificazione e, se sorge la necessità di classificare un nuovo record sconosciuto, si dovrà attraversare questo albero a partire dalla radice per giungere alle foglie, in cui si trova la categoria cui può essere associato”. Gli alberi di decisione sono semplici, ma non danno i risultati migliori.
Algoritmi complessi: le reti neurali
Algoritmi più complessi ma più accurati sono le reti neurali, ovvero algoritmi che cercano di simulare il comportamento del cervello umano (dove si trovano circa 100 miliardi di neuroni ). “Le reti neurali possono avere una struttura anche molto complessa, costituita da nodi che simulano i neuroni, nodi interconnessi da collegamenti e, a questi collegamenti, è associato un peso, che potremmo dire che indica la forza della connessione fra i nodi coinvolti. L’obiettivo della rete è quello di restituire una funzione, che poi permetta di classificare in modo corretto i dati del training e sperabilmente anche quelli test set”. Come funziona? “La finalità è quella di andare a verificare i pesi che sono associati ai collegamenti fra i vari nodi, finché questi non riescono ad adattarsi e a riconoscere i dati su cui la rete viene addestrata”.
Anche con una rete neurale semplicissima, un data set che contiene pochi elementi, sono necessarie diverse scansioni del dataset, per potere arrivare a un’approssimazione buona della funzione di classificazione. Nelle situazioni reali, con reti neurali che contengono enormità di nodi con data set con tanti record e tante caratteristiche, si ottengono delle scatole nere, ovvero delle funzioni che neanche i più esperti sono in grado di valutare.
Il ruolo dei dati nella definizione di algoritmo
Questi cenni di funzionamento ai meccanismi del machine learning, dal momento che si basano sui dati di training, fanno emergere il ruolo centrale dei dati nella definizione dell’algoritmo. Se i dati sono distorti, saranno distorte anche le previsioni che il modello di classificazione farà. “In letteratura ci sono tanti esempi di algoritmi di machine learning che hanno suggerito decisioni discriminatorie e discutibili”, sottolinea Merlini. Ci sono vari esempi in merito, come prodotti software utilizzati per valutare curriculum che discriminano in quanto costruiti su dataset che contengono delle distorsioni. “L’esempio forse più conosciuto è quello del riconoscimento facciale, con software addestrati a riconoscere certe etnie di persone, che su altre etnie non erano in grado di rispondere in modo corretto”.
L’algoritmo e le sue sfide: la ricerca, la fairness e i dataset
Gli algoritmi possono aiutare a migliorare l’efficienza e l’accuratezza in tanti settori, come quello medico, e quello della ricerca scientifica; accanto a ciò, ci sono tutta una serie di preoccupazioni, legate all’uso di questi strumenti, dalla perdita di posti di lavoro, alla lesione della privacy e della sicurezza dei dati, alla possibile discriminazione algoritmica”.
E’ su alcune sfide importanti che si gioca il futuro. Una, quella della ricerca. “La ricerca in questo settore è molto attiva, e l’obiettivo è quello di progettare algoritmi di machine learning che rispettino la fairness. Fairness è il termine usato in questo contesto per indicare tutte quelle caratteristiche di correttezza, rispetto dell’individuo, giustizia, che ci aspettiamo da questi sistemi intelligenti”, spiega Merlini. Le direzioni in cui possiamo andare, se mancasse la fairness, sono, innanzitutto, il dataset distorto, ovvero con dati già “bacati” in partenza. Inoltre, si può avere anche la distorsione dell’algoritmo, perché definire un algoritmo di apprendimento vuol dire fare delle scelte, sia, ad esempio, nell’architettura della rete neurale che nelle scelte nella funzione che poniamo in uscita, ma anche il modo in cui vogliamo valutare l’algoritmo. Infine, “non dimentichiamoci che ci possono essere stereotipi e pregiudizi che sono insiti nel dataset”, per quanto si possa fare attenzione nella scelta dei dati input.
L’importanza della formazione
Il secondo punto importante , dice Merlini, è la formazione. “E’ necessario avere esperti del settore, e in particolare “esperte”, dal momento che in questo settore c’è una prevalenza maschile”. Una prevalenza che si traduce nell’apporto anche inconscio, a livello di dati input, di stereotipi inquinanti anche a livello squisitamente scientifico. L’inserimento di stereotipi nei dati è questione molto seria, su cui c’è ampia letteratura. Fra gli stereotipi prevalenti, c’è quello dell’informatico, “maschio e nerd”. E’ un problema ben noto a livello mondiale. Il problema ha un peso scientifico non indifferente, dal momento che nei team di sviluppo degli algoritmi di intelligenza artificiale, c’è mancanza di voci. Mancano ad esempio non soltanto le donne, ma tutta una serie di soggetti, il che comporta l’impoverimento strutturale del data set. Ciò compromette anche, consciamente o meno, il grado di scientificità (e, aggiungeremmo noi, di attendibilità) del risultato.
Un report del 2021 sulla discriminazione algoritmica in Europa, secondo un punto di vista essenzialmente giuridico, è stato pubblicato dalla Commissione europea, Direzione generale della Giustizia e dei consumatori, Gerards, J., Xenidis, R., Discriminazione algoritmica in Europa – Sfide e opportunità per la parità di genere e il diritto alla non discriminazione, Ufficio delle pubblicazioni, 2021, https://data.europa .eu/doi/10.2838/544956.
Questo articolo è stato pubblicato sul magazine Thedotcultura e scritto da Stefania Valbonesi
Link utili:
Professoressa Donatella Merlini: Linkedin / Università degli Studi di Firenze