Prova di fattibilità del motore di raccomandazione

Guida di riferimento dettagliata di Talend Big Data and Machine Learning

Leggi gli altri articoli della serie:

Configurazione di Sandbox

Manutenzione predittiva tramite l'IoTValutazione dei rischi in tempo realeOttimizzazione del
data warehouse

Introduzione

Dopo avere scaricato l'ambiente virtuale Big Data and Machine Learning Sandbox di Talend, esaminiamone alcuni usi concreti in ambito aziendale. In questo esempio dimostreremo come raccomandare i film più rilevanti per gli utenti in base alle raccomandazioni ricevute dal sito Web fittizio "Talend Movie Database". Utilizzando le funzionalità di apprendimento automatico di Talend è possibile raccomandare i film in base ai rating di singoli visitatori. Per prima cosa prepariamo il modello di raccomandazione utilizzando una grande quantità di dati di rating (per creare un modello ne sono necessari almeno 100.000) raccolti dal sito Web MovieLens. Questo modello consentirà di fornire delle raccomandazioni sui film che con ogni probabilità piaceranno ai visitatori perché utenti precedenti hanno dimostrato gli stessi gusti in base ai loro rating.

Schema del motore di raccomandazione di Sandbox


In primo piano

Apprendimento automatico

Utilizza le funzionalità di apprendimento automatico di Talend per fornire un motore di raccomandazione al tuo sito Web.

Spark Streaming / in tempo reale

Utilizza la tecnologia Spark Streaming per fornire ai tuoi utenti delle raccomandazioni in tempo reale.

Rest Service Icon

Servizio REST per dashboard live

Utilizza un servizio Web RESTful per tenere traccia dei movimenti degli utenti in una dashboard basata sul web.


Esecuzione

Per le istruzioni di esecuzione veloce e l'interfaccia interattiva Web, accedi al portale dei casi d'uso sul motore di raccomandazione dalla pagina di caricamento dell'ambiente Sandbox.

Accesso alla pagina Web del motore di raccomandazione di Sandbox

Apri Talend Studio nell'ambiente Sandbox.Per questo esempio lavoreremo nella cartella RecommendationEngine inclusa nella vista Repository. Esamineremo i job inclusi nelle cartelle Standard, Big Data Batch e Big data Streaming di Job Designs (Progetti job).Quando sei pronto per iniziare, segui questi passaggi:

  1. Seleziona la cartella RecommendationEngine nei job Standard. Esegui il job Step_01_EnvironmentSetup nella cartella A_Setup. Questo job inizializza l'ambiente demo in base alla piattaforma di big data selezionata. Nello specifico, carica i dati iniziali in HDFS e inizializza le tabelle in un database NoSQL. Configurazione del motore di raccomandazione di Sandbox
  2. Seleziona la cartella RecommendationEngine nei job Standard. Per l'esecuzione veloce, esegui il job Step_02_TrainModel che si trova nella cartella B_Model. Questa fase consente di preparare un modello basato sui dati precedenti utilizzando un componente tALSModel. Questo job unico è composto da quattro singoli job Standard e Big Data Batch.Modello di preparazione del motore di raccomandazione
  3. Opzionale: il job Step_02_TrainModel è composto da quattro singoli job Standard e Big Data Batch. Per maggiori dettagli sul funzionamento del motore di raccomandazione e in particolare sulla preparazione del modello di apprendimento automatico, è possibile scegliere di eseguire singolarmente ogni fase di questo processo. A tale scopo, procedi come segue:
    • Job 1 - Seleziona la cartella RecommendationEngine nei job Standard, quindi B_Model > Sub_Steps. Esegui il job DeleteModel. Questo job semplicemente rimuove eventuali modelli di apprendimento automatico esistenti nella directory dei modelli.
    • Job 2 - Seleziona la cartella RecommendationEngine nei job Big Data Batch, quindi Sub_Steps. Esegui il job PrepareMovieData. Questo job colloca i dati dei film e popola le tabelle NoSQL Cassandra in modo da poterli recuperare rapidamente durante l'esecuzione della raccomandazione in tempo reale.
    • Job 3 - Seleziona la cartella RecommendationEngine nei job Big Data Batch, quindi Sub_Steps. Esegui il job Train. Questo job utilizza i dati sui film preparati per preparare un algoritmo ALS (Alternating Least Squares) che sarà utilizzato nel motore di raccomandazione per produrre raccomandazioni sui film personalizzate.
    • Job 4 - Seleziona la cartella RecommendationEngine nei job Standard, quindi B_Model > Sub_Steps. Esegui il job StageModel. Dopo essere stato creato e preparato, il modello viene copiato in HDFS, in modo che il motore di raccomandazione possa accedervi.
  4. Seleziona la cartella RecommendationEngine nei job Standard. Esegui i tre job elencati nella cartella C_Services per abilitare i Servizi API necessari per l'interfaccia Web di questa demo:

    Step_03a_MoviesService

    Servizio film motore di raccomandazione

    Step_03b_RatingsService

    Servizio rating motore di raccomandazione

    Step_03c_RecommendationsService

    Servizio raccomandazioni motore di raccomandazione

  5. Seleziona la cartella RecommendationEngine nei job Big Data Streaming. Esegui il job Step_04a_RecommendationStream.Questo job legge gli input dalla coda Kafka e, sulla base dei dati di input, invia le raccomandazioni sui film in tempo reale, forniti dal database NoSQL Cassandra, in modo che vengano visualizzate all'utente tramite l'interfaccia Web. Streaming del motore di raccomandazione
  6. Ora seleziona l'interfaccia Web. Per impostazione predefinita il tuo accesso è stato eseguito con l'utente Charlie Chaplin. Questo utente ha già valutato alcuni film in precedenza. Scegli un Genre (Genere), quindi all'interno dello stesso seleziona un Movie (Film). Dopo pochi secondi di elaborazione si dovrebbero ottenere delle raccomandazioni basate sui film che l'utente ha già valutato. Pagina Web della demo del motore di raccomandazione
    • Se per questo utente valuti più film dovrai preparare nuovamente il modello. A tale scopo, arresta innanzitutto il job Recommendation Stream attualmente in esecuzione e segui i passaggi indicati di seguito per fornire un nuovo modello al motore di raccomandazione:
      • Seleziona la cartella RecommendationEngine nei job Big Data Batch. Esegui il job Step_06_RetrainModel. Questo utilizzerà il nuovo input per includere il modello di apprendimento automatico per le informazioni più recenti relative all'utente.
      • Seleziona la cartella RecommendationEngine nei job Standard. Esegui il job StageModel nella cartella B_Model > Sub_Steps. Come osservato in precedenza, questo copia il nuovo modello preparato in HDFS, rendendolo accessibile al motore di raccomandazione.
      • Riavvia il job Recommendation Stream. Mentre questo è in esecuzione, torna all’interfaccia Web e scegli un nuovo genere e un nuovo film. Se il numero di film valutati di recente è sufficiente, dovrebbero comparire le nuove raccomandazioni.
  7. Per esercitarti ancora, puoi eseguire la procedura con un nuovo utente, sulla parte in alto a destra di questa pagina Web. Essendo nuovo di zecca, l'utente non avrà rating preselezionati. Seguendo la stessa procedura di prima, valuta alcuni film, riprepara il modello e riavvia il job Recommendation Stream. Dovresti ottenere delle raccomandazioni basate sui rating del nuovo utente.

Conclusione

In questo esempio viene illustrato l'uso di un motore di raccomandazione per fornire raccomandazioni sui film in tempo reale basate sulle informazioni raccolte dai precedenti rating di film forniti da singoli utenti. Maggiori sono le informazioni raccolte dai singoli utenti, più utili saranno le raccomandazioni per l'utente. Dietro le quinte, Talend ha utilizzato Spark Streaming e il modello Alternating Least Squares per generare le raccomandazioni, nonché le funzionalità di lettura veloce di un database NoSQL come Cassandra, per fornire le raccomandazioni al front-end Web in pochissimi secondi.

| Ultimo aggiornamento: giugno 26th, 2019