Crie recomendações de filmes personalizadas

Neste tutorial, vamos usar o conjunto de dados Movielens para demonstrar como carregar o catálogo de produtos e os eventos do utilizador no Vertex AI Search for commerce e preparar um modelo de recomendação de produtos personalizado. O conjunto de dados MovieLens contém um catálogo de filmes (produtos) e classificações de filmes dos utilizadores (eventos do utilizador).

Vamos tratar cada classificação positiva de um filme (classificação >= 4) como um evento de visualização da página do produto. Vamos preparar um modelo de recomendações do tipo Outros filmes de que pode gostar que vai fazer recomendações de filmes com base em qualquer utilizador ou filme inicial no nosso conjunto de dados.

Tempo previsto:

  • Passos iniciais para começar a preparar o modelo: cerca de 1,5 horas.
  • A aguardar a preparação do modelo: ~2 dias.
  • Avaliar as previsões do modelo e fazer a limpeza: ~30 minutos.

Objetivos

  • Saiba como importar dados de produtos e eventos de utilizadores do BigQuery para o Vertex AI Search para comércio.
  • Prepare e avalie modelos de recomendações.

Custos

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

  • Cloud Storage
  • BigQuery
  • Vertex AI Search para comércio

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

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

Para mais informações sobre os custos do Vertex AI Search para comércio, consulte a página de preços do Vertex AI Search para comércio.

Antes de começar

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  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 (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 (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.

Prepare o conjunto de dados

Abra a Google Cloud consola, selecione o seu Google Cloud projeto. Tome nota do ID do projeto no cartão Informações do projeto na página do painel de controlo. Vai precisar do ID do projeto para os passos seguintes. Em seguida, clique no botão Ativar Cloud Shell na parte superior da consola.

Cloud Shell

É aberta uma sessão do Cloud Shell num novo frame na parte inferior da Google Cloud consola e é apresentado um comando.

Importe o conjunto de dados

  1. Usando o Cloud Shell, transfira e descompacte o conjunto de dados de origem:

    wget https://files.grouplens.org/datasets/movielens/ml-latest.zip
    unzip ml-latest.zip
    
  2. Crie um contentor do Cloud Storage e carregue os dados para o mesmo:

    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 para 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 para 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
    

Crie visualizações do BigQuery

  1. Crie uma vista que converta a tabela de filmes no esquema do catálogo de produtos de retalho:

    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 vista tem o esquema que o Vertex AI Search for commerce espera. Em seguida, na barra lateral esquerda, escolha BIG DATA -> BigQuery. Em seguida, na barra do explorador do lado esquerdo, expanda o nome do projeto e selecione movielens -> products para abrir a página de consulta desta vista.

    Vista Produtos

  2. Agora, converta as classificações de filmes em eventos do utilizador. Vamos:

    • Ignorar classificações negativas de filmes (<4)
    • Tratar cada classificação positiva como um evento de visualização da página do produto (detail-page-view)
    • Redimensione a cronologia do Movielens para os últimos 90 dias. Fazemos isto por dois motivos:
      • O Vertex AI Search para comércio requer que os eventos do utilizador não sejam anteriores a 2015. As classificações do MovieLens remontam a 1995.
      • A Vertex AI Search for commerce usa os últimos 90 dias de eventos do utilizador quando processa pedidos de previsão para um utilizador. Todos os utilizadores vão parecer ter eventos recentes quando fazemos previsões para qualquer utilizador mais tarde.

    Crie uma vista do BigQuery. O comando seguinte usa uma consulta SQL que cumpre os requisitos de conversão indicados 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
    

Importe o catálogo de produtos e os eventos do utilizador

Agora, estamos prontos para importar o catálogo de produtos e os dados de eventos do utilizador para o Vertex AI Search for commerce.

  1. Ative a API Vertex AI Search para comércio para o seu Google Cloud projeto.

    ATIVE A API

  2. Clique em Começar.

  3. Aceda à página Dados> na consola de pesquisa para comércio.

    Aceda à página Dados

  4. Clique em Importar.

Importe o catálogo de produtos

  1. Preencha o formulário para importar produtos da vista do BigQuery que criou anteriormente:

    • Selecione o tipo de importação: Catálogo de produtos.
    • Selecione o nome do ramo predefinido.
    • Selecione a origem dos dados: BigQuery.
    • Selecione o esquema de dados: Esquema de produtos de retalho.
    • Introduza o nome da vista do BigQuery de produtos que criou anteriormente (PROJECT_ID.movielens.products).

  2. Clique em Importar.

  3. Aguarde até que todos os produtos sejam importados. Este processo deve demorar entre 5 e 10 minutos.

    Pode verificar a atividade de importação para ver o estado da operação de importação. Quando a importação estiver concluída, o estado da operação de importação é alterado para Concluído com êxito.

    Atividade de importação de produtos

Importe eventos do utilizador

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

    • Selecione o tipo de importação: Eventos de utilizadores.
    • Selecione a origem dos dados: BigQuery.
    • Selecione o esquema de dados: Esquema de eventos do utilizador do setor de retalho.
    • Introduza o nome da visualização do BigQuery user_events que criou anteriormente.
  2. Clique em Importar.

  3. Aguarde até que, pelo menos, um milhão de eventos tenham sido importados antes de avançar para o passo seguinte, de modo a cumprir os requisitos de dados para preparar um novo modelo.

    Pode verificar a atividade de importação para ver o estado da operação. O processo demora cerca de uma hora a concluir.

    Atividade de importação de eventos

Prepare e avalie modelos de recomendações

Siga estas instruções sobre a preparação e a avaliação de modelos de recomendações.

Crie um modelo de recomendações

  1. Aceda à página Modelos na consola de pesquisa para comércio.

    Aceda à página Modelos

  2. Clique em Criar modelo:

    • Atribua um nome ao modelo.
    • Selecione Outros que podem gostar como o tipo de modelo.
    • Escolha Taxa de cliques (CTR) como o objetivo da empresa.
  3. Clique em Criar.

    Criar modelo

    O seu novo modelo começa a ser preparado.

    Modelo criado

Crie uma configuração de publicação

  1. Aceda à página Configurações de publicação na consola do Search for commerce.

    Aceda à página Configurações de publicação

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

    • Selecione Recomendação.
    • Atribua um nome à configuração de publicação.
    • Selecione o modelo que criou.
  3. Clique em Criar.

Aguarde até o modelo estar "Pronto para consulta"

O modelo demora cerca de dois dias a ser preparado e ficar pronto para receber consultas.

Para ver o estado, clique na configuração de publicação criada na página de configurações de publicação.

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

Pré-visualize recomendações

Quando o modelo estiver pronto para consulta:

  1. Aceda à página Configurações de publicação na consola do Search for commerce.

    Aceda à página Configurações de publicação
  2. Clique no nome da configuração de publicação para aceder à respetiva página de detalhes.
  3. Clique no separador *Avaliar.
  4. Introduza um ID de filme inicial, como 4993 para "O Senhor dos Anéis: A Irmandade do Anel (2001)".

    Introduzir ID

  5. Clique em Pré-visualização da previsão para ver a lista de itens recomendados à direita da página.

Limpar

Para evitar incorrer em custos na sua conta do Google Cloud pelos recursos usados neste tutorial, elimine o projeto que contém os recursos ou mantenha o projeto e elimine os recursos individuais.

Elimine o projeto

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

Elimine recursos individuais

  1. Aceda à página Configurações de publicação e elimine a configuração de publicação que criou.

  2. Aceda à página Modelos e elimine o modelo.

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

    bq rm --recursive --dataset movielens
    
  4. Elimine o contentor do Cloud Storage e o respetivo conteúdo:

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

O que se segue?