RecSys 2018

Quest’anno ho avuto la fortuna di partecipare al RecSys 2018, uno dei più importanti eventi a livello globale riguardo i sistemi di raccomandazione e tutte le loro applicazioni ed implicazioni. Questa è stata la mia prima partecipazione all’evento e la mia prima volta in Canada (la conferenza si teneva a Vancouver) e devo ammettere che ne è decisamente valsa la pena nonostante il lungo viaggio e una bella botta di jet lag.

La conferenza

La Main Conference si è tenuta dal 3 al 5 ottobre per tutto il giorno: a quanto pare quest’anno gli organizzatori hanno deciso che suddividere in gruppi le presentazioni rischiava di esacerbare le suddivisioni interne al mondo dei sistemi di raccomandazione. Hanno quindi optato per un single track in cui sono state raccolte tutte le sessioni di presentazione dei paper e dell’industria.

Sinceramente ho apprezzato molto la cosa: mi è capitato di vedere cose interessanti in sezioni a cui non avrei mai pensato di partecipare, e viceversa presentazioni abbastanza sterili in sezioni che ad un primo sguardo mi interessavano maggiormente.

Innanzitutto vi comunico che tutti i paper e le demo sono accessibili online gratuitamente: dalla pagina del programma potrete vedere tutto quello che è stato presentato, e speriamo che a breve anche alcune presentazioni delle aziende presenti siano pubblicate online.

I Keynote

Nota di merito ai keynote di Elizabeth Churchill (Direttrice della UX a Google) e Christopher Berry (Data Scientist per la Canadian Broadcasting Corporation). La prima ha discusso davanti ad una platea di ricercatori, provenienti sia dall’accademia che dall’industria, i modi in cui utilizziamo i sistemi di raccomandazione parlando di quanto il design e il modo in cui presentiamo ed utilizziamo questi sistemi sia importante. Christopher ha invece parlato di coesione sociale (problema molto sentito in Canada per ragioni storiche, culturali e geografiche) attraverso lo sviluppo consapevole di sistemi di raccomandazione e non solo.

Da scienziato politico di formazione ho apprezzato molto quest’ultimo keynote che combinato col primo delinea un trend chiaro e semplice: troppo spesso quando costruiamo sistemi di raccomandazione o di predizione in generale ci focalizziamo troppo sull’accuratezza del modello, sull’algoritmo e sui benefici che tutto questo porterà al nostro datore di lavoro o al nostro business. Questo oltre che pericoloso nel medio-lungo termine rischia di essere controproducente proprio per chi pensava di trarne profitto sin dall’inizio (chiamiamolo il somministratore) dato che gli utilizzatori di quel servizio (i consumatori) prima o poi o troveranno qualcosa di meglio o si stancheranno di vedersi somministrare sempre la solita minestra.

Purtroppo per quanto riguarda Lise Getoor e il suo keynote non sono ancora stato in grado di provare PSL: questo è un nuovo linguaggio di programmazione probabilistica completamente Open Source e sembra davvero molto interessante, soprattutto per la costruzione di baseline molto solide o per la rapida risoluzione di problemi semplici o non convenzionali. Nonostante questo il keynote è stato ottimo, è solo che essendo incentrato su di un nuovo linguaggio avrebbe molto senso provarlo prima di poter dare una valutazione (stay tuned, non si sa mai mi venga voglia di farci un giro nelle prossime settimane).

I Paper

Sono stati presentati molti paper interessanti, ma se ne dovessi scegliere uno sarebbe sicuramente Generation meets recommendation: proposing novel items for groups of users. La soluzione proposta non si limita a raccomandare items ad utenti di un servizio, ma genera nuovi prodotti e li raccomanda ai gruppi a cui più interesseranno questi nuovi items.

Il paper è stato anche vincitore di un primo premio e a mio avviso se si dimostrasse efficiente ed effettivamente utilizzabile su larga scala potrebbe rappresentare una svolta per molti settori aziendali. In questo caso il Deep Learning è in primo piano dato che senza encoding e decoding non ci sarebbe possibile estrarre questi nuovi items, ma il mondo della raccomandazione non è ancora completamente infatuato del Deep Learning: circa metà dei paper hanno presentato soluzioni più tradizionali che a mio avviso si rivelano essere piuttosto intelligenti e soprattutto utilizzabili su larga scala senza necessità di essere Google.

L’Industria

I talk da parte delle aziende invitate – fra cui Pinterest, Netflix, Slack, Hulu, Flipboard e Zalando – sono stati i più interessanti dal mio punto di vista: anche se ovviamente le soluzioni presentate venivano esposte a grandi linee si parlava di roba che girava effettivamente in produzione da qualche parte.

Ad esempio Pinterest ha presentato una soluzione semplice, ma molto efficace al problema del filtering di milioni e milioni di possibili items: una volta effettuata una ricerca da parte di un utente, quando questi clicca su una foto interessante parte una serie di richieste al servizio di ricerca che combina la query originale in vari modi con i tag più importanti della foto in questione.

Da queste ricerche vengono prese in considerazione solo le “top N” immagini di ognuna di loro e su queste un modello XGBoost1 va in predizione per la raccomandazione. Il fatto che tutto debba essere in real time o quasi la rende una scelta molto furba e che funziona senza troppi fronzoli. Se volete dare un’occhiata al sistema in azione potete andare a questo link: vedrete un’auto che ho trovato con la query cool car e sotto di essa molte immagini correlate.

A questo punto se aprite l’inspector (F12 su quasi ogni browser), andate sull’analisi di rete (Network) e fate un refresh della pagina vedrete tutta la pletora di richieste che vengono eseguite e se vi focalizzate su quelle nominate “?source_url=” vedrete che in alcune di quelle risposte si trovano metadati che non sono la vostra query originale, ma che hanno qualcosa a che fare con l’immagine in questione.

Valutazione

Come si sarà intuito da quello già scritto sebbene reputi l’esperienza molto positiva e formativa ho trovato un certo scollamento fra il mondo accademico (i paper) e l’industria: la maggior parte delle domande che veniva dai colleghi dell’industria si focalizzavano sulla scalabilità, la semplicità d’uso e di implementazione e su come monitorare efficientemente i risultati.

Spesso queste domande non avevano risposta o finivano molto sul vago col rischio di lasciare nel cassetto idee che sulla carta potrebbero essere interessanti, ma nei fatti potrebbero rivelarsi inutilizzabili per la grande maggioranza dei casi d’uso. Se l’accademia vuole continuare a ricoprire un ruolo importante in questo campo il focus dovrebbe spostarsi dallo sviluppo di algoritmi puri a quello di soluzioni più complete.

Capisco che non sia semplice, ma è quello che serve all’industria: cose semplici, intelligenti e che funzionano. Anche su larga scala.

1. Vergognosa auto promozione della mia libreria Clojure per utilizzare XGBoost


Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *