arrow_back

Consigli sui film in BigQuery ML 2.5

Accedi Partecipa
Accedi a oltre 700 lab e corsi

Consigli sui film in BigQuery ML 2.5

Lab 1 ora universal_currency_alt 5 crediti show_chart Avanzati
info Questo lab potrebbe incorporare strumenti di AI a supporto del tuo apprendimento.
Accedi a oltre 700 lab e corsi

Panoramica

BigQuery è il database di analisi NoOps a basso costo e completamente gestito di Google. Con BigQuery puoi interrogare molti terabyte di dati senza dover gestire alcuna infrastruttura o aver bisogno di un amministratore del database. BigQuery utilizza SQL e sfrutta i vantaggi offerti dal modello di pagamento a consumo. BigQuery permette di concentrarsi sull'analisi dei dati per trovare informazioni significative.

BigQuery Machine Learning (BigQuery ML) è una funzionalità di BigQuery in cui gli analisti di dati possono creare, addestrare, valutare e prevedere tramite modelli di machine learning con una programmazione minima.

Il filtro collaborativo è un modo per generare consigli sui prodotti per gli utenti o per il targeting degli utenti per i prodotti. Il punto di partenza è una tabella con tre colonne: un ID utente, un ID articolo e la valutazione che l'utente ha dato al prodotto. Questa tabella può essere sparsa: gli utenti non devono valutare tutti i prodotti. Quindi, solo sulla base delle valutazioni, questa tecnica trova utenti e prodotti simili e determina la valutazione che un utente darebbe a un prodotto che ancora non ha visto. In questo modo puoi consigliare agli utenti i prodotti con le valutazioni previste più alte o scegliere determinati prodotti come target per gli utenti con le valutazioni previste più alte.

Per vedere come funzionano i sistemi con motore per suggerimenti, userai il set di dati MovieLens. Si tratta di un set di dati con le recensioni sui film rilasciate da GroupLens, un laboratorio di ricerca presso il Dipartimento di informatica e ingegneria dell'Università del Minnesota, sovvenzionato dalla National Science Foundation degli Stati Uniti.

Obiettivi

In questo lab imparerai a:

  • Creare un set di dati BigQuery per archiviare e caricare i dati di MovieLens
  • Esplorare il set di dati MovieLens
  • Usare il modello addestrato per generare consigli in BigQuery
  • Fare previsioni sui prodotti per utenti singoli e gruppi di utenti

configura l'ambiente

Per ciascun lab, riceverai un nuovo progetto Google Cloud e un insieme di risorse per un periodo di tempo limitato senza alcun costo aggiuntivo.

  1. Accedi a Qwiklabs utilizzando una finestra di navigazione in incognito.

  2. Tieni presente la durata dell'accesso al lab (ad esempio, 1:15:00) e assicurati di finire entro quell'intervallo di tempo.
    Non è disponibile una funzionalità di pausa. Se necessario, puoi riavviare il lab ma dovrai ricominciare dall'inizio.

  3. Quando è tutto pronto, fai clic su Inizia lab.

  4. Annota le tue credenziali del lab (Nome utente e Password). Le userai per accedere a Google Cloud Console.

  5. Fai clic su Apri console Google.

  6. Fai clic su Utilizza un altro account e copia/incolla le credenziali per questo lab nei prompt.
    Se utilizzi altre credenziali, compariranno errori oppure ti verranno addebitati dei costi.

  7. Accetta i termini e salta la pagina di ripristino delle risorse.

Apri la console di BigQuery

  1. Nella console Google Cloud, seleziona Menu di navigazione > BigQuery.

Si aprirà la finestra con il messaggio Ti diamo il benvenuto in BigQuery nella console Cloud. Questa finestra fornisce un link alla guida rapida ed elenca gli aggiornamenti dell'interfaccia utente.

  1. Fai clic su Fine.

Attività 1: recupera i dati di MovieLens

In questa attività utilizzerai la riga di comando per creare un set di dati BigQuery per archiviare i dati di MovieLens, che poi verranno caricati nel set di dati da un bucket Cloud Storage.

Avvia l'editor di Cloud Shell

Viene utilizzato Cloud Shell per creare un set di dati BigQuery e caricare i dati di MovieLens.

  1. Nella console Google Cloud, fai clic su Attiva Cloud Shell (Icona di Cloud Shell).
  2. Se richiesto, fai clic su Continua.

Crea e carica il set di dati BigQuery

  1. Esegui questo comando per creare un set di dati BigQuery denominato movies:
bq --location=US mk --dataset movies
  1. Esegui questi comandi separatamente in Cloud Shell:
bq load --source_format=CSV \ --location=US \ --autodetect movies.movielens_ratings \ gs://dataeng-movielens/ratings.csv bq load --source_format=CSV \ --location=US \ --autodetect movies.movielens_movies_raw \ gs://dataeng-movielens/movies.csv

Fai clic su Controlla i miei progressi per verificare l'obiettivo. Recupera i dati di MovieLens

Attività 2: esplora i dati

In questa attività esplorerai e verificherai il set di dati MovieLens utilizzando l'editor di query.

  1. Esegui la seguente query nella query SQL di BigQuery:
SELECT COUNT(DISTINCT userId) numUsers, COUNT(DISTINCT movieId) numMovies, COUNT(*) totalRatings FROM movies.movielens_ratings

Dovresti confermare che il set di dati è composto da oltre 138.000 utenti, quasi 27.000 film e poco più di 20 milioni di valutazioni.

  1. Esamina i primi film utilizzando la query:
SELECT * FROM movies.movielens_movies_raw WHERE movieId < 5

Tabella dei risultati della query che mostra 4 righe di dati sotto le intestazioni delle colonne: Row, movieID, title e genres

  1. Puoi vedere che la colonna "genres" è una stringa formattata. Analizza i generi in un array e riscrivi i risultati in una tabella denominata movielens_movies:
CREATE OR REPLACE TABLE movies.movielens_movies AS SELECT * REPLACE(SPLIT(genres, "|") AS genres) FROM movies.movielens_movies_raw

Puoi eseguire liberamente altre query, finché non ti senti a tuo agio con il set di dati.

Fai clic su Controlla i miei progressi per verificare l'obiettivo. Esplora i dati

Attività 3: valuta un modello addestrato creato mediante il filtro collaborativo

In questa attività visualizzerai le metriche per un modello addestrato che è stato generato utilizzando la fattorizzazione matriciale.

La fattorizzazione matriciale è una tecnica di filtro collaborativo che si basa su due vettori chiamati fattori utente e fattori elemento. I fattori utente sono rappresentazioni con poche dimensioni di uno user_id, così come i fattori elemento rappresentano un item_id.

Per eseguire la fattorizzazione matriciale dei dati, puoi usare la tipica sintassi di BigQuery ML, ma model_type è matrix_factorization e devi identificare il ruolo delle colonne nella configurazione del filtro collaborativo.

Per applicare la fattorizzazione matriciale nei dati delle recensioni sui film, occorre eseguire la query di BigQuery ML per creare il modello. Tuttavia, la creazione di questo tipo di modello può durare fino a 40 minuti e richiede un progetto Google Cloud con risorse orientate alla prenotazione, a differenza di quelle offerte dall'ambiente Qwiklabs.

Nel set di dati BigQuery cloud-training-demos per il progetto di formazione sul cloud è stato creato un modello da usare nel resto del lab.

Nota: la query in basso serve solo come riferimento. NON ESEGUIRE questa query nel tuo progetto:

CREATE OR REPLACE MODEL movies.movie_recommender OPTIONS (model_type='matrix_factorization', user_col='userId', item_col='movieId', rating_col='rating', l2_reg=0.2, num_factors=16) AS SELECT userId, movieId, rating FROM movies.movielens_ratings
Nota: le opzioni num_factors e l2_reg sono state selezionate dopo molti esperimenti per velocizzare l'addestramento del modello.
  • Per visualizzare le metriche del modello addestrato, esegui questa query:
SELECT * FROM ML.EVALUATE(MODEL `cloud-training-demos.movielens.recommender`)

Attività 4: genera dei consigli

In questa attività utilizzerai il modello addestrato per fornire consigli.

Troviamo i migliori film comici da consigliare all'utente con userId 903.

  1. Inserisci questa query:
SELECT * FROM ML.PREDICT(MODEL `cloud-training-demos.movielens.recommender`, ( SELECT movieId, title, 903 AS userId FROM `movies.movielens_movies`, UNNEST(genres) g WHERE g = 'Comedy' )) ORDER BY predicted_rating DESC LIMIT 5

Questo risultato include i film che l'utente ha già visto e valutato in passato.

  1. Eliminiamoli:
SELECT * FROM ML.PREDICT(MODEL `cloud-training-demos.movielens.recommender`, ( WITH seen AS ( SELECT ARRAY_AGG(movieId) AS movies FROM movies.movielens_ratings WHERE userId = 903 ) SELECT movieId, title, 903 AS userId FROM movies.movielens_movies, UNNEST(genres) g, seen WHERE g = 'Comedy' AND movieId NOT IN UNNEST(seen.movies) )) ORDER BY predicted_rating DESC LIMIT 5

Fai clic su Controlla i miei progressi per verificare l'obiettivo. Genera dei consigli

Attività 5: applica il targeting dei clienti

In questa attività scoprirai come identificare i film più votati per un utente specifico. Ti potrebbe capitare di avere un prodotto e di dover trovare i clienti che probabilmente lo apprezzeranno.

Vuoi ottenere più recensioni per il film movieId=96481, che ne ha solo una, nonché inviare dei coupon ai 100 utenti che hanno la maggiore probabilità di valutarlo meglio.

  • Per identificare questi utenti:
SELECT * FROM ML.PREDICT(MODEL `cloud-training-demos.movielens.recommender`, ( WITH allUsers AS ( SELECT DISTINCT userId FROM movies.movielens_ratings ) SELECT 96481 AS movieId, ( SELECT title FROM movies.movielens_movies WHERE movieId=96481) title, userId FROM allUsers )) ORDER BY predicted_rating DESC LIMIT 100

Come risultato abbiamo 100 utenti da scegliere come target.

Fai clic su Controlla i miei progressi per verificare l'obiettivo. Targeting dei clienti

Attività 6: eseguire previsioni batch per tutti gli utenti e i film

In questa attività eseguirai una query per ottenere previsioni batch per utenti e film.

Vorresti fare delle previsioni per ogni combinazione di utenti e film? Invece di dover estrarre utenti e film distinti come nella query precedente, puoi usare una funzione molto utile per eseguire previsioni batch per tutti i movieId e gli userId trovati durante l'addestramento.

  • Inserisci questa query per ottenere previsioni in batch:
SELECT * FROM ML.RECOMMEND(MODEL `cloud-training-demos.movielens.recommender`) LIMIT 100000

Senza il comando LIMIT, i risultati sarebbero troppo grandi per essere restituiti in base alle impostazioni predefinite. L'output, però, fornisce un'idea del tipo di previsioni che possono essere fatte con questo modello.

Come indicato nella sezione precedente, è possibile escludere i film che l'utente ha già visto e valutato in passato. Il motivo per cui i film già visti non vengono esclusi per impostazione predefinita è che esistono dei casi (ad esempio i consigli sui ristoranti) in cui è perfettamente prevedibile che vengano consigliati ristoranti che l'utente ha apprezzato in passato.

Termina il lab

Una volta completato il lab, fai clic su Termina lab. Google Cloud Skills Boost rimuove le risorse che hai utilizzato ed esegue la pulizia dell'account.

Avrai la possibilità di inserire una valutazione in merito alla tua esperienza. Seleziona il numero di stelle applicabile, inserisci un commento, quindi fai clic su Invia.

Il numero di stelle corrisponde alle seguenti valutazioni:

  • 1 stella = molto insoddisfatto
  • 2 stelle = insoddisfatto
  • 3 stelle = esperienza neutra
  • 4 stelle = soddisfatto
  • 5 stelle = molto soddisfatto

Se non vuoi lasciare un feedback, chiudi la finestra di dialogo.

Per feedback, suggerimenti o correzioni, utilizza la scheda Assistenza.

Copyright 2020 Google LLC Tutti i diritti riservati. Google e il logo Google sono marchi di Google LLC. Tutti gli altri nomi di società e prodotti sono marchi delle rispettive società a cui sono associati.

Prima di iniziare

  1. I lab creano un progetto e risorse Google Cloud per un periodo di tempo prestabilito
  2. I lab hanno un limite di tempo e non possono essere messi in pausa. Se termini il lab, dovrai ricominciare dall'inizio.
  3. In alto a sinistra dello schermo, fai clic su Inizia il lab per iniziare

Utilizza la navigazione privata

  1. Copia il nome utente e la password forniti per il lab
  2. Fai clic su Apri console in modalità privata

Accedi alla console

  1. Accedi utilizzando le tue credenziali del lab. L'utilizzo di altre credenziali potrebbe causare errori oppure l'addebito di costi.
  2. Accetta i termini e salta la pagina di ripristino delle risorse
  3. Non fare clic su Termina lab a meno che tu non abbia terminato il lab o non voglia riavviarlo, perché il tuo lavoro verrà eliminato e il progetto verrà rimosso

Questi contenuti non sono al momento disponibili

Ti invieremo una notifica via email quando sarà disponibile

Bene.

Ti contatteremo via email non appena sarà disponibile

Un lab alla volta

Conferma per terminare tutti i lab esistenti e iniziare questo

Utilizza la navigazione privata per eseguire il lab

Utilizza una finestra del browser in incognito o privata per eseguire questo lab. In questo modo eviterai eventuali conflitti tra il tuo account personale e l'account Studente, che potrebbero causare addebiti aggiuntivi sul tuo account personale.