Raccomandazioni in 30 millisecondi

L'unione di Machine Learning, Cloud e Big Data per fornire raccomandazioni personalizzate a milioni di utenti in un istante.

Contensto

I sistemi di raccomandazione sono uno strumento estremamente efficace per le aziende in ambito retail o per quelle di servizi, dalle catene di supermercati alle piattaforme di streaming. Questi sistemi forniscono suggerimenti ai clienti sui siti di e-commerce o agli utenti che devono scegliere cosa vedere dopo una serie tv. Ciò permette di vendere di più e meglio.

Le raccomandazioni possono essere calcolate con diversi algoritmi e fornite su richiesta. Cosa succede, però, se i suggerimenti sono personalizzati per ogni utente? E se gli utenti sono migliaia o milioni? Cosa succede se le raccomandazioni sono complesse, come una lista di prodotti spesso acquistati insieme? E se volessimo anche delle risposte immediate, in meno di 30 millisecondi?

Il nostro approccio

Nel contesto di una grande società italiana di retail, Machine Learning Reply ha messo insieme le conoscenze di Big Data, Cloud e Machine Learning per rispondere a queste domande.

Il concetto chiave per vincere questa sfida è stato ripensare completamente l’approccio classico. In questi casi, infatti, non si tratta di piccole quantità di dati o di semplici calcoli da effettuare ad ogni richiesta di raccomandazione. Occorre sfruttare gli strumenti di Big Data offerti ad esempio da Google Cloud per ideare un’architettura scalabile.

Disegno della soluzione

La mole di utenti, i vincoli di performance ed i razionali che hanno definito la nostra soluzione.

Risposte nell’ordine dei millisecondi

Per rispettare questo requisito, è impensabile calcolare le raccomandazioni al volo. Non ce n’è il tempo. Ne consegue che le raccomandazioni devono essere pre-calcolate e recuperabili in tempi brevissimi.

Scalabilità su milioni di utenti

Se il sistema deve pre-calcolare tutte le raccomandazioni per ogni prodotto e per ogni utente, allora deve avere sufficiente potenza di calcolo. Deve anche poter salvare grandi quantità di dati, sia per l’input che per l’output.

Suddividere il problema

Queste richieste sono però estramente stringenti e non è possibile utilizzare un unico database o un unico strumento per rispondere a tutte. Per questo, occorre suddividere il problema.

Utilizzare gli strumenti Google Cloud

Gli strumenti che rispondono singolarmente a queste richieste sono BigQuery, Dataflow e Bigtable. Vediamo come sono stati utilizzati.

Benefici

Il gioco è fatto. Si ottengono i benefici di entrambi i mondi. Per le API è tutto trasparente: le raccomandazioni sono accessibili in pochi millisecondi. Per il calcolo delle raccomandazioni, anche: il Data Warehouse può effettuare operazioni complesse, applicare modelli di Machine Learning e numerosi join in poco tempo.