Quando guardate un film o acquistate un prodotto su piattaforme online, vi siete mai chiesti cosa si nasconde dietro ai suggerimenti che vi sono proposti in automatico? Questo meccanismo si basa sui sistemi di raccomandazione (recommender system). Per approfondire l’argomento, abbiamo chiesto al nostro collega Diego Monti, autore di pubblicazioni scientifiche al riguardo, come funzionano e come i Linked Open Data possono migliorarli.

Oggi chi conosce i nostri gusti in fatto di canzoni meglio del nostro servizio di musica in streaming preferito? Lo stesso accade in molti altri ambiti, infatti si verifica su piattaforme come Booking, Spotify, Amazon, Netflix. Si tratta di suggerimenti automatici elaborati da un software o algoritmo progettato con lo scopo di fornire consigli personalizzati per ogni singolo utente, non di una classifica con i prodotti più acquistati o gli elementi più visualizzati in generale.

Questo meccanismo si basa sulle scelte che ogni utente ha effettuato durante la navigazione e l’utilizzo della piattaforma; ciò agevola nella fruizione di cataloghi molto grandi difficili da consultare manualmente nel dettaglio, offrendo quindi all’utente un servizio più soddisfacente e al fornitore un aumento dei profitti mettendo in mostra altri prodotti che potrebbero suscitare ulteriore interesse.

Come funzionano?

Il punto di partenza sono i dati memorizzati sul profilo dell’utente, che può esprimere preferenze attraverso la valutazione con le stelline o il metodo binario like/unlike; oppure, semplicemente analizzando il comportamento degli utenti, calcolando ad esempio il numero delle volte in cui una canzone è stata ascoltata dal singolo utente.

Esistono quindi diverse tipologie di sistemi di raccomandazione?

A seconda che si scelga di partire dalle preferenze dell’utente o dalla similarità dei prodotti o elementi, i sistemi di raccomandazione possono essere classificati in: filtro collaborativo, approcci basati sui contenuti e modelli ibridi.

Tutti, ma in particolare l’approccio basato sul filtro collaborativo, fanno riferimento alle preferenze espresse dagli utenti in passato (es. stelline). Analizziamoli nel dettaglio.

Filtro collaborativo

Si tratta del primo approccio ad essere realizzato con lo scopo di elaborare un suggerimento a partire dalle preferenze espresse dagli utenti, addirittura non tenendo conto delle caratteristiche dei prodotti.

Esattamente come nella realtà, individuati due utenti che hanno gusti simili perché hanno ascoltato le stesse canzoni, se uno dei due a un certo punto ascolta una canzone che l’altro non conosce, questa gli potrebbe essere suggerita.

Questo sistema, chiamato collaborative filtering, negli anni è stato migliorato ed oggi è solitamente basato sul modello matematico della fattorizzazione della matrice.

L’algoritmo k-NN (k-nearest neighbors) rappresenta un esempio di filtro collaborativo ed è la trasposizione in termini matematici delle raccomandazioni che facciamo normalmente nella vita. Può essere basato non solo sugli utenti, ma anche sui prodotti: dato un prodotto si cercano i più simili, che hanno ricevuto dagli utenti un numero minimo di valutazioni in comune.

Quando il numero degli utenti è più grande rispetto al numero dei prodotti il sistema è più efficiente, infatti il filtro collaborativo funziona bene solo con tante valutazioni.

Il rischio? Che i prodotti poco popolari non vengano inclusi nei suggerimenti.

Approccio basato sui contenuti

In questo caso si tratta di un metodo semantico che funziona:

  • calcolando la similarità tra nuovi prodotti e quelli valutati positivamente in precedenza attraverso le caratteristiche in comune.
  • nel caso delle notizie o trame di film, trattandosi di un testo si fa riferimento alla ricorrenza di parole chiave per trovare altri elementi simili.

Questo implica un lavoro di taggatura del testo che consiste nell’associare a ogni prodotto delle parole chiave attraverso le quali può essere poi caratterizzato in fase di ricerca.

Ad esempio come avviene sul nostro ContrattiPubblici.org, che però fornisce raccomandazioni non personalizzate: a ogni contratto vengono associati contratti simili in base al testo contenuto nell’oggetto.

Infatti, per risolvere il problema spesso si ricorre all’estrazione automatica delle parole chiave dal testo mentre in altri casi sono gli utenti stessi a proporle, come ad esempio l’inserimento degli hashtag sui post Instagram per permettere la ricerca di foto relative a un tema specifico.

Modello ibrido

I precedenti approcci sono caratterizzati da aspetti positivi e negativi, in base alle diverse esigenze ogni piattaforma sceglie a quale far riferimento; di solito il modello ibrido è il più usato, proprio perché combina i due approcci compensandone le debolezze. Per esempio, per i nuovi utenti si privilegia il sistema basato sui contenuti, mentre il filtro collaborativo viene applicato nel momento in cui saranno state espresse più valutazioni.

Infatti, alcune piattaforme all’inizio richiedono di segnalare i generi di proprio interesse per memorizzare informazioni che caratterizzano e rispecchiano i gusti dell’utente in modo accurato anche in assenza di valutazioni.

Il rischio è che gli argomenti proposti siano tutti simili, producendo l’effetto bolla, poiché, in base alle preferenze espresse, si continueranno a vedere sempre contenuti simili.

Invece, lo scopo dei sistemi di raccomandazione è anche quello di promuovere la novità, la diversità e la serendipità. Cosa vuol dire?

Novità significa ottenere suggerimenti che non siano i più popolari del catalogo (sono corretti, ma poco utili perché probabilmente si conoscono già) ma proposte derivate dalla coda lunga.

Diversità, far in modo che i suggerimenti che vengono proposti siano più diversi possibili tra di loro per favorire una maggiore esplorazione.

Serendipità, promuovere scoperte inaspettate, cioè qualcosa che sia di proprio gradimento, ma non necessariamente popolare.

Per raggiungere questo scopo a che soluzione è possibile ricorrere? Magari all’utilizzo della tecnologia Linked Open Data.

Come i Linked Open Data possono evitare l’effetto bolla e migliorare i sistemi di raccomandazione?

Sistemi di raccomandazione
Da entity2rec: Property-specific Knowledge Graph Embeddings for Item Recommendation

Da quanto emerge dallo studio su entity2rec: Property-specific Knowledge Graph Embeddings for Item Recommendation di Enrico Palumbo, Diego Monti, Giuseppe Rizzo, Raphaël Troncy ed Elena Baralis, l’idea è di utilizzare i knowledge graph per creare un sistema di raccomandazione ibrido che combini accuratezza con le caratteristiche elencate prima, generando suggerimenti più precisi e non ovvi.

La tecnica consiste nel creare una rete che coniughi i prodotti e le singole informazioni contenute nelle loro descrizioni alle preferenze degli utenti, espresse come collegamenti del grafo. Le singole informazioni sui contenuti vengono estratte da database di conoscenza libera e collaborativa come Wikidata o DBpedia, collegati alla Linked Open Data Cloud.

Il vantaggio?

Riusare i dati disponibili della Linked Open Data Cloud per ottenere raccomandazioni maggiormente approfondite, su più livelli, consente di ottimizzare la fruizione dell’utente permettendo una maggiore scoperta di contenuti diversi, evitando di imbattersi sempre in contenuti della stessa tipologia.

Facciamo un esempio pratico.

Un utente ha espresso una valutazione positiva per il film Pearl Harbor, il regista è Michael Bay, allora è probabile che possa piacergli anche un altro dei suoi film come Armageddon, che può appartenere o no al genere di film per cui inizialmente aveva espresso apprezzamento.

Rispetto ai filtri di cui abbiamo parlato nel paragrafo precedente, in questo caso si tiene conto sia del feedback dell’utente, sia dei contenuti, potenziati dalla conoscenza semantica delle relazioni esplicitamente espresse; è possibile individuare, quindi, il fattore su cui si basano i risultati della raccomandazione finale, conoscendo quali tra le relazioni del grafo sono considerate di maggior rilievo rispetto alle altre, influenzando i suggerimenti.

Con questo metodo i principi di novità, diversità e serendipità sono soddisfatti!