Sistemi di raccomandazione, cosa sono, come vengono utilizzati

L'analisi di diversi algoritmi neurali per la raccomandazione in uno specifico scenario mostra come tecniche recenti e complesse non siano competitive rispetto ad algoritmi molto più semplici e noti da anni [...]
Maurizio Ferrari Dacrema

Dipartimento di Elettronica, Informazione e Bioingegneria, Politecnico di Milano e membro di AIxIA

Paolo Cremonesi

Dipartimento di Elettronica, Informazione e Bioingegneria, Politecnico di Milano e membro di AIxIA

sistemi di raccomandazione
  1. Home
  2. Intelligenza Artificiale
  3. Sistemi di raccomandazione, cosa sono, come vengono utilizzati

Lo sviluppo di algoritmi in grado di generare liste personalizzate di prodotti è al centro della ricerca odierna nel settore dei sistemi di raccomandazione. Nel corso degli anni, la comunità scientifica ha sviluppato delle prassi, ampiamente condivise, per comparare algoritmi e dimostrarne l’efficacia in modo sperimentale. Non sempre questi strumenti generano risultati corretti. Le cause di questo fenomeno sono molteplici: scarsa riproducibilità, comparazioni con altri algoritmi complessi ma deboli o poco ottimizzati, eccessiva generalizzazione delle conclusioni basate su un piccolo numero di esperimenti.

Sistemi di raccomandazione, cosa sono, come vengono utilizzati

I sistemi di raccomandazione sono una delle applicazioni più di successo del machine learning e sono utilizzati in tantissimi scenari per agevolare l’utente nell’esplorazione dei vasti cataloghi di articoli a sua disposizione, siano essi film, musica, libri, notizie, contatti, offerte di lavoro, ristoranti, luoghi da visitare, ecc. È ormai assodato che l’utilizzo dei sistemi di raccomandazione comporta benefici economici per il fornitore di servizi e migliora la soddisfazione dell’utente.

Nel corso degli ultimi tre decenni sono state sviluppate e sperimentate diverse tecniche per realizzare sistemi di raccomandazione, dai primi modelli basati su metodi euristici fino alle più recenti architetture di reti neurali (deep learning) che ora costituiscono una quota molto importante dei nuovi algoritmi proposti in pubblicazioni scientifiche.

Per valutare e confrontare tali approcci, la comunità scientifica si basa principalmente su esperimenti realizzati utilizzando dataset storici disponibili pubblicamente. Tipicamente, quando un nuovo algoritmo viene proposto, si riporta una comparazione con altri algoritmi già esistenti che dovrebbero costituire lo stato dell’arte. La comparazione è basata sulla qualità delle raccomandazioni calcolata con alcune tra le molteplici metriche di accuratezza disponibili, ed è eseguita su uno o più dataset.

Sistemi di raccomandazione, pratiche sperimentali

Nel mondo dei sistemi di raccomandazione esistono delle pratiche sperimentali comuni che indubbiamente aiutano la comunità scientifica a rendere i risultati della ricerca più facilmente riproducibili e confrontabili tra loro. Esistono tuttavia degli aspetti problematici che le attuali pratiche sperimentali lasciano scoperti. I ricercatori hanno grande libertà nel decidere molti dettagli del protocollo sperimentale con il quale conducono le loro valutazioni. Ad esempio, molti degli algoritmi proposti non sono sviluppati per uno specifico caso applicativo ma sono presentati come in grado di superare lo stato dell’arte in senso ampio. Tuttavia, gli esperimenti sono di solito limitati a un piccolo insieme di dataset e a una selezione molto limitata di metriche di accuratezza e lunghezze della lista di raccomandazioni generate. Il criterio seguito per queste scelte (dataset, metriche, lunghezze di lista) spesso non è descritto e quindi il protocollo sperimentale appare talvolta arbitrario. Ciò contribuisce a una certa opacità e incertezza su cosa sia in realtà lo stato dell’arte per un certo scenario e, quindi, quali siano le soluzioni migliori per una certa casistica e quali algoritmi dovrebbero essere inclusi nel confronto. Infatti, replicare gli stessi esperimenti ma variando dataset, metrica o lunghezza di lista porta spesso a conclusioni totalmente diverse da quelle riportate nelle pubblicazioni scientifiche.

Il fenomeno del “progresso fantasma”

Un altro problema risiede nel fatto che spesso il ricercatore che propone un nuovo metodo sia anche l’unico a svolgere la valutazione sperimentale prima della pubblicazione. Ciò può avere un impatto nella valutazione, legato al fatto che il ricercatore cerca inconsciamente una conferma per l’efficacia del proprio algoritmo e questo può concretizzarsi, ad esempio, in una ottimizzazione molto accurata del nuovo modello proposto, mentre viene riservata meno attenzione all’ottimizzazione degli altri algoritmi che, si ipotizza, non potranno funzionare altrettanto bene. In questo modo si ottiene un confronto poco equo. Questo fenomeno può essere accentuato nel caso di tecnologie diventate molto popolari, per le quali ci sia una generale aspettativa che saranno efficaci.

A causa di questo comportamento, possono apparire competitivi ed efficaci modelli che in realtà non lo sono particolarmente. Altri ricercatori si baseranno su quel risultato e useranno i nuovi modelli come rappresentativi dello stato dell’arte, sostituendo tecniche precedenti più efficaci. Il fenomeno genera un effetto a catena che porta alla propagazione di algoritmi non competitivi e un indebolimento o stagnazione dello stato dell’arte nel corso degli anni.

Complessivamente, tutte queste incognite portano a quello che è stato chiamato progresso fantasma. In virtù delle numerose pubblicazioni che affermano di aver migliorato lo stato dell’arte, l’apparenza è che si stiano facendo molti progressi ma, date le limitazioni insite nel modo in cui facciamo ricerca, questo progresso potrebbe essere molto minore di quanto atteso o persino inesistente.

sistemi di raccomandazione

Uno studio su 24 algoritmi di raccomandazione

Per dare una risposta a questo quesito, ossia appurare se nel mondo dei sistemi di raccomandazione siamo di fronte a un progresso effettivo, il nostro gruppo di ricerca del Politecnico di Milano, in collaborazione con la Alpen-Adria-Universität Klagenfurt[1], ha studiato 24 algoritmi di raccomandazione basati su reti neurali e pubblicati in conferenze di alto livello. L’analisi in particolare si è concentrata su:

  • riproducibilità dei risultati pubblicati
  • competitività con altri algoritmi semplici e già noti in termini di qualità del risultato e scalabilità
  • esistenza di problemi metodologici

Il risultato dell’analisi è preoccupante. Innanzitutto, è stato possibile riprodurre – con uno sforzo ragionevole – solo 12 algoritmi su 24. Ciascuno dei 12 algoritmi è stato poi confrontato con un insieme di altri algoritmi di base, molto più semplici e, in alcuni casi, già noti da oltre dieci anni. Per il confronto si è utilizzato lo stesso protocollo sperimentale descritto nell’articolo originario. Sorprendentemente, ben 11 dei nuovi algoritmi basati su reti neurali sono stati superati da uno più dei metodi semplici. Inoltre, nella maggior parte degli articoli sono stati trovati una serie di problemi metodologici o errori.

Scelta degli articoli da analizzare

L’analisi copre articoli pubblicati tra il 2015 e il 2018 in un insieme di conferenze di alto livello: KDD, SIGIR, WSDM, TheWebConf (WWW), IJCAI e RecSys. Sono stati individuati 24 articoli che propongono nuovi algoritmi di raccomandazione basati su reti neurali. Si è poi cercato di riprodurre gli esperimenti riportati in ciascuno di essi usando i dati e il codice sorgente forniti dagli autori originali. Poiché lo scopo del nostro lavoro era quello di confermare o meno il risultato pubblicato, l’uso dei materiali originali è motivato dalla volontà di adottare un approccio cauto e conservativo. Per assicurare che la valutazione sia svolta in modo consistente, l’implementazione dei vari algoritmi è stata standardizzata senza modificare l’algoritmo originale. In mancanza dei materiali originali o in presenza di problemi, sono stati contattati gli autori.

Riproducibilità

Soltanto il 50% degli articoli analizzati ha potuto essere riprodotto e, dunque, i risultati confermati in modo affidabile. Si tratta di un risultato in linea con altri studi sulla riproducibilità nei settori dell’intelligenza artificiale (IA), ma comunque problematico in quanto indica che non sia possibile, secondo il criterio da noi adottato, confermare la metà dei risultati pubblicati.

Questo risultato è legato al fatto che solo un limitato numero di articoli forniscono il codice sorgente del modello proposto e i dati su cui è stata svolta l’analisi, così come al fatto che sia molto raro riuscire a ricevere una risposta dagli autori della pubblicazione e, laddove questa vi sia, è raro si riesca a reperire il materiale usato a qualche anno di distanza. Condividere pubblicamente il codice sorgente e i dati è diventato più comune negli ultimi anni, anche grazie al fatto che in alcune conferenze questo è un punto importante nel valutare la qualità di una pubblicazione. Ciononostante, troppe pubblicazioni sono ancora carenti da questo punto di vista.

Competitività con altri algoritmi semplici e già noti

L’approccio adottato in questo studio per valutare gli algoritmi neurali prevede di utilizzare lo stesso protocollo sperimentale usato negli articoli originali: stessi dati, stesse metriche, stessa lunghezza della lista di raccomandazioni e stessa configurazione (iperparametri) del modello neurale proposto.

La qualità delle raccomandazioni generate dall’algoritmo è poi comparata con un insieme di algoritmi semplici e noti (baseline). Come semplici baseline sono stati inclusi algoritmi non personalizzati (raccomandano a tutti gli stessi articoli molto popolari), alcuni algoritmi euristici noti da un decennio che calcolano la similarità tra due articoli o due utenti in base a quante interazioni hanno in comune (KNN, o k-nearest neighbor), alcuni algoritmi molto semplici di machine learning che utilizzano tecniche non neurali, quali la regressione lineare o la decomposizione in fattori latenti a valori singolari. Le configurazioni (iperparametri) di questi algoritmi baseline sono stati ottimizzati in modo sistematico, per ogni caso sperimentale. L’analisi sperimentale svolta ha richiesto una consistente mole di esperimenti: sono stati addestrati oltre 41 mila modelli per un totale di 253 giorni di computazione.

I risultati possono essere riassunti valutando con quale frequenza (ossia, in quante configurazioni sperimentali) l’algoritmo neurale sia competitivo rispetto a una certa famiglia di semplici baseline. Dei 12 algoritmi analizzati:

  • 4 non sono mai competitivi in nessuno dei casi analizzati o ottengono risultati peggiori rispetto al semplice algoritmo che suggerisce gli articoli più popolari;
  • 3 sono competitivi, nel 50% dei casi circa, solo con algoritmi euristici (KNN), ma non con algoritmi semplici basati su machine learning;
  • 4 sono competitivi con semplici algoritmi di machine learning, ma solo in pochi casi;
  • 1 algoritmo è competitivo in modo consistente con tutte le baseline in quasi tutte le configurazioni sperimentali.

Ulteriori analisi svolte da altri ricercatori hanno confermato questi risultati.

Scalabilità

Studiare la scalabilità di un approccio proposto è una dimensione spesso sottovalutata in ambito di ricerca ma è essenziale per poter comprendere l’effettiva applicabilità della soluzione proposta in un contesto reale o industriale. Da questo punto di vista, è atteso che all’aumentare della complessità della soluzione adottata corrisponda un aumento delle risorse necessarie per il suo utilizzo e quindi un aumento dei costi da un lato e un possibile rallentamento dei tempi di risposta dall’altro. Affinché una nuova soluzione sia vantaggiosa, l’aumento dei costi legato alla sua maggiore complessità deve essere compensato da un incremento nella sua efficacia, ad esempio, nella qualità del risultato.

Analizzando gli articoli oggetto di questo studio, abbiamo potuto osservare che il costo computazionale degli algoritmi complessi basati su reti neurali sia sostanzialmente superiore a quello degli algoritmi baseline più semplici. Nella maggior parte dei casi, le baseline potevano essere addestrate nell’ordine di minuti, laddove invece gli algoritmi basati su reti neurali richiedono molte ore o addirittura giorni anche su GPU (schede grafiche che consentono di accelerare l’addestramento dei modelli neurali) ad alte prestazioni. In questi casi, pertanto, gli algoritmi complessi offrono una qualità delle raccomandazioni globalmente inferiore ad algoritmi più semplici a fronte di un costo computazionale sostanzialmente superiore.

Sistemi di raccomandazione: problemi metodologici

Durante il nostro studio abbiamo individuato, nelle pubblicazioni analizzate, un numero sorprendentemente alto di problemi metodologici, problemi che sono raggruppati in quattro categorie:

  • utilizzo di scenari sperimentali arbitrari,
  • selezione e propagazione di baseline deboli,
  • uso improprio dei dati di test,
  • sovrastima dell’accuratezza del modello (information leakage), errori di altra natura.

In primo luogo, si può osservare come quasi tutte le pubblicazioni affermino di avanzare lo stato dell’arte in senso molto generale, salvo poi effettuare una analisi sperimentale solo in pochi casi molto specifici. Questa appare una contraddizione. I ricercatori, inoltre, hanno grande libertà nel decidere quali siano i casi in cui effettuare la valutazione, tuttavia, quasi mai viene discusso il motivo di tale scelta e quindi se effettivamente la valutazione riportata sia rappresentativa di uno scenario reale significativo. Tra gli articoli analizzati non ve ne erano due valutati nelle stesse condizioni sperimentali: questo rende opaco o impossibile confrontare risultati in pubblicazioni diverse senza eseguire costose sperimentazioni.

Relativamente alla scelta degli algoritmi con cui la nuova tecnica è confrontata, negli ultimi anni algoritmi sempre più complessi sono considerati stato dell’arte e quindi usati come uniche baseline. La nostra analisi, tuttavia, mostra come alcuni di questi metodi non sono così competitivi. Il progresso osservato nelle pubblicazioni è quindi talvolta non esistente in quanto gli algoritmi proposti sono comparati con baseline deboli e quindi più facili da superare. Un problema collegato riguarda la talvolta inadeguata ottimizzazione delle baseline, i cui iperparametri sono frequentemente ignorati o non ottimizzati per le condizioni sperimentali, come avviene invece per gli iperparametri del nuovo modello proposto. Ciò significa che i confronti sono effettuati tra un modello, quello proposto, accuratamente ottimizzato per le specifiche condizioni sperimentali, e un insieme di baseline non ottimizzate affatto o ottimizzate per condizioni sperimentali totalmente diverse. Comparazioni di questo tipo non possono informarci in merito alle reali capacità degli algoritmi usati e non possono produrre alcun risultato affidabile. Per verificare se un nuovo algoritmo sia veramente competitivo è indispensabile assicurarsi non solo di scegliere algoritmi baseline che siano stato dell’arte ma anche che essi siano adeguatamente ottimizzati per la valutazione sperimentale corrente. Qualsiasi algoritmo, anche il più competitivo, se non adeguatamente ottimizzato, non può costituire una baseline realistica e forte.

Sono anche stati individuati diversi altri problemi nella valutazione. Per esempio, in alcuni articoli gli iperparametri sono stati ottimizzati usando i dati di test, ciò costituisce un errore perché porta a sovrastimare l’accuratezza del modello dandogli un vantaggio rispetto ad altri. In altri articoli sono stati osservati errori, quali dati di test non ottenuti in modo consistente con quanto descritto nell’articolo, oppure metriche implementate in modo errato. Due articoli, inoltre, descrivono algoritmi neurali che si basano su ipotesi non dimostrate e che, dopo un’attenta analisi, si sono mostrate errate.

È un problema delle reti neurali?

Le problematiche descritte nelle pratiche sperimentali adottate attualmente negli articoli di machine learning non sono nuove o recenti, né sono limitate al settore dei sistemi di raccomandazione o delle reti neurali. Oltre dieci anni fa Armstrong[2] osservava che “i conti non tornano” e l’accuratezza dei modelli non fosse migliorata come atteso nel corso del decennio precedente. Più recentemente, Lin[3] mostra che i problemi segnalati da Armstrong siano tuttora presenti nel settore dell’Information Retrieval e che sia comune trovare nuovi algoritmi comparati con baseline deboli. Ci sono diversi studi in vari ambiti che indicano come, per certi problemi, le tecniche complesse basate su reti neurali siano superate da algoritmi semplici noti da molti anni. Le nuove tecniche neurali non sono pertanto una soluzione universale ma devono essere applicate con cautela in scenari nei quali possano effettivamente essere efficaci.

Nel complesso, sebbene questo lavoro si sia focalizzato su tecniche neurali recenti, si è osservato che permangono alcuni problemi nelle pratiche sperimentali adottate già osservati più di un decennio fa per tecniche precedenti alle reti neurali. Uno specifico ulteriore problema legato alle reti neurali può riguardare l’alto tempo di computazione di queste tecniche. A causa di tutto questo, l’adeguata ottimizzazione degli iperparametri di questi modelli può richiedere giorni o settimane persino su GPU moderne ad alte prestazioni, rendendo costoso fare solide comparazioni tra loro.

Sistemi di raccomandazione, le possibili soluzioni

Alcune delle problematiche riscontrate, in particolare riguardo alla riproducibilità, dovrebbero essere relativamente agevoli da affrontare, per esempio tramite requisiti più stringenti nella pubblicazione degli articoli. Tecnologie quali la virtualizzazione e i molteplici strumenti per condividere il codice sorgente possono essere utili.

Riguardo agli altri problemi, alcuni, quali la scelta e ottimizzazione degli algoritmi baseline o la giustificazione del protocollo sperimentale adottato, possono essere alleviate grazie a una maggiore attenzione nella fase di peer-review nella quale un gruppo di revisori decide se accettare o meno un articolo per la sua pubblicazione. Questo, tuttavia, pone un ulteriore problema, legato al limitato numero di revisori esperti rispetto all’elevato numero di articoli di machine learning pubblicato ogni anno, tale da rendere difficile assicurare un consistente alto livello nella qualità del processo di revisione.

Tuttavia, anche se tutte le problematiche metodologiche fossero risolte, un ulteriore problema fondamentale rimane irrisolto. Esso riguarda l’eccessivo uso di esperimenti offline su dataset pubblici. Negli articoli analizzati, così come nella maggior parte degli articoli pubblicati, le raccomandazioni non sono mai mostrate ad alcun utente. Per quanto una elevata accuratezza nelle raccomandazioni sia un obiettivo importante per un sistema di raccomandazione, alta accuratezza su dati storici non necessariamente si traduce in migliore soddisfazione dell’utente. Appare quindi dubbio se piccoli incrementi in accuratezza misurati offline con un protocollo di valutazione non chiaramente connesso a uno scenario applicativo siano veramente rilevanti in un contesto reale.

 

Bibliografia

  1. Maurizio Ferrari Dacrema, Simone Boglio, Paolo Cremonesi, and Dietmar Jannach. 2021. A Troubling Analysis of Reproducibility and Progress in Recommender Systems Research. ACM Trans. Inf. Syst. 39, 2, Article 20 (March 2021), 49 pages. DOI:https://doi.org/10.1145/3434185 e Maurizio Ferrari Dacrema, Paolo Cremonesi, and Dietmar Jannach. 2019. Are we really making much progress? A worrying analysis of recent neural recommendation approaches. In Proceedings of the 13th ACM Conference on Recommender Systems (RecSys ’19). Association for Computing Machinery, New York, NY, USA, 101–109. DOI:https://doi.org/10.1145/3298689.3347058
  2. Timothy G. Armstrong, Alistair Moffat, William Webber, and Justin Zobel. Improvements that don’t add up: Ad-hoc retrieval results since 1998. In CIKM ’09, pages 601–610, 2009
  3. Jimmy Lin. The neural hype and comparisons against weak baselines. SIGIR Forum, 52(2):40–51, January 2019

 

FacebookTwitterLinkedIn