Come fanno i sistemi di raccomandazione a sapere cosa potrebbe piacerti?

Come creare suggerimenti efficienti con Hadoop e In-Memory Analytics.

Articolo di Wayne Thompson, Manager of Data Sciences Technologies, SAS

Se hai avuto l’occasione di acquistare su Amazon, Pandora o Netflix, avrai avuto anche l’occasione di sperimentare i cosiddetti sistemi di raccomandazione. Questi sofisticati sistemi analizzano la cronologia degli acquisti e generano suggerimenti personalizzati in real time mentre stai facendo shopping.

Si tratta di un win-win: i clienti ottengono suggerimenti personalizzati e utili su servizi o prodotti di loro interesse mentre le aziende costruiscono proattivamente una migliore relazione col cliente; aumenta così il risparmio e migliorano le vendite in percentuali tra il 5 e il 20%.

I consigli migliori per singoli individui o per i gruppi hanno bisogno degli analytics per risolvere l'ardua sfida di elaborazione e poi processarli velocemente.

Il sistema di raccomandazione adotta diversi approcci. I modelli che guidano possono essere:

  • Basati sui contenuti: suggeriscono prodotti/servizi in base alla descrizione di ciò che il cliente ha osservato o ha acquistato in passato, insieme alla descrizione di quelli che ha visto o comprato.
  • Basato sulla community: suggeriscono prodotti/servizi che utenti con caratteristiche simili hanno approvato o acquistato in passato.


I sistemi di raccomandazione sono ulteriormente suddivisi in due tipologie, quelli che ricevono un feedback diretto o un feedback indiretto:

  • Esplicito: si basa sulle classificazioni o i tag dei clienti (ad esempio le recensioni sui ristoranti con una scala da 1 a 5).
  • Implicito: suggerisce oggetti che in passato sono stati comprati insieme nello stesso momento.

Il sistema di raccomandazione è stato impiegato in differenti tipi di industrie e contesti. I venditori online e le aziende dell'intrattenimento utilizzano i suggerimenti in real-time o mostrano pubblicità basate su cosa il cliente sta guardando o ascoltando. I social network come LinkedIn e Facebook consigliano connessioni o amici in base al tuo network esistente.

Come funziona il sistema di raccomandazione?

Per trovare i migliori suggerimenti per il singolo individuo o per la collettività, hai bisogno di analytics che risolvano velocemente delle tough computational e processing challenge, velocemente. Questo perché devi essere in grado di analizzare i dati massivi in tempo reale, non dopo quando il cliente e le opportunity sono svanite.

Questo è il perché molte aziende stanno passando a Hadoop per la recommendation engines. Hadoop è un framework software open-source per l'esecuzione di applicazioni su un ampio cluster di hardware di base. Hadoop offre un'enorme potenza di elaborazione, la capacità di gestire illimitati lavori e attività virtuali simultaneamente, questo lo rende notevolmente economico comparato a una tradizionale infrastruttura di dati dell'impresa.

Portiamo una nota di high-tech al motto, "molte manirendono il lavoro leggero", i dati vengono memorizzati su dischi locali situati su un cluster di server. L'elaborazione viene spinta ai dati e non viceversa, e agisce in parallelo per segnare la velocità dei processi.

In uno scenario tipico, ti ritroveresti con un alto volume di dati di clienti registrati su Hadoop, in data nodes multipli e in un unico nodo, noto anche come general node o edge node. Una volta che i dati sono stati caricati nella memoria di un cluster Hadoop, il software di in-memory analytics prende il sopravvento. Il sistema si divide per prevalere. I data nodes calcolano dei modelli di recommendation contemporaneamente, successivamente restituiscono al general node la miglior combinazione per valutare l’oggetto adatto per l’utente ai margini del cluster, per procedere infine con la decisione.

Supponiamo che un venditore online voglia generare consigli basati su dati di 1 milione di utenti, 500.000 libri e 5 milioni di valutazioni di libri.
Data la dimensione del data set, questo sarebbe un algoritmo computazionale intensivo che potrebbe richiedere ore o giorni per essere elaborato utilizzando un software analitico tradizionale. Attraverso processi distribuiti e in-memory analytics, questo viene svolto in pochi minuti, e fornisce suggerimenti accurati mentre il cliente sta ancora acquistando dal sito.

Come scegliere il miglior algoritmo

Come menzionato prima, esistono diversi modi per arrivare a un suggerimento rilevante, e quindi una scelta di algoritmi da utilizzare nei recommendation models. Per esempio:

  • Il vicino più prossimo al K è un filtro collaborativo basato su misure di associazione tra elementi o utenti.
  • Il cold starting, suggerisce ai visitatori del nuovo sito prodotti tipici che finora sono stati apprezzati da tutta la clientela.
  • La Matrix factorization è un modo per creare fattori latenti che rappresentano gruppi di elementi o famiglie di elementi
  • Le association rules consigliano automaticamente oggetti relativi ad oggetti che hai cercato o messo nel carrello.
  • Clustering group di utenti o elementi simili per semplificare l'analisi di matrici data di grandi dimensioni
  • Slope one stima le preferenze per i nuovi oggetti basandosi sulla differenza del valore delle preferenze tra un nuovo oggetto e gli altri oggetti preferiti dall'utente.

Quale algoritmo svolgerebbe il lavoro nel migliore dei modi per la tua situazione? Provali. Prendi diversi algoritmi che competono tra loro per individuare quale funziona meglio per uno specifico problema commerciale. Il vincitore potrebbe anche essere quello che combina tra loro diverse tecniche di analisi.

La capacità di elaborazione di Hadoop, distribuita in parallelo, supera i problemi di larghezza di banda e coordinamento associati all'elaborazione di algoritmi complessi nei confronti di miliardi di registrazioni. Gli in-memory analytics possono risolvere velocemente problemi complessi utilizzando i big data, formulando suggerimenti sempre più accurati man mano che "impara". Insieme, queste tecnlogie possono portare suggerimenti più rilevanti ai touch points di tutti i clienti, in tempo reale, per oggetti sia classificati che non classificati.

L’ultimo pezzo del puzzle

Abbiamo parlato di come il recommendation system funziona e come costruire modelli di suggerimento velocemente, ma un elemento vitale è ancora mancante: vale a dire come impiegare i modelli di suggerimento. L’event stream processing è utilizzato come motore per collezionare, filtrare o aggregare dati e suggerimenti utilizzati attraverso diversi event stream processing (ESP) in real time, il che completa l’intero ecosistema del recommendation system dal data collection e pre-processo di modellamento e utilizzo.


Wayne Thompson

Wayne Thompson, Manager of Data Science Technologies at SAS, È un famoso presentatore, insegnante, professionista e innovatore a livello mondiale nel campo del data mining e machine learning. Ha lavorato con le più grandi organizzazioni mondiali per aiutarle a controllare gli analytics fino a ottenere le migliori prestazioni. Durante questi 20 anni in SAS, Thompson ha ricevuto il merito di aver portato sul mercato molte tecnologie SAS Analytics. Il suo attuale focus è sugli strumenti di self-service data mining per gli analisti del business.

Scopri di più

  • Guarda il webcast dell'autore, che presenta una demo del software di SAS In-Memory Statistics mentre viene applicato a un caso di recommendation.

Get More Insights


Want more Insights from SAS? Subscribe to our Insights newsletter. Or check back often to get more insights on the topics you care about, including analytics, big data, data management, marketing, and risk & fraud.