Nel collaborative filtering il fattore chiave non è più la storia dei comportamenti del singolo, ma la similarità tra le scelte di più utenti.

Si fa talvolta confusione fra collaborative filtering e altre tecniche di machine learning. In realtà non tutti i sistemi di raccomandazione, sempre più usati in molti ambiti, applicano la logica del collaborative filtering. C’è una profonda differenza fra gli approcci content-based e quelli che, per prevedere i comportamenti dei consumatori, sfruttano la similarità tra le scelte di più utenti. Solo questi ultimi appartengono, appunto, al dominio del collaborative filtering.

Negli ultimi anni la personalizzazione dell’offerta è diventata un fattore cruciale per molte aziende orientate alla vendita online. Grande interesse è stato rivolto all’analisi e alla modellizzazione dei gusti individuali delle persone, con l’obiettivo di suggerire nuovi prodotti di loro possibile gradimento. Questo meccanismo è alla base dei cosiddetti recommender system, ormai adottati da diverse piattaforme in svariati settori. Ad esempio, tipiche applicazioni sono l’e-commerce (es. Amazon), piattaforme di distribuzione di contenuti multimediali come film (es. Netflix) e musica (es. Last.fm e Pandora Radio), ma anche social media, come Facebook, LinkedIn e MySpace, che usano dei recommender system per suggerire nuovi amici e gruppi (sì, che ci crediate o no, MySpace è ancora vivo).

Un grande impulso alla ricerca in quest’area è stato determinato dal Netflix prize, una competizione, sponsorizzata da Netflix tra il 2006 e il 2009, che metteva in palio un milione di dollari al team che fosse riuscito a migliorare maggiormente il sistema di raccomandazioni del loro immenso database, costituito da milioni di valutazioni di film.

In generale, l’idea alla base di questi sistemi è molto semplice: si sfruttano le informazioni relative ad uno specifico utente, in particolare quelle relative alla sua storia di acquisto, per personalizzare l’offerta. Dato un catalogo di prodotti disponibili, un buon recommender system è in grado di assegnare un indice di gradimento per ciascuno di quei prodotti, calibrato specificatamente su un certo utente.

Un obiettivo, diverse strategie

Diverse strategie sono state esplorate per eseguire questa operazione. Alcuni metodi, detti content-based, cercano di descrivere ogni oggetto coinvolto nell’analisi mediante un set predefinito di caratteristiche. Ad esempio, per ogni utente viene creato un profilo, che può integrare le informazioni anagrafiche con i comportamenti di navigazione. Allo stesso modo, per ogni oggetto del catalogo è creata una descrizione basata sulle relative proprietà caratterizzanti, che chiaramente dipendono fortemente dal dominio considerato. Banalmente, i prodotti di elettronica saranno caratterizzati da specifiche diverse rispetto ai prodotti di abbigliamento. A questo punto entrano in gioco le tecniche di machine learning. Tipicamente queste cercano di stimare un peso per ciascuna feature dei prodotti, indicante l’importanza di quell’aspetto per lo specifico utente. In conseguenza a questo approccio, per ogni utente è stimato un modello statistico differente, indipendente da gli altri utenti della piattaforma.

Negli ultimi anni però, un approccio completamente diverso si sta affermando sempre di più. Si tratta del cosiddetto collaborative filtering, una tecnica che sfrutta la similarità tra gli utenti come fattore chiave per prevedere gli interessi individuali. L’idea di base è che, se due utenti hanno gusti simili probabilmente sono interessati agli stessi prodotti. L’informazione chiave in questo caso è rappresentata dalle scelte passate e dai rating di un utente, ovvero quali prodotti l’utente ha acquistato in passato e come li ha valutati. Ovviamente, utenti simili saranno caratterizzati da rating simili per gli stessi prodotti. Sulla base di questo principio, l’algoritmo suggerirà a un cliente tutti i prodotti valutati con rating alti da parte degli utenti simili. Da un punto di vista duale, se due prodotti sono spesso acquistati insieme, tipicamente questo indica un certo grado di affinità e di conseguenza se un cliente ne acquista uno è probabile che acquisti anche l’altro.

A differenza degli algoritmi content-based, in questo caso non è richiesta la definizione esplicita di un profilo per ogni utente, perché essa viene di fatto ricavata direttamente dai dati. Questo significa che ogni prodotto può essere incluso nel catalogo, anche da contesti molto diversi, perché non è richiesta conoscenza specifica del dominio. L’algoritmo stesso ha la capacità di catturare delle proprietà latenti nascoste nei dati, sulla base dei comportamenti di acquisto, senza necessità di informazioni esterne. Questo è particolarmente utile quando la definizione delle caratteristiche dei prodotti non è così immediata. Per esempio, mentre per i testi esistono tecniche automatiche basate sulla frequenza delle parole, per altri tipi di oggetti come musica e film questa procedura può essere più difficoltosa e non automatizzabile.

Filtraggio collaborativo

Il problema della cold start

Ovviamente ci sono anche delle debolezze nell’adozione di questo approccio. Il principale punto critico è rappresentato del cosiddetto problema della cold start. Questa è la tipica situazione che si verifica quando un utente è aggiunto al modello. Infatti, in questo caso poca informazione è disponibile poiché la storia di acquisto è molto ridotta. Stessa cosa capita quando un nuovo prodotto è aggiunto al catalogo. Di conseguenza, l’accuratezza della raccomandazione aumenta progressivamente all’aumentare dei dati di acquisto raccolti sull’utente. Un altro problema legato a questo tipo di approccio è rappresentato dalle dimensioni del dataset impiegato. Infatti, se pensato come una matrice a due dimensioni, utenti e prodotti, essa sarà caratterizzata da grandi dimensioni, anche se di fatto ogni utente ha acquistato/valutato solo pochi prodotti. Questo pone delle sfide a livello sia di storage del dato sia dal punto di vista computazionale, in quanto ingenti risorse sono necessarie per processare i dati.