Il 31 maggio 2023 il responsabile di Instagram, Adam Mosseri, pubblicò un articolo per spiegare come l’app decide che cosa mostrare. La frase che conta sta all’inizio: Instagram non ha un algoritmo unico che governi ciò che le persone vedono o non vedono. Feed, Storie, Esplora, Reel e ricerca hanno ciascuno il proprio sistema di classifica, tarato su come quella parte dell’app viene usata. Chi lavora in comunicazione ha però un’abitudine opposta. Nelle riunioni «l’algoritmo» penalizza un post, premia un video, decide il budget, si arrabbia con un tema. Un nome singolare, trattato come se fosse una persona.
Il guaio è che la parola, usata così, impedisce di fare le domande giuste. Un algoritmo, nel senso in cui lo usano i matematici e chi scrive programmi, ha una struttura definita e verificabile. Quella struttura permette di dire che cosa può fare, che cosa costa e dove si rompe. Questo pezzo parte da lì: che cos’è, com’è fatto, che cosa vuol dire quando le regole non le scrive più una persona. Solo dopo viene il modo in cui lavora nel marketing e nella comunicazione, con qualche calcolo eseguito dalla redazione per vedere i meccanismi senza fidarsi dei racconti.
Che cosa si intende, in senso stretto
Il nome viene da Muhammad ibn Musa al-Khwarizmi, il matematico persiano del IX secolo il cui nome indicava l’origine, la regione del Khwarazm. Il latino medievale lo storpiò in algorismus. In francese antico algorisme, nel Duecento, indicava il sistema di calcolo con le cifre arabe. La forma moderna con la «th» compare nella Francia del Seicento, per un accostamento sbagliato al greco arithmos, numero. Soltanto nel Novecento, dalla metà del secolo in poi, la parola passa ad indicare le procedure di calcolo dei computer.
L’esempio più antico ancora in uso è più vecchio di al-Khwarizmi di oltre mille anni. Euclide lo descrive negli Elementi, libro VII, intorno al 300 avanti Cristo, per trovare il massimo comune divisore di due numeri. Donald Knuth, l’autore del trattato di riferimento, The Art of Computer Programming, lo chiama il più antico algoritmo non banale arrivato fino ad oggi. Euclide lo formulava con sottrazioni ripetute; la forma con i resti, equivalente, è questa: si divide il numero maggiore per il minore, si tiene il resto, poi si ripete la divisione tra il minore e il resto, finché il resto è zero. L’ultimo divisore è il risultato. Con 1071 e 462:
| Passo | Operazione | Resto |
|---|---|---|
| 1 | 1071 = 2 × 462 + 147 | 147 |
| 2 | 462 = 3 × 147 + 21 | 21 |
| 3 | 147 = 7 × 21 + 0 | 0 |
Il massimo comune divisore è 21. Su una procedura così piccola si vedono già le cinque proprietà che Knuth chiede ad un algoritmo, nell’edizione del 1973 del primo volume. Deve avere un ingresso: valori dati prima di cominciare, qui i due numeri. Deve avere un risultato legato in modo preciso all’ingresso, qui il divisore. Deve essere finito: si ferma sempre dopo un numero di passi finito, per Knuth ragionevole e non soltanto finito in teoria. Deve essere definito: ogni passo è specificato in modo rigoroso e non ambiguo, senza lasciare scelte a chi lo esegue. E deve essere eseguibile: le operazioni sono così elementari che una persona con carta e penna, in linea di principio, potrebbe farle esattamente. Knuth stesso ammetteva che termini come «definito» ed «elementare» sono chiari ad intuito e non formalizzati. Servono comunque come test: un testo che non li soddisfa è una ricetta, un desiderio, o una descrizione di marketing.
Tre mattoni e uno stato
I materiali di costruzione sono pochi. Nel 1966 Böhm e Jacopini dimostrarono che ogni diagramma di flusso, per quanto aggrovigliato, si può riscrivere usando soltanto tre costrutti: la sequenza (fai questo, poi quest’altro), la selezione (se la condizione è vera fai una cosa, altrimenti un’altra), l’iterazione (ripeti finché la condizione resta vera). Il teorema ha qualche avvertenza tecnica, per esempio la necessità di variabili aggiuntive, ma il messaggio è semplice: con tre mattoni si compone qualsiasi calcolo che un computer sappia fare.
Un’avvertenza di vocabolario: l’algoritmo è la procedura astratta, il programma è la sua scrittura in un linguaggio che un computer esegue, il sistema è il programma con i dati e le macchine su cui gira. Euclide ha lasciato un algoritmo, non un programma. Ai mattoni va aggiunto lo stato, cioè ciò che la procedura ricorda mentre lavora. Nell’esempio di Euclide sono i due numeri che cambiano ad ogni giro. In un’automazione di marketing è la data dell’ultimo invio, o il fatto che un cliente abbia già ricevuto uno sconto. Un caso concreto, scritto in pseudocodice:
per ogni cliente nella lista:
se giorni dall'ultimo acquisto > 60 e valore del carrello abbandonato > 50 euro:
se ha ricevuto lo sconto negli ultimi 90 giorni:
non fare nulla
altrimenti:
invia l'email con lo sconto
registra la data di invio
Ci sono tutti gli ingredienti: un’iterazione sulla lista, due selezioni annidate, una sequenza di due azioni, uno stato che si aggiorna. La lista è finita, quindi la procedura termina. Ogni passo è definito, perché «60 giorni» e «50 euro» non si prestano ad interpretazioni. Se invece al posto della condizione ci fosse scritto «se il cliente sembra disinteressato», la terza proprietà cadrebbe: due persone, o due versioni dello stesso software, deciderebbero in modo diverso. Per eseguire un’istruzione bisogna prima definire il termine: da qui parte ogni discussione seria sulle metriche.
Un altro esempio di iterazione, più vicino al marketing, è il PageRank con cui Larry Page e Sergey Brin classificarono le pagine web nel 1998. Ogni pagina distribuisce il proprio punteggio tra le pagine a cui rimanda, con un fattore di smorzamento che gli autori fissano di solito a 0,85. Il calcolo si ripete finché i punteggi smettono di cambiare in modo apprezzabile. Su un grafo minuscolo di quattro pagine inventate (A rimanda a B e C, B a C, C ad A, D a C) la redazione ha eseguito il calcolo nella versione normalizzata, in cui i punteggi sommano 1: la procedura si ferma dopo 28 giri con punteggi di 0,394 per C, 0,373 per A, 0,196 per B e 0,038 per D, la pagina a cui nessuno rimanda. Il criterio di arresto, «fermati quando il cambiamento è minore di una soglia», è una scelta di chi progetta: ne dipende la proprietà della finitezza.
Quanto costa eseguirlo
Un algoritmo corretto può essere inutilizzabile. La complessità misura come cresce il numero di passi quando crescono i dati. Un esempio con numeri da marketing: confrontare a coppie un milione di clienti per cercare chi assomiglia a chi richiede quasi 500 miliardi di confronti, per l’esattezza 499.999.500.000. Ad un milione di confronti al secondo il calcolo dura 5,8 giorni. Cercare un cliente in una lista ordinata di un milione di nomi, con il metodo che dimezza ad ogni passo l’intervallo di ricerca, richiede invece 20 passi al massimo, perché 2 elevato alla venti fa poco più di un milione. La differenza non dipende dal computer: è nella struttura della procedura.
Lo sapevano bene ad Amazon, quando nel 2003 Greg Linden, Brent Smith e Jeremy York descrissero sulla rivista IEEE Internet Computing il sistema di raccomandazione dell’azienda. I metodi classici confrontavano il cliente con tutti gli altri; davanti ad una base di più di 29 milioni di clienti e diversi milioni di prodotti si fermavano. La loro soluzione, il filtraggio collaborativo da articolo ad articolo, sposta il lavoro pesante in una fase preparatoria: si costruisce in anticipo una tabella degli articoli acquistati spesso insieme, un calcolo che gli autori definiscono molto oneroso. Quando il cliente arriva basta consultare la tabella per gli articoli che ha già comprato o valutato. Gli autori scrivono che il calcolo in linea cresce indipendentemente dal numero di clienti e dal numero di articoli del catalogo. Si decide quando fare il lavoro: conta quanto l’idea.
Corretto rispetto a che cosa
Un algoritmo è corretto se, per ogni ingresso valido, produce il risultato richiesto dalla sua specifica. Per Euclide la correttezza si dimostra in una riga: il massimo comune divisore di due numeri non cambia se al maggiore si sostituisce il resto della divisione per il minore. Nei sistemi di marketing la specifica è quasi sempre un indicatore sostitutivo di ciò che interessa, quindi un sistema può essere perfettamente corretto rispetto a «massimizza i clic» e sbagliato rispetto a «porta clienti che restano». Esiste poi una categoria intermedia, le euristiche: procedure che danno una risposta buona in tempi ragionevoli senza garantire la migliore. In molti problemi di ottimizzazione su dati grandi la soluzione esatta è impraticabile e ci si accontenta di un’approssimazione. Ha senso, purché si sappia quale approssimazione si sta comprando.
Dove si trova la regola
Fin qui le regole le scrive una persona. Il passaggio che più ha cambiato il lavoro di marketing è un altro: le regole si ricavano dai dati. Nei sistemi di apprendimento automatico (molto di ciò che le piattaforme chiamano «l’algoritmo» lo è) esistono due oggetti distinti che nel linguaggio comune si confondono. Il primo è la procedura di addestramento, un algoritmo vero nel senso di Knuth: prende molti esempi (utenti, contenuti, che cosa è successo dopo) e regola un insieme di numeri finché l’errore su quegli esempi diminuisce. Il secondo è il modello, la funzione che risulta dall’addestramento: riceve i dati di un utente e di un contenuto e restituisce una stima, per esempio la probabilità di un clic. La stessa procedura di addestramento, con dati diversi, produce modelli diversi, cioè regole diverse. Chi decide che cosa vede un utente è il modello. Chi lo ha fatto così è la procedura insieme ai dati.
Una conseguenza pratica: ciò che una piattaforma chiama algoritmo è spesso una catena. Mosseri la descrive per Instagram: in ogni superficie si costruisce prima un insieme di contenuti candidati, poi si stima per ciascuno quanto è probabile che quell’utente faccia certe cose; si ordina secondo le stime. Nel Feed i comportamenti previsti includono il dedicare qualche secondo al post, commentare, mettere «mi piace», condividere, toccare la foto profilo. I segnali elencati, in ordine di importanza approssimativo, sono l’attività dell’utente, le informazioni sul post (quanto velocemente raccoglie interazioni), le informazioni su chi lo ha pubblicato e la storia dei rapporti tra i due. La forma della catena è dichiarata. I numeri dei modelli no.
Un’altra precisazione: finito e definito non vuol dire deterministico. Una procedura può prevedere che ad un certo passo si estragga un numero a caso, purché il modo di estrarlo sia specificato. Gli algoritmi che ripartiscono il traffico tra varianti, come i multi-armed bandit già incontrati in queste pagine, lavorano così. Lo stesso vale, in genere, per i modelli che producono testo: ogni parola è scelta tra più possibilità con probabilità diverse; due richieste identiche possono dare risposte diverse.
Sei lavori che un algoritmo fa in un reparto marketing
Applicare regole. La segmentazione, i punteggi dei contatti, le automazioni come quella dello sconto sono selezioni e iterazioni su una lista. Le regole possono essere scritte a mano o ricavate dai dati: in entrambi i casi la domanda è che cosa conta come «inattivo», «caldo», «di valore», perché da quella definizione dipende tutto il resto.
Ordinare. Un feed, un risultato di ricerca, una pagina di categoria sono liste ordinate. Il criterio di ordinamento è una scelta di prodotto: i punteggi di PageRank erano una, i comportamenti previsti da Instagram sono un’altra. Cambia il criterio e cambia ciò che i creatori producono per adattarvisi.
Raccomandare. È l’ordinamento personalizzato. Il caso più istruttivo è un concorso. Nel 2006 Netflix offrì un milione di dollari a chi avesse migliorato del 10% l’accuratezza del proprio sistema, misurata con la radice dell’errore quadratico medio, da 0,9525 a 0,8572 o meno. Il primo premio intermedio, un anno dopo, arrivò all’8,43%. Due degli algoritmi vincenti, la scomposizione in matrici e le macchine di Boltzmann ristrette, Netflix li mise in produzione e nel 2012 facevano ancora parte del suo motore di raccomandazione. La soluzione finale, che raggiunse il 10% nel 2009, no: i guadagni di accuratezza, scrisse l’azienda, non sembravano giustificare lo sforzo ingegneristico necessario. Nel frattempo, nel 2007, era partito lo streaming, che portò con sé un tipo di informazione nuova: si poteva osservare se un titolo veniva guardato per intero o a metà. Il problema da risolvere era cambiato. Un algoritmo che risolve meglio il problema di ieri vale meno di uno discreto sul problema di oggi.
Assegnare lo spazio a pagamento. La pubblicità digitale si vende con aste, ma in un’asta il vincitore non è colui che offre di più. Google elenca sei elementi che determinano il suo Ad Rank: l’offerta, la qualità degli annunci e della pagina di destinazione, le soglie minime, la competitività dell’asta, il contesto della ricerca, l’impatto atteso di estensioni e formati. L’Ad Rank decide se l’annuncio è ammesso, in che posizione appare e quanto costa il clic: una qualità più alta può abbassare il costo. Nella spiegazione di Jon Loomer, esperto di inserzioni su Meta, l’asta di Meta assegna l’inserzione al valore totale più alto, calcolato su offerta, tasso d’azione stimato e qualità dell’annuncio. Il meccanismo con cui i motori di ricerca vendono pubblicità ha un nome nella teoria economica, asta a secondo prezzo generalizzata. Uno studio di Benjamin Edelman, Michael Ostrovsky e Michael Schwarz, uscito nell’American Economic Review nel 2007, mostra che somiglia ad un meccanismo, detto VCG, in cui conviene sempre dichiarare il proprio valore vero, ma si comporta in modo diverso: nell’asta generalizzata, in generale, offrire il valore vero non è un equilibrio.
Un modello didattico, che la redazione ha costruito e che non riproduce alcuna piattaforma reale, mostra il principio. Tre inserzionisti offrono per ogni clic 2,50, 2,00 e 1,20 euro, con tassi di clic attesi dell’1,0%, del 2,5% e del 3,0%. Si classifica moltiplicando l’offerta per il tasso di clic atteso; chi vince paga il minimo che gli basta per restare davanti al secondo:
| Inserzionista | Offerta per clic | Tasso di clic atteso | Offerta × tasso |
|---|---|---|---|
| A | 2,50 € | 1,0% | 0,0250 |
| B | 2,00 € | 2,5% | 0,0500 |
| C | 1,20 € | 3,0% | 0,0360 |
L’ordine è B, C, A. A, che offre di più, arriva ultimo. B vince e paga il minimo per restare davanti a C: 0,0360 diviso 0,025 fa 1,44 euro, 1,45 con il centesimo di margine, meno dei 2,00 offerti. La stima del tasso di clic, che è un modello, pesa quanto il denaro. Chi compra spazio compra anche, in parte, l’opinione dell’algoritmo sulla propria creatività.
Stimare e sperimentare. Punteggi di propensione, previsioni di abbandono, test A/B, ripartizione del budget tra varianti. L’avvertenza è che la piattaforma non è un arbitro neutrale: il caso del divergent delivery, già analizzato in queste pagine, mostra come l’algoritmo di consegna di Meta possa mostrare le due varianti di un test a pubblici diversi, producendo così un vincitore che dipende dalla consegna e non dalla creatività.
Generare. I modelli linguistici e di immagine producono testi e visuali. L’anatomia è la stessa: una procedura di addestramento, un modello, un criterio. Cambia che il risultato non è una scelta tra opzioni esistenti ma un oggetto nuovo; inoltre la definitezza del passo vale per il processo, non per il prodotto.
Ciò che si ottimizza è ciò che si è chiesto
Tutti i sistemi sopra hanno in comune un obiettivo numerico. Un algoritmo di ottimizzazione cerca il massimo di una funzione e non ha altro modo di sapere che cosa si vuole. Se l’obiettivo è un indicatore intermedio, come il clic, mentre ciò che interessa è un altro, come il valore del cliente, il risultato dipende da quanto i due indicatori si somigliano. Un calcolo della redazione, con numeri inventati: 1.000 contenuti candidati, di cui se ne scelgono 50. Si confrontano due criteri, scegliere i 50 con la probabilità di clic più alta e scegliere i 50 con il valore atteso per impressione più alto; poi si misura quanto del valore ottenibile si ottiene scegliendo per clic. Variando la correlazione tra i due indicatori:
| Correlazione tra clic e valore | Valore ottenuto scegliendo per clic, in % del massimo |
|---|---|
| 0,9 | 89% |
| 0,5 | 54% |
| 0 | 25% |
| −0,5 | 10% |
Medie di 2.000 prove per riga, con distribuzioni scelte dalla redazione: la forma dei numeri è arbitraria, la tendenza no. Quando i due indicatori quasi coincidono, ottimizzare l’uno basta. Quando non c’è relazione, la scelta per clic recupera un quarto del valore. È la stessa famiglia di problemi della legge di Goodhart, già incontrata in queste pagine a proposito di engagement: un indicatore diventato obiettivo smette di essere un buon indicatore. Qui se ne vede la parte aritmetica, il divario tra l’indicatore e ciò che interessa davvero.
Quando l’obiettivo è un costo o una risposta, gli effetti possono toccare le persone. Nel 2019 Anja Lambrecht e Catherine Tucker, su Management Science, riportarono un esperimento con un annuncio di offerte di lavoro in ambito scientifico e tecnologico, pensato per essere neutrale rispetto al genere: lo videro meno donne che uomini. La spiegazione degli autori è economica. Le donne più giovani sono un pubblico molto conteso e costa di più raggiungerle, quindi un algoritmo che ottimizza il costo consegna meno impressioni a loro, un effetto che chiamano «crowding out» e che dicono presente anche su altre grandi piattaforme. Nello stesso anno Muhammad Ali e colleghi misurarono su inserzioni reali di lavoro e abitazione sbilanciamenti di consegna per genere e per razza anche con parametri di targeting molto inclusivi; attribuirono una parte dello sbilanciamento sia al budget sia al contenuto dell’annuncio. In entrambi i casi lo sbilanciamento nasce dalla consegna e non da un criterio dichiarato dall’inserzionista. Il sistema aveva fatto ciò che gli era stato chiesto, cioè minimizzare un costo o massimizzare una risposta, con i dati che aveva.
Il ciclo che si alimenta
Un ultimo meccanismo riguarda ciò che accade quando l’ordine in cui si mostrano le cose dipende dalle scelte passate. Nel 2006 Matthew Salganik, Peter Dodds e Duncan Watts pubblicarono su Science un esperimento con 48 brani di band sconosciute e 14.341 partecipanti, reclutati soprattutto su un sito rivolto ai giovani. Chi partecipava poteva ascoltare e scaricare. In una condizione ognuno decideva da solo. In altre otto, indipendenti l’una dall’altra, vedeva quante volte gli altri avevano scaricato ogni brano. In ognuno degli otto mondi sociali la disuguaglianza tra i brani era maggiore che nella condizione indipendente; gli esiti variavano molto da un mondo all’altro: la qualità, misurata come successo nella condizione indipendente, contava in media, ma non determinava il risultato. I brani migliori andavano raramente male e i peggiori raramente bene, mentre tutto il resto era possibile, riassumono gli autori. Nel secondo esperimento, dove i brani erano ordinati per numero di scaricamenti, l’effetto era più forte.
Si può riprodurre la meccanica con un modello minimo. Venti oggetti perfettamente identici, 10.000 utenti che arrivano uno alla volta, ciascuno sceglie un oggetto, con più probabilità quelli in alto, in proporzione ad uno diviso la posizione. In un caso l’elenco è in ordine casuale, nell’altro è ordinato per clic ricevuti fino a quel momento. In 200 ripetizioni, con l’ordine casuale il primo oggetto raccoglie in media il 5,4% dei clic, con valori tra il 5,2 e il 5,7%. Con l’ordinamento per popolarità raccoglie in media il 27,8%, con un minimo del 26,5%. Gli oggetti sono gli stessi e quale vinca cambia ad ogni prova: la concentrazione la produce la classifica. Chi vede il proprio contenuto in cima ad un elenco ordinato per risultati sta guardando, in parte, la storia di quell’elenco.
Che cosa chiede la legge
In Europa alcune di queste informazioni sono oggi un obbligo. Il Regolamento sui servizi digitali (Regolamento UE 2022/2065), applicabile a tutte le piattaforme dal 17 febbraio 2024, impone alle piattaforme online che usano sistemi di raccomandazione di descrivere nelle proprie condizioni generali, con linguaggio chiaro, i parametri principali, nonché di spiegare perché una certa informazione viene suggerita ad un utente, indicando almeno i criteri che pesano di più e le ragioni di quel peso (art. 27). Per ogni inserzione mostrata devono fornire informazioni accessibili direttamente dall’annuncio sui parametri principali usati per decidere a chi presentarla e, se possibile, su come cambiarli (art. 26). Le piattaforme e i motori di ricerca di dimensioni molto grandi devono inoltre offrire almeno un’opzione del sistema di raccomandazione non basata sulla profilazione (art. 38). Il testo chiede di nominare i parametri principali, non di pubblicare i modelli. Nominare i criteri è comunque gran parte di ciò che serve per sapere che cosa si sta comprando.
Quattro domande e una proprietà di Knuth
Chi decide un budget, un piano editoriale o un fornitore non vedrà mai i modelli di Meta o di Google. Ciò che può controllare sta altrove: le domande utili sono quattro. Qual è l’obiettivo numerico del sistema e chi lo ha scelto: l’inserzionista, la piattaforma, il fornitore. Con quali dati lavora, perché un evento di conversione definito male orienta l’ottimizzazione verso chi compie proprio quell’evento. Che cosa il sistema non può misurare, per esempio ciò che sarebbe successo senza la pubblicità. Come si controlla il risultato dall’esterno, con un gruppo di controllo o un test di incrementalità, dato che i lavori citati mostrano quanto la consegna possa deviare da ciò che l’inserzionista crede di ottenere.
Resta un test più semplice, che viene dalla definizione di Knuth. Quando un fornitore dice che la sua piattaforma «ottimizza con l’intelligenza artificiale», conviene chiedersi se la frase descriva qualcosa di eseguibile: se qualcuno, con gli stessi dati e le stesse istruzioni, potrebbe ottenere lo stesso risultato, o almeno capire a quali condizioni. La procedura di Euclide si può ancora eseguire e controllare con carta e penna, oltre ventitré secoli dopo. Una descrizione che non può essere né eseguita né controllata non è un algoritmo nel senso di Knuth. In marketing «l’algoritmo ha deciso» è a volte il nome di una decisione che qualcuno non vuole o non sa spiegare. La domanda utile è quale procedura, con quali dati, per ottenere che cosa.
Fonti: Adam Mosseri, «Instagram Ranking Explained», Instagram, 31 maggio 2023, about.instagram.com; Douglas Harper, «algorithm», Online Etymology Dictionary, etymonline.com; Donald E. Knuth, The Art of Computer Programming, vol. 1, Fundamental Algorithms, 2ª ed., Addison-Wesley, 1973; vol. 2, Seminumerical Algorithms, 2ª ed., 1981, p. 318; Euclide, Elementi, libro VII, proposizioni 1-2; Corrado Böhm e Giuseppe Jacopini, «Flow diagrams, Turing machines and languages with only two formation rules», Communications of the ACM, 9(5), 1966, en.wikipedia.org; Sergey Brin e Lawrence Page, «The Anatomy of a Large-Scale Hypertextual Web Search Engine», Computer Networks, 30(1-7), 1998, pp. 107-117, site.uottawa.ca; Greg Linden, Brent Smith e Jeremy York, «Amazon.com Recommendations: Item-to-Item Collaborative Filtering», IEEE Internet Computing, 7(1), 2003, cs.umd.edu; Netflix Technology Blog, «Netflix Recommendations: Beyond the 5 stars (Part 1)», netflixtechblog.com; «Ad Rank», Google Ads Help, support.google.com; Jon Loomer, spiegazione dell’asta pubblicitaria di Meta, jonloomer.com; Benjamin Edelman, Michael Ostrovsky e Michael Schwarz, «Internet Advertising and the Generalized Second-Price Auction: Selling Billions of Dollars Worth of Keywords», American Economic Review, 97(1), 2007, pp. 242-259, nber.org; Anja Lambrecht e Catherine Tucker, «Algorithmic Bias? An Empirical Study of Apparent Gender-Based Discrimination in the Display of STEM Career Ads», Management Science, 65(7), 2019, pp. 2966-2981, lbsresearch.london.edu; Muhammad Ali, Piotr Sapiezynski, Miranda Bogen, Aleksandra Korolova, Alan Mislove e Aaron Rieke, «Discrimination through Optimization: How Facebook’s Ad Delivery Can Lead to Skewed Outcomes», 2019, arxiv.org; Matthew J. Salganik, Peter Sheridan Dodds e Duncan J. Watts, «Experimental Study of Inequality and Unpredictability in an Artificial Cultural Market», Science, 311, 2006, pp. 854-856, pdodds.w3.uvm.edu; Regolamento (UE) 2022/2065 (Digital Services Act), artt. 26, 27 e 38, eur-lex.europa.eu; «The new EU Digital Services Act will become applicable to all platforms from 17 February 2024», Roschier, roschier.com.