arrow_back

Recomendações de filmes no BigQuery ML 2.5

Acesse mais de 700 laboratórios e cursos

Recomendações de filmes no BigQuery ML 2.5

Laboratório 1 hora universal_currency_alt 5 créditos show_chart Avançado
info Este laboratório pode incorporar ferramentas de IA para ajudar no seu aprendizado.
Acesse mais de 700 laboratórios e cursos

Visão geral

O BigQuery é um banco de dados de análise NoOps, totalmente gerenciado e de baixo custo desenvolvido pelo Google. Com ele, você pode consultar muitos terabytes de dados sem ter que gerenciar uma infraestrutura ou precisar de um administrador de banco de dados. O BigQuery usa SQL e está disponível no modelo de pagamento por uso. Assim, você pode se concentrar na análise dos dados para encontrar insights relevantes.

O BigQuery Machine Learning (BigQuery ML) é um recurso do BigQuery usado por analistas de dados para criar, treinar, avaliar e fazer previsões usando modelos de machine learning com o mínimo de programação.

A filtragem colaborativa é uma forma de recomendar produtos a usuários ou segmentar usuários para promover produtos. O ponto de partida é uma tabela com três colunas: um ID do usuário, um ID do item e a classificação que o usuário deu ao produto. A tabela pode ter poucos dados. Os usuários não precisam classificar todos os produtos. Com base apenas nas classificações, a técnica encontra usuários e produtos semelhantes e identifica como um usuário classificaria um produto que ele ainda não viu. Você pode recomendar os produtos aos usuários ou segmentar usuários para produtos com base na maior classificação prevista.

Para demonstrar o funcionamento dos sistemas do recomendador, você vai usar o conjunto de dados MovieLens. Ele contém avaliações de filmes e foi lançado pelo GroupLens, um laboratório de pesquisa do Departamento de Ciência e Engenharia da Computação da Universidade de Minnesota com o financiamento da Fundação Nacional da Ciência dos EUA.

Objetivos

Neste laboratório, você vai aprender a fazer o seguinte:

  • Criar um conjunto de dados do BigQuery para armazenar e carregar dados do MovieLens
  • Analisar o conjunto de dados do MovieLens
  • Usar um modelo treinado para fazer recomendações no BigQuery
  • Fazer previsões de produtos para usuários individuais ou em lote

Configurar o ambiente

Para cada laboratório, você recebe um novo projeto do Google Cloud e um conjunto de recursos por um determinado período e sem custos financeiros.

  1. Faça login no Qwiklabs em uma janela anônima.

  2. Confira o tempo de acesso do laboratório (por exemplo, 1:15:00) e finalize todas as atividades nesse prazo.
    Não é possível pausar o laboratório. Você pode reiniciar o desafio, mas vai precisar refazer todas as etapas.

  3. Quando tudo estiver pronto, clique em Começar o laboratório.

  4. Anote as credenciais (Nome de usuário e Senha). É com elas que você vai fazer login no Console do Google Cloud.

  5. Clique em Abrir Console do Google.

  6. Clique em Usar outra conta, depois copie e cole as credenciais deste laboratório nos locais indicados.
    Se você usar outras credenciais, vai receber mensagens de erro ou cobranças.

  7. Aceite os termos e pule a página de recursos de recuperação.

Abrir o BigQuery no Console do Cloud

  1. No Console do Google Cloud, selecione o menu de navegação > BigQuery:

Você vai ver a caixa de mensagem Olá! Este é o BigQuery no Console do Cloud. Ela tem um link para o guia de início rápido e lista as atualizações da IU.

  1. Clique em Concluído.

Tarefa 1: reunir os dados do MovieLens

Nesta tarefa, você vai usar a linha de comando para criar um conjunto de dados do BigQuery e armazenar os dados do MovieLens. Em seguida, esses dados serão carregados de um bucket do Cloud Storage para o conjunto.

Inicie o editor do Cloud Shell

Use o Cloud Shell para criar um conjunto de dados do BigQuery e carregar os dados do MovieLens.

  1. No console do Google Cloud, clique em Ativar o Cloud Shell (Ícone do Cloud Shell).
  2. Se for solicitado, clique em Continuar.

Crie e carregue o conjunto de dados do BigQuery

  1. Execute este comando para criar um conjunto de dados do BigQuery chamado movies:
bq --location=US mk --dataset movies
  1. Execute os comandos a seguir separadamente no 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

Clique em Verificar meu progresso para conferir o objetivo. Reúna os dados do MovieLens

Tarefa 2: explorar os dados

Nesta tarefa, você vai analisar e verificar o conjunto de dados MovieLens com o Editor de consultas.

  1. Na consulta SQL do BigQuery, execute o seguinte:
SELECT COUNT(DISTINCT userId) numUsers, COUNT(DISTINCT movieId) numMovies, COUNT(*) totalRatings FROM movies.movielens_ratings

Confirme se o conjunto de dados consiste em mais de 138 mil usuários, quase 27 mil filmes e pouco mais de 20 milhões de classificações.

  1. Examine os primeiros filmes com esta consulta:
SELECT * FROM movies.movielens_movies_raw WHERE movieId < 5

Tabela com os resultados gerados que mostra quatro linhas de dados abaixo dos cabeçalhos das colunas: linha, movieId, título e gêneros

  1. Observe que a coluna de gêneros é uma string formatada. Divida os gêneros em uma matriz e reescreva os resultados em uma tabela chamada movielens_movies:
CREATE OR REPLACE TABLE movies.movielens_movies AS SELECT * REPLACE(SPLIT(genres, "|") AS genres) FROM movies.movielens_movies_raw

Faça outras consultas para conhecer melhor o conjunto de dados.

Clique em Verificar meu progresso para conferir o objetivo. Analise os dados

Tarefa 3: avaliar um modelo treinado que foi desenvolvido com a filtragem colaborativa

Nesta tarefa, você verá as métricas de um modelo treinado que foi desenvolvido com a fatoração de matriz.

Essa é uma técnica de filtragem colaborativa que usa dois vetores, denominados fatores de usuário e fatores de item. Os fatores de usuário são uma representação de baixa dimensão de user_id, enquanto os de item representam item_id.

Para fazer a fatoração de matriz dos dados, use a sintaxe típica do BigQuery ML, mas especifique model_type como matrix_factorization e identifique o papel de cada coluna na configuração da filtragem colaborativa.

Para aplicar a fatoração de matriz aos dados de classificação de filmes, é necessário executar a consulta do BigQuery ML para criar o modelo. No entanto, a criação desse tipo de modelo pode levar até 40 minutos e requer um projeto do Google Cloud com recursos orientados por reserva, que não é igual aos oferecidos pelo ambiente do Qwiklabs.

Um modelo foi criado no conjunto de dados cloud-training-demos do BigQuery no projeto de treinamento do Google Cloud. Esse modelo será usado no restante do laboratório.

Observação: a consulta abaixo serve apenas como referência. NÃO A EXECUTE no seu projeto:

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
Observação: selecionamos as opções num_factors e l2_reg após vários experimentos para agilizar o treinamento do modelo.
  • Para ver as métricas do modelo treinado, execute a seguinte consulta:
SELECT * FROM ML.EVALUATE(MODEL `cloud-training-demos.movielens.recommender`)

Tarefa 4: fazer recomendações

Nesta tarefa, você vai usar o modelo treinado para fazer recomendações.

Vamos descobrir quais são as melhores comédias para recomendar ao usuário que tem o userId 903.

  1. Digite esta consulta:
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

O resultado inclui alguns filmes que o usuário já viu e classificou.

  1. Vamos remover essas obras:
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

Clique em Verificar meu progresso para conferir o objetivo. Faça recomendações

Tarefa 5: aplicar a segmentação de clientes

Nesta tarefa, você verá como identificar os filmes mais indicados para um usuário específico. Às vezes, você precisa encontrar os clientes que provavelmente vão gostar de determinado produto.

Você quer mais avaliações do filme movieId=96481, que só tem uma classificação, e quer mandar cupons para os 100 usuários que têm mais probabilidade de dar a classificação mais alta.

  • Identifique os usuários com esta consulta:
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

O resultado indica 100 usuários para a segmentação.

Clique em Verificar meu progresso para conferir o objetivo. Segmentação de clientes

Tarefa 6: fazer previsões em lote para todos os usuários e filmes

Nesta tarefa, você vai fazer uma consulta para gerar previsões em lote para usuários e filmes.

Como fazer previsões para todas as combinações de usuários e filmes? Em vez de recuperar cada usuário e filme como na consulta anterior, você pode usar uma função que facilita as previsões em lote de todos os valores de movieId e userId abordados no treinamento.

  • Faça esta consulta para receber as previsões em lote:
SELECT * FROM ML.RECOMMEND(MODEL `cloud-training-demos.movielens.recommender`) LIMIT 100000

Sem o comando LIMIT, os resultados seriam grandes demais e não retornariam por conta das configurações padrão. Mas a resposta dá uma ideia dos tipos de previsão que podem ser feitos com o modelo.

Como vimos acima, é possível eliminar os filmes que o usuário já assistiu e classificou. Os filmes já vistos não são eliminados por padrão porque há situações em que esses resultados são úteis. Por exemplo, é útil recomendar ao cliente restaurantes que ele já conheceu e gostou.

Finalize o laboratório

Clique em Terminar o laboratório após a conclusão. O Google Cloud Ensina remove os recursos usados e limpa a conta por você.

Você vai poder avaliar sua experiência no laboratório. Basta selecionar o número de estrelas, digitar um comentário e clicar em Enviar.

O número de estrelas indica o seguinte:

  • 1 estrela = muito insatisfeito
  • 2 estrelas = insatisfeito
  • 3 estrelas = neutro
  • 4 estrelas = satisfeito
  • 5 estrelas = muito satisfeito

Feche a caixa de diálogo se não quiser enviar feedback.

Para enviar seu feedback, fazer sugestões ou correções, use a guia Suporte.

Copyright 2020 Google LLC. Todos os direitos reservados. Google e o logotipo do Google são marcas registradas da Google LLC. Todos os outros nomes de produtos e empresas podem ser marcas registradas das respectivas empresas a que estão associados.

Antes de começar

  1. Os laboratórios criam um projeto e recursos do Google Cloud por um período fixo
  2. Os laboratórios têm um limite de tempo e não têm o recurso de pausa. Se você encerrar o laboratório, vai precisar recomeçar do início.
  3. No canto superior esquerdo da tela, clique em Começar o laboratório

Usar a navegação anônima

  1. Copie o nome de usuário e a senha fornecidos para o laboratório
  2. Clique em Abrir console no modo anônimo

Fazer login no console

  1. Faça login usando suas credenciais do laboratório. Usar outras credenciais pode causar erros ou gerar cobranças.
  2. Aceite os termos e pule a página de recursos de recuperação
  3. Não clique em Terminar o laboratório a menos que você tenha concluído ou queira recomeçar, porque isso vai apagar seu trabalho e remover o projeto

Este conteúdo não está disponível no momento

Você vai receber uma notificação por e-mail quando ele estiver disponível

Ótimo!

Vamos entrar em contato por e-mail se ele ficar disponível

Um laboratório por vez

Confirme para encerrar todos os laboratórios atuais e iniciar este

Use a navegação anônima para executar o laboratório

Para executar este laboratório, use o modo de navegação anônima ou uma janela anônima do navegador. Isso evita conflitos entre sua conta pessoal e a conta de estudante, o que poderia causar cobranças extras na sua conta pessoal.