Equilibrio delicato Affrontare il bias di popolarità nei sistemi di raccomandazione

Equilibrio delicato bias di popolarità nei sistemi di raccomandazione

Foto di Melanie Pongratz su Unsplash

Ti sei svegliato una mattina e hai deciso di coccolarti comprando un nuovo paio di scarpe. Sei andato sul tuo sito web di scarpe preferito e hai sfogliato le raccomandazioni che ti sono state date. Un paio in particolare ha attirato la tua attenzione – ti è piaciuto lo stile e il design. Le hai comprate senza esitazione, entusiasta di indossare le tue nuove scarpe.

Quando le scarpe sono arrivate, non vedevo l’ora di mostrarle. Hai deciso di indossarle per la prima volta a un concerto a cui stavi per andare. Tuttavia, quando sei arrivato sul luogo, hai notato almeno altre 10 persone che indossavano esattamente le stesse scarpe! Quali erano le probabilità?

All’improvviso ti sei sentito deluso. Anche se all’inizio ti piacevano le scarpe, vedere così tante persone con lo stesso paio ti ha fatto sentire come se il tuo acquisto non fosse così speciale dopo tutto. Le scarpe che pensavi ti avrebbero fatto distinguere finirono per farti confondere.

In quel momento hai giurato di non comprare mai più da quel sito web di scarpe. Anche se l’algoritmo di raccomandazione ti ha suggerito un articolo che ti piaceva, alla fine non ti ha procurato la soddisfazione e l’unicità che desideravi. Quindi, sebbene tu abbia inizialmente apprezzato l’articolo consigliato, l’esperienza complessiva ti ha lasciato insoddisfatto.

Questo evidenzia come i sistemi di raccomandazione abbiano delle limitazioni: suggerire un prodotto “buono” non garantisce che porterà a un’esperienza positiva e appagante per il cliente. Quindi era davvero una buona raccomandazione?

Perché è cruciale misurare il bias della popolarità nei sistemi di raccomandazione?

Il bias della popolarità si verifica quando i sistemi di raccomandazione suggeriscono molti articoli che sono globalmente popolari anziché scelte personalizzate. Ciò accade perché gli algoritmi sono spesso addestrati a massimizzare l’interazione raccomandando contenuti che piacciono a molti utenti.

Anche se gli articoli popolari possono essere comunque rilevanti, fare affidamento eccessivo sulla popolarità porta a una mancanza di personalizzazione. Le raccomandazioni diventano generiche e non tengono conto degli interessi individuali. Molti algoritmi di raccomandazione sono ottimizzati utilizzando metriche che premiano la popolarità generale. Questo bias sistematico verso ciò che è già ben gradito nel tempo può essere problematico. Conduce alla promozione eccessiva di articoli che sono di tendenza o virali anziché suggerimenti unici. Sul lato aziendale, il bias della popolarità può anche portare a una situazione in cui un’azienda ha un’ampia inventario di articoli di nicchia e poco conosciuti che rimangono non scoperti dagli utenti, rendendoli difficili da vendere.

Le raccomandazioni personalizzate che tengono conto delle preferenze specifiche di un utente possono portare un valore enorme, specialmente per gli interessi di nicchia che differiscono dal mainstream. Aiutano gli utenti a scoprire articoli nuovi e inaspettati pensati appositamente per loro.

Idealemente, dovrebbe essere trovato un equilibrio tra popolarità e personalizzazione nei sistemi di raccomandazione. L’obiettivo dovrebbe essere di evidenziare perle nascoste che risuonano con ogni utente, mentre si inserisce occasionalmente contenuti universalmente interessanti.

Come misurare il bias della popolarità?

Popolarità Media delle Raccomandazioni

La Popolarità Media delle Raccomandazioni (ARP) è una metrica utilizzata per valutare la popolarità degli articoli raccomandati in un elenco. Calcola la popolarità media degli articoli in base al numero di valutazioni ricevute nel set di addestramento. Matematicamente, ARP viene calcolato come segue:

Dove:

  • |U_t| è il numero di utenti
  • |L_u| è il numero di articoli nell’elenco raccomandato L_u per l’utente u.
  • ϕ(i) è il numero di volte in cui “l’articolo i” è stato valutato nel set di addestramento.

In termini semplici, ARP misura la popolarità media degli articoli negli elenchi raccomandati sommando la popolarità (numero di valutazioni) di tutti gli articoli in quegli elenchi e poi facendo la media di questa popolarità tra tutti gli utenti nel set di test.

Esempio: Supponiamo di avere un set di test con 100 utenti |U_t| = 100. Per ogni utente, forniamo un elenco raccomandato di 10 articoli |L_u| = 10. Se l’articolo A è stato valutato 500 volte nel set di addestramento (ϕ(A) = 500), e l’articolo B è stato valutato 300 volte (ϕ(B) = 300), l’ARP per queste raccomandazioni può essere calcolato come:

In questo esempio, il valore ARP è 8, indicando che la popolarità media degli elementi consigliati tra tutti gli utenti è 8, basato sul numero di valutazioni ricevute nell’insieme di addestramento.

La Percentuale Media di Elementi di Lunga Coda (APLT)

La metrica della Percentuale Media di Elementi di Lunga Coda (APLT) calcola la proporzione media di elementi di lunga coda presenti nelle liste consigliate. È espressa come:

Qui:

  • |Ut| rappresenta il numero totale di utenti.
  • u ∈ Ut indica ogni utente.
  • Lu rappresenta la lista consigliata per l’utente u.
  • Γ rappresenta l’insieme di elementi di lunga coda.

In termini più semplici, APLT quantifica la percentuale media di elementi meno popolari o di nicchia nelle raccomandazioni fornite agli utenti. Un valore più alto di APLT indica che le raccomandazioni contengono una maggiore proporzione di tali elementi di lunga coda.

Esempio: Supponiamo ci siano 100 utenti (|Ut| = 100). Per ogni lista di raccomandazioni dell’utente, in media, 20 su 50 elementi (|Lu| = 50) appartengono all’insieme di lunga coda (Γ). Utilizzando la formula, l’APLT sarebbe:

APLT = Σ (20 / 50) / 100 = 0.4

Quindi, l’APLT in questo scenario è 0.4 o 40%, il che implica che, in media, il 40% degli elementi nelle liste consigliate proviene dall’insieme di lunga coda.

La Copertura Media di Elementi di Lunga Coda (ACLT)

La metrica della Copertura Media di Elementi di Lunga Coda (ACLT) valuta la proporzione di elementi di lunga coda inclusi nelle raccomandazioni complessive. A differenza di APLT, ACLT considera la copertura degli elementi di lunga coda tra tutti gli utenti e valuta se questi elementi sono rappresentati in modo efficace nelle raccomandazioni. È definita come:

ACLT = Σ Σ 1(i ∈ Γ) / |Ut| / |Lu|

Qui:

  • |Ut| rappresenta il numero totale di utenti.
  • u ∈ Ut indica ogni utente.
  • Lu rappresenta la lista consigliata per l’utente u.
  • Γ rappresenta l’insieme di elementi di lunga coda.
  • 1(i ∈ Γ) è una funzione indicatrice uguale a 1 se l’elemento i è nell’insieme di lunga coda Γ, altrimenti è 0.

In termini più semplici, ACLT calcola la proporzione media di elementi di lunga coda coperti nelle raccomandazioni per ogni utente.

Esempio: Supponiamo ci siano 100 utenti (|Ut| = 100) e un totale di 500 elementi di lunga coda (|Γ| = 500). Tra tutte le liste di raccomandazioni degli utenti, ci sono 150 casi in cui vengono raccomandati elementi di lunga coda (Σ Σ 1(i ∈ Γ) = 150). Il numero totale di elementi in tutte le liste di raccomandazioni è 3000 (Σ |Lu| = 3000). Utilizzando la formula, l’ACLT sarebbe:

ACLT = 150 / 100 / 3000 = 0.0005

Quindi, l’ACLT in questo scenario è 0.0005 o 0.05%, indicando che, in media, lo 0.05% degli elementi di lunga coda è coperto nelle raccomandazioni complessive. Questa metrica aiuta a valutare la copertura degli elementi di nicchia nel sistema di raccomandazione.

Come correggere la riduzione del bias di popolarità in un sistema di raccomandazione

Apprendimento Consapevole della Popolarità

Questa idea si ispira all’Apprendimento Consapevole della Posizione (PAL) dove l’approccio consiste nel classificare le raccomandazioni chiedendo al modello di ML di ottimizzare contemporaneamente la rilevanza del ranking e l’impatto della posizione. Possiamo utilizzare lo stesso approccio con il punteggio di popolarità, questo punteggio può essere uno dei punteggi sopra menzionati come Popolarità Media delle Raccomandazioni.

  • Al momento dell’addestramento, si utilizza la popolarità dell’elemento come una delle caratteristiche di input.
  • Nella fase di previsione, viene sostituito con un valore costante.
Immagine di Autore

Framework xQUAD

Un metodo interessante per correggere il bias di popolarità è utilizzare qualcosa chiamato Framework xQUAD. Prende una lunga lista di raccomandazioni (R) insieme a punteggi di probabilità/verosimiglianza dal tuo modello attuale e costruisce una nuova lista (S) che è molto più diversificata, dove |S| < |R|. La diversità di questa nuova lista è controllata da un iperparametro λ.

Ho cercato di riassumere la logica del framework:

Immagine di Autore

Calcoliamo un punteggio per tutti i documenti nell’insieme R. Prendiamo il documento con il punteggio massimo e lo aggiungiamo all’insieme S e allo stesso tempo lo rimuoviamo dall’insieme R.

Immagine di Autore
Immagine di Autore

Per selezionare il prossimo elemento da aggiungere a ‘S’, calcoliamo il punteggio per ogni elemento in R\S (R escludendo S). Ogni volta che viene selezionato un elemento da aggiungere a “S”, P(v/u) aumenta così la possibilità che venga scelto di nuovo un elemento non popolare aumenta anche.

Riferimenti

https://arxiv.org/pdf/1901.07555.pdf

https://www.ra.ethz.ch/cdstore/www2010/www/p881.pdf

https://www.analyticsvidhya.com/blog/2023/03/how-to-overcome-position-bias-in-recommendation-and-search/