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.
Accedi a Qwiklabs utilizzando una finestra di navigazione in incognito.
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.
Quando è tutto pronto, fai clic su Inizia lab.
Annota le tue credenziali del lab (Nome utente e Password). Le userai per accedere a Google Cloud Console.
Fai clic su Apri console Google.
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.
Accetta i termini e salta la pagina di ripristino delle risorse.
Apri la console di BigQuery
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.
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.
Nella console Google Cloud, fai clic su Attiva Cloud Shell ().
Se richiesto, fai clic su Continua.
Crea e carica il set di dati BigQuery
Esegui questo comando per creare un set di dati BigQuery denominato movies:
bq --location=US mk --dataset movies
Esegui questi comandi separatamente in Cloud Shell:
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.
Esamina i primi film utilizzando la query:
SELECT
*
FROM
movies.movielens_movies_raw
WHERE
movieId < 5
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.
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.
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.
I lab creano un progetto e risorse Google Cloud per un periodo di tempo prestabilito
I lab hanno un limite di tempo e non possono essere messi in pausa. Se termini il lab, dovrai ricominciare dall'inizio.
In alto a sinistra dello schermo, fai clic su Inizia il lab per iniziare
Utilizza la navigazione privata
Copia il nome utente e la password forniti per il lab
Fai clic su Apri console in modalità privata
Accedi alla console
Accedi utilizzando le tue credenziali del lab. L'utilizzo di altre credenziali potrebbe causare errori oppure l'addebito di costi.
Accetta i termini e salta la pagina di ripristino delle risorse
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.
In questo lab utilizzerai il set di dati MovieLens per creare un modello di filtro collaborativo per fare previsioni.
Durata:
Configurazione in 0 m
·
Accesso da 60 m
·
Completamento in 60 m