Mi sono ritrovato oggi, ancora una volta per il 100…01esimo giorno consecutivo, a tenere in mano il mio cestino della cena ancora chiuso mentre cerco su Netflix uno spettacolo da guardare mentre sgranocchio il mio cibo. Il mio feed è pieno di troppi suggerimenti sul romanticismo asiatico e sul raggiungimento della maggiore età americana, probabilmente basati su una o due serie di queste categorie che ho guardato, tipo, un mese o due fa. “Non c’è niente da guardare qui…” – sospirai mentre finivo di leggere tutte le sinossi, sentendomi fiducioso di poter prevedere come sarebbe stata svelata la trama. Ho tirato fuori la mia opzione di intrattenimento alternativa, Tiktok, mentre inconsciamente pensavo tra me e me che Probabilmente ne avrò bisogno Non interessato alcuni video e Come, Salva altri per… consigliare l’algoritmo di inviarmi qualche nuovo flusso di contenuti oggi.
Recommendation Systems (RecSys) può essere considerato un algoritmo consolidato, che è stato profondamente radicato nella nostra vita quotidiana, al punto che, su una scala da 1 a Chat-GPT, sembra quasi una tendenza degli anni ’80 sia al mondo accademico e mondo non accademico. Tuttavia, non è affatto un algoritmo quasi perfetto. Le sfide etiche, sociali, tecniche e legali che derivano dall’utilizzo di un’applicazione di raccomandazioni non sono mai state in prima linea nella ricerca (come nel caso della maggior parte degli altri prodotti tecnologici…). L’ingiustizia di gruppi selezionati e la violazione della privacy sono esempi delle preoccupazioni popolari che ruotano intorno a RecSys e che non sono ancora state completamente affrontate dalle aziende che lo hanno implementato. Inoltre, esistono molte questioni più sottili a cui raramente viene data sufficiente attenzione, una delle quali è la perdita di autonomia nel processo decisionale di un individuo. Un RecSys “potente” può senza dubbio spingere gli utenti in una direzione particolare (2), facendoli acquistare, guardare, pensare, credere in qualcosa che non avrebbero fatto se non fossero stati soggetti a tale manipolazione.
Quindi, voglio scrivere una serie lungo il mio percorso scolastico di specializzazione mentre inizio a imparare e ad approfondire RecSys, i loro punti di forza e i loro difetti… tutto da zero! E immagino che si possa iniziare pensando ai film e… al campionamento Thompson!
Il Thompson Sampling (TS) è uno degli algoritmi fondamentali non solo nella letteratura sui sistemi di raccomandazione, ma anche nell’apprendimento per rinforzo. È senza dubbio un test A/B migliore in contesti di apprendimento online, come spiegato chiaramente da Samuele Mazzanti in questo fantastico articolo. In termini semplici, nel contesto dei consigli sui film, TS cerca di identificare il miglior film da consigliarmi che massimizzerà le possibilità che farò clic per guardarlo. Può farlo in modo efficace utilizzando relativamente meno dati in quanto consente l’aggiornamento dei parametri ogni volta che mi osserva fare clic o meno su un film. In parole povere, questa caratteristica dinamica consente a TS di prendere in considerazione, oltre alla cronologia delle visualizzazioni e alle serie aggiunte ai segnalibri, fattori in tempo reale come la navigazione o i risultati di ricerca all’interno dell’app che sto creando in questo momento per darmi il suggerimento più adatto. Tuttavia, in questo tutorial per principianti, esaminiamo semplicemente un’analisi semplificata di seguito.
Analizziamolo ancora di più!
Considera questi 3 film per i quali, per quanto sorprendenti, io, in modo abbastanza controverso, ho la mia classifica personale. Di questi 3 film, diciamo, ce n’è uno che guarderò al 100% se appare nel mio feed, uno che difficilmente rivedrò (5%) e uno su cui c’è una probabilità del 70% che farò clic guardalo ogni volta che lo vedo. TS ovviamente non ha queste informazioni in anticipo su di me e il suo obiettivo è apprendere il mio comportamento in modo da, come dice l’intuito comune, consigliarmi il film che sa che farò sicuramente clic su guarderò.
Nell’algoritmo TS, il flusso di lavoro principale è il seguente:
- Azione: TS mi suggerisce un film specifico, tra centinaia di altri
- Risultato: decido che il film mi sembra abbastanza interessante e clicco per guardarlo, oppure lo trovo noioso e clicco fuori dalla pagina dopo aver letto la sinossi
- Ricompensa: può essere considerato come il numero di “punti” ottenuti da TS se faccio clic per guardare un determinato film o da TS persi se non faccio clic. Nelle impostazioni di base dei consigli su film o annunci, possiamo considerare la ricompensa come un equivalente del risultato , quindi 1 clic sul film = 1 punto!
- Aggiornamento conoscenza: TS registra la mia scelta e aggiorna la sua convinzione su quale film sia il mio preferito.
- Ripetere passaggio 1 (può avvenire durante la sessione di navigazione corrente o all’ora di cena del giorno successivo), ma ora con alcune informazioni aggiuntive sulle mie preferenze.
Esplorazione/sfruttamento
Questo è il termine più utilizzato in questa letteratura ed è anche ciò che distingue TS e altri algoritmi correlati. Il passaggio 5 sopra è il punto in cui entra in gioco questa logica. Nel mondo TS, tutto ha un certo grado di incertezza. Bere latte tre volte e matcha cinque volte in una settimana non significa necessariamente che amo il matcha più del latte, e se fosse solo quella settimana (e in realtà bevo più latte che matcha in media a settimana)? Per questo motivo, tutto in TS è rappresentato da un qualche tipo di distribuzione, piuttosto che da singoli numeri.
All’inizio, TS ha ovviamente molta incertezza riguardo alle mie preferenze per i film, quindi la sua priorità è quella Esplorare questo dandomi molti suggerimenti di film diversi in modo da osservare la mia risposta ai suggerimenti. Dopo alcuni clic e salti, TS riesce a capire quali film tendo a fare clic e quali film non apportano vantaggi, e quindi ha acquisito più fiducia in quale film distribuirmi la prossima volta. Questo è il momento in cui TS inizia a farlo impresa le opzioni altamente gratificanti, in cui mi dà il film su cui faccio clic per guardarlo spesso, ma lascia comunque spazio per ulteriori esplorazioni. La fiducia aumenta man mano che arrivano più osservazioni che, in casi semplici, raggiungeranno il punto in cui il lavoro di esplorazione è ora minimo poiché TS ha già molta fiducia nello sfruttare la raccomandazione che dà molte ricompense.
Esplorazione vs Sfruttamento sono quindi spesso indicati come scambio o il dilemma perché troppa esplorazione (cioè poca eliminazione di scelte di basso valore nonostante si abbiano già prove sufficienti per sapere che tali scelte non sono ottimali) e si incorre in molte perdite, troppo sfruttamento (cioè si eliminano troppe opzioni troppo rapidamente) e è probabile che elimini erroneamente la vera azione ottimale.
Come nel grafico matcha-latte sopra, TS lavora con diversi tipi di distribuzioni per comprendere la nostra preferenza per le diverse opzioni. Nei casi più elementari di film (e anche di pubblicità), spesso utilizziamo la combinazione Beta-Bernoulli.
Distribuzione di Bernoulli è una distribuzione discreta in cui ci sono solo due possibili risultati: 1 e 0. La distribuzione di Bernoulli consiste di un solo parametro, che indica la probabilità che qualche variabile, diciamo Y, sia 1. Quindi, se diciamo Y~ Bern(p) , e per esempio, p = 0,7, ciò significa che Y ha 0,7 probabilità di avere il valore di 1, e 1–p = 1–0,7 = 0,3 probabilità di essere 0. Pertanto, la distribuzione di Bernoulli è adatta a modellare la ricompensa (anche il risultato nel nostro caso) perché la nostra ricompensa ha solo esito binario: Cliccato O Non cliccato.
D’altra parte, la distribuzione beta viene utilizzata per modellare la convinzione di TS riguardo ai miei interessi cinematografici. La distribuzione beta prende in considerazione due parametri, alfa e beta, che sono spesso considerati rispettivamente come il numero di successi e fallimenti, ed entrambi devono essere ≥ 1. Pertanto, è opportuno utilizzare la distribuzione Beta per modellare il numero di volte in cui io fare clic su Guarda e il numero di volte in cui salto un film. Diamo un’occhiata a un esempio. Qui, queste sono 3 diverse distribuzioni beta che rappresentano 3 film, su 10 osservazioni, quindi il numero totale di clic e salti per tutti e 3 i film è lo stesso (10), ma le percentuali di clic e salti sono diverse. Per il film 1, faccio clic su Guarda 2 volte (alfa = 2) e salto 8 volte (beta = 8); per il film 2, faccio clic su Guarda 5 volte e salto 5 volte; per il film 3, faccio clic su Guarda 8 volte e salto 2.
Secondo il grafico possiamo vedere che la probabilità che io guardi di nuovo il film 2 raggiunge un picco intorno al 50%, mentre questa probabilità per il film 1, ad esempio, è molto più bassa. Possiamo pensare alle curve qui come alla probabilità della probabilità (di me che guardo di nuovo un film), e quindi la distribuzione Beta è ideale per rappresentare la convinzione di TS sulle mie preferenze cinematografiche.
In questa sezione ti aiuterò ad acquisire una chiara comprensione dell’implementazione dell’algoritmo e della metodologia. Innanzitutto, ecco uno snipper dell’algoritmo Thompson Sampling, in pseudocodice e in Python. Lo pseudocodice è tratto da uno straordinario libro sulla TS, intitolato Un tutorial sul campionamento Thompson (Russo, 2017).
Fonte: towardsdatascience.com