Criar recomendações de filmes personalizadas

Neste tutorial, usaremos o Movielens Movielens para demonstrar como fazer upload do catálogo de produtos e eventos de usuário para a Pesquisa em E-commerce com IA e treinar um modelo personalizado de recomendação de produtos. O conjunto de dados Movielens contém um catálogo de filmes (produtos) e classificações de filmes do usuário (eventos do usuário).

Trataremos cada classificação positiva de filme (classificação >= 4) como um evento de visualização de página do produto. Vamos treinar um modelo de recomendação do tipo "Outro que você possa gostar" que fará recomendações de filmes com base em qualquer usuário ou um filme semente no nosso conjunto de dados.

Tempo estimado:

  • Etapas iniciais para iniciar o treinamento do modelo: aproximadamente 1,5 hora.
  • Aguardando o treinamento do modelo: aproximadamente 2 dias.
  • Avaliação das previsões do modelo e limpeza: aproximadamente 30 minutos.

Objetivos

  • Saiba como importar dados de produtos e eventos do usuário do BigQuery para a Pesquisa em E-commerce com IA.
  • Treine e avalie modelos de recomendação.

Custos

Este tutorial usa componentes faturáveis do Google Cloud, incluindo:

  • Cloud Storage
  • BigQuery
  • Pesquisa de comércio com IA

Para mais informações sobre os custos do Cloud Storage, consulte a página Preços do Cloud Storage.

Para mais informações sobre os custos do BigQuery, consulte a página de preços.

Para mais informações sobre os custos da Pesquisa em E-commerce com IA, consulte a página de preços da Pesquisa em E-commerce com IA.

Antes de começar

  1. Faça login na sua Google Cloud conta do. Se você começou a usar o Google Cloud, crie uma conta para avaliar o desempenho dos nossos produtos em situações reais. Clientes novos também recebem US $300 em créditos para executar, testar e implantar cargas de trabalho.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  5. Verify that billing is enabled for your Google Cloud project.

Preparar o conjunto de dados

Abra Google Cloud console, selecione seu Google Cloud projeto. Anote o ID do projeto no card Informações do projeto na página do painel. Você precisará do ID do projeto para as etapas a seguir. Em seguida, clique no botão Ativar o Cloud Shell na parte superior do Console.

Cloud Shell

Uma sessão do Cloud Shell é aberta em um novo frame na parte inferior do Google Cloud console e um prompt de linha de comando é exibido.

Importar o conjunto de dados

  1. Use o Cloud Shell para fazer o download do conjunto de dados de origem e descompactá-lo:

    wget https://files.grouplens.org/datasets/movielens/ml-latest.zip
    unzip ml-latest.zip
    
  2. Crie um bucket do Cloud Storage e faça o upload dos dados para ele:

    gcloud storage buckets create gs://PROJECT_ID-movielens-data
    gcloud storage cp ml-latest/movies.csv ml-latest/ratings.csv \
      gs://PROJECT_ID-movielens-data
    
  3. Crie um conjunto de dados do BigQuery:

    bq mk movielens
    
  4. Carregue movies.csv em uma nova tabela de filmes do BigQuery:

    bq load --skip_leading_rows=1 movielens.movies \
      gs://PROJECT_ID-movielens-data/movies.csv \
      movieId:integer,title,genres
    
  5. Carregue ratings.csv em uma nova tabela de classificações do BigQuery:

    bq load --skip_leading_rows=1 movielens.ratings \
      gs://PROJECT_ID-movielens-data/ratings.csv \
      userId:integer,movieId:integer,rating:float,time:timestamp
    

Criar visualizações do BigQuery

  1. Crie uma visualização que converta a tabela "filmes" no esquema do catálogo de produtos de varejo:

    bq mk --project_id=PROJECT_ID \
     --use_legacy_sql=false \
     --view '
     SELECT
       CAST(movieId AS string) AS id,
       SUBSTR(title, 0, 128) AS title,
       SPLIT(genres, "|") AS categories
     FROM `PROJECT_ID.movielens.movies`' \
    movielens.products
    

    Agora a nova visualização tem o esquema esperado pela Pesquisa em E-commerce com IA. Na barra lateral esquerda, escolha BIG DATA -> BigQuery. Na barra do explorador, à esquerda, expanda o nome do projeto e selecione movielens -> products para abrir a página de consulta dessa visualização.

    Visualização de produtos

  2. Agora, converta as classificações de filmes em eventos de usuário. Também vamos:

    • Ignorar classificações negativas de filmes (<4>)
    • Trate todas as classificações positivas como um evento de visualização da página do produto (detail-page-view).
    • Redimensione a linha do tempo Movielens para os últimos 90 dias. Fazemos isso por dois motivos:
      • A Pesquisa em E-commerce com IA exige que os eventos do usuário sejam anteriores a 2015. As classificações do Movielens remontam a 1995.
      • A Pesquisa em E-commerce com IA usa os últimos 90 dias de eventos do usuário ao veicular solicitações de previsão para um usuário. Parece que cada usuário tem eventos recentes quando fazemos previsões para qualquer usuário posteriormente.

    Crie uma visualização do BigQuery. O comando a seguir usa uma consulta SQL que atende aos requisitos de conversão listados anteriormente.

    bq mk --project_id=PROJECT_ID \
     --use_legacy_sql=false \
     --view '
     WITH t AS (
       SELECT
         MIN(UNIX_SECONDS(time)) AS old_start,
         MAX(UNIX_SECONDS(time)) AS old_end,
         UNIX_SECONDS(TIMESTAMP_SUB(
           CURRENT_TIMESTAMP(), INTERVAL 90 DAY)) AS new_start,
         UNIX_SECONDS(CURRENT_TIMESTAMP()) AS new_end
       FROM `PROJECT_ID.movielens.ratings`)
     SELECT
       CAST(userId AS STRING) AS visitorId,
       "detail-page-view" AS eventType,
       FORMAT_TIMESTAMP(
         "%Y-%m-%dT%X%Ez",
         TIMESTAMP_SECONDS(CAST(
           (t.new_start + (UNIX_SECONDS(time) - t.old_start) *
             (t.new_end - t.new_start) / (t.old_end - t.old_start))
         AS int64))) AS eventTime,
       [STRUCT(STRUCT(movieId AS id) AS product)] AS productDetails,
     FROM `PROJECT_ID.movielens.ratings`, t
     WHERE rating >= 4' \
    movielens.user_events
    

Importar catálogo de produtos e eventos do usuário

Agora estamos prontos para importar o catálogo de produtos e os dados de eventos do usuário para a Pesquisa em E-commerce com IA.

  1. Ative a API Pesquisa em E-commerce com IA no seu Google Cloud projeto.

    ATIVAR A API

  2. Clique em Primeiros passos.

  3. Acesse a página Dados> no console da Pesquisa em E-commerce com IA no Gemini Enterprise for Customer Experience.

    Acessar a página "Dados"

  4. Clique em Importar.

Importar catálogo de produtos

  1. Preencha o formulário para importar produtos da visualização do BigQuery que você criou anteriormente:

    • Selecione o tipo de importação: catálogo de produtos.
    • Selecione o nome da ramificação padrão.
    • Selecione a fonte dos dados: BigQuery.
    • Selecione o esquema dos dados: Esquema de produto de varejo.
    • Insira o nome da visualização do produto do BigQuery que você criou anteriormente (PROJECT_ID.movielens.products).

  2. Clique em Importar.

  3. Aguarde até que todos os produtos sejam importados, o que deve levar de 5 a 10 minutos.

    É possível verificar a atividade de importação para o status da operação. Quando a importação for concluída, o status da operação de importação será alterado para Concluído.

    Atividade de importação de produtos

Importar eventos do usuário

  1. Importe a visualização user_events do BigQuery:

    • Selecione o tipo de importação: Eventos do usuário.
    • Selecione a fonte dos dados: BigQuery.
    • Selecione o esquema dos dados: Esquema de eventos do usuário de varejo.
    • Insira o nome da visualização user_events do BigQuery que você criou anteriormente.
  2. Clique em Importar.

  3. Aguarde até que pelo menos um milhão de eventos tenham sido importados antes de prosseguir para a próxima etapa, a fim de atender aos requisitos de dados para treinar um novo modelo.

    É possível verificar a atividade de importação do status da operação. O processo leva cerca de uma hora para ser concluído.

    Atividade de importação de eventos

Como treinar e avaliar modelos de recomendação

Siga estas instruções sobre como treinar e avaliar modelos de recomendação.

Criar um modelo de recomendação

  1. Acesse a página Modelos no console da Pesquisa em E-commerce com IA no Gemini Enterprise for Customer Experience.

    Acessar a página "Modelos"

  2. Clique em Criar modelo.

    • Dê um nome ao modelo.
    • Selecione Outros itens que você pode gostar como o tipo de modelo.
    • Escolha Taxa de cliques (CTR) como o objetivo de negócio.
  3. Clique em Criar.

    Criar modelo

    Seu novo modelo começa o treinamento.

    Modelo criado

Criar uma configuração de exibição

  1. Acesse a página Configurações de exibição no console da Pesquisa em E-commerce com IA no Gemini Enterprise for Customer Experience.

    Acessar a página Configurações de exibição

  2. Clique em Criar configuração de veiculação:

    • Selecione Recomendação.
    • Dê um nome à configuração de exibição.
    • Selecione o modelo que você criou.
  3. Clique em Criar.

Aguarde até que o modelo esteja "Pronto para consulta"

Leva cerca de dois dias para que o modelo seja treinado e esteja pronto para consulta.

Para ver o status, clique na configuração de exibição criada na página Configurações de exibição.

O campo Modelo pronto para consulta indica Sim quando o processo é concluído.

Recomendações de visualização

Quando o modelo estiver pronto para consulta:

  1. Acesse a página Configurações de exibição no console da Pesquisa em E-commerce com IA no Gemini Enterprise for Customer Experience.

    Acessar a página Configurações de exibição
  2. Clique no nome da configuração de exibição para acessar a página de detalhes.
  3. Clique na guia *Avaliar.
  4. Digite o código do filme, como 4993, para "O Senhor dos Anéis" (2001).

    Insira o ID

  5. Clique em Prediction preview para ver a lista de itens recomendados à direita da página.

Limpar

Para evitar cobranças na sua conta do Google Cloud pelos recursos usados no tutorial, exclua o projeto que os contém ou mantenha o projeto e exclua os recursos individuais.

Excluir o projeto

  1. No Google Cloud console, acesse a página Gerenciar recursos.

    Acessar "Gerenciar recursos"

  2. Na lista de projetos, selecione o projeto que você quer excluir e clique em Excluir.
  3. Na caixa de diálogo, digite o ID do projeto e clique em Desligar para excluir o projeto.

Excluir recursos individuais

  1. Acesse a página Configurações de exibição e exclua a configuração de exibição criada.

  2. Acesse a página Modelos e exclua o modelo.

  3. Exclua o conjunto de dados do BigQuery no Cloud Shell:

    bq rm --recursive --dataset movielens
    
  4. Exclua o bucket do Cloud Storage e o conteúdo dele:

    gcloud storage rm gs://PROJECT_ID-movielens-data --recursive
    

A seguir