Gerar previsões de vendas com base em dados de varejo

A página oferece orientações sobre como receber previsões da Vertex AI com base em dados de varejo exportados para o BigQuery. Fornecemos vários blocos de código SQL para ajudar você a transformar dados de eventos de usuários e produtos de varejo em um formato que a Vertex AI possa usar. Esses blocos de código são seguidos por procedimentos para que o console da Vertex AI crie um conjunto de dados, treine um modelo e gere uma previsão.

Antes de começar

Antes de gerar previsões de vendas usando seus dados de varejo, você precisa:

  • Faça o upload dos seus dados de varejo usando a Vertex AI para Pesquisa para varejo. Para mais informações, veja:

  • Exporte seus dados de varejo da Vertex AI Search for Retail para o BigQuery. Isso deixa uma tabela de produtos e uma tabela de eventos do usuário no BigQuery, que podem ser usadas nos procedimentos a seguir. Para mais informações, consulte Exportar seus dados para o BigQuery.

    Como alternativa, se os dados de eventos do usuário e do produto já estiverem no BigQuery, na Pesquisa da Vertex AI para o formato de varejo, você poderá usar esses dados para gerar previsões de vendas com base nos dados de varejo. Nesse caso, não é necessário fazer o upload dos dados de varejo e exportá-los para o BigQuery. Para mais informações sobre o formato, consulte Esquema de produto e Sobre os eventos do usuário.

  • Verifique se você recebeu o papel do IAM roles/aiplatform.user para realizar os procedimentos usando o console da Vertex AI.

Criar uma tabela de vendas agregada

O código SQL nesta seção transforma a tabela de eventos do usuário em uma tabela de vendas agregada. Isso significa que, para cada produto na tabela de eventos do usuário que foi vendido pelo menos uma vez, a quantidade de vendas do produto é agregada em um período semanal. Além disso, o código SQL faz o seguinte:

  • Para qualquer produto na tabela de eventos do usuário, se houver carimbos de data/hora ausentes entre a primeira venda do produto na tabela e a última venda de qualquer produto na tabela, cada um dos carimbos de data/hora ausentes será preenchido com uma nova linha com zero vendas. Isso serve para eliminar lacunas no histórico de vendas.

  • Se não houver pelo menos um produto na tabela de eventos do usuário com pelo menos 20 carimbos de data/hora, um produto da tabela será escolhido aleatoriamente e preenchido com linhas suficientes (cada uma com zero vendas) para atingir 20 carimbos de data/hora. Isso é para atender ao requisito da Vertex AI de ter pelo menos 20 carimbos de data/hora ao treinar um modelo.

Para criar uma tabela de vendas agregada:

  1. Substitua as variáveis no código de exemplo de SQL abaixo da seguinte maneira:

    • starting_day_of_week. O dia em que a semana começa. Valores válidos: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY.

    • rdm_user_event_table. Os IDs do projeto, do conjunto de dados e da tabela da tabela de eventos do usuário que você exportou para o BigQuery. O formato é project_id.dataset_id.table_id.

    • rdm_product_table. Os IDs do projeto, do conjunto de dados e da tabela da tabela de produtos que você exportou para o BigQuery. O formato é project_id.dataset_id.table_id.

    • aggregated_sales_table. Os IDs do projeto, do conjunto de dados e da tabela no BigQuery para a nova tabela de vendas agregada. Use o mesmo ID do projeto das tabelas de eventos do produto e do usuário. Use o ID de um conjunto de dados atual. Especifique um ID de tabela, mas não use o ID de uma tabela existente, a menos que você queira substituí-la. O formato é project_id.dataset_id.table_id.

  2. Copie o exemplo de código SQL.

  3. Abra a página do BigQuery no console do Google Cloud.

    Acessar a página do BigQuery

  4. Se ainda não estiver selecionado, selecione o projeto que contém as tabelas de eventos do produto e do usuário.

  5. No painel Editor, cole o exemplo de código SQL.

  6. Clique em Run e aguarde a consulta terminar.

A nova tabela de vendas agregadas é gravada no local no BigQuery que você definiu usando a variável aggregated_sales_table.

Processar a tabela de produtos

O código SQL nesta seção atua na tabela de produtos exportada para o BigQuery, removendo os campos repetidos e estruturados e desaninhando o campo price_info nos campos filhos. Isso é necessário porque a Vertex AI não aceita listas ou estruturas aninhadas. O resultado é a tabela de produtos processados.

Para processar a tabela de produtos:

  1. Substitua as variáveis no código de exemplo de SQL a seguir:

    • rdm_product_table. Os IDs do projeto, do conjunto de dados e da tabela da tabela de produtos que você exportou para o BigQuery. O formato é project_id.dataset_id.table_id.

    • processed_product_table. Os IDs do projeto, do conjunto de dados e da tabela no BigQuery para a nova tabela de produtos processados. Use o mesmo ID do projeto das tabelas de eventos do produto e do usuário. Use o ID de um conjunto de dados atual. Especifique um ID de tabela, mas não use o ID de uma tabela existente, a menos que você queira substituí-la. O formato é project_id.dataset_id.table_id.

    CREATE OR REPLACE TABLE `PROCESSED_PRODUCT_TABLE` AS
    SELECT * EXCEPT (id, attributes, price_info, rating, expire_time,
    available_time, fulfillment_info, images, audience, color_info, promotions,
    publish_time, retrievable_fields, categories, brands, conditions, sizes,
    collection_member_ids, tags, materials, patterns),
    id as sku,
    price_info.price as price_info_price,
    price_info.currency_code as price_info_currency_code,
    price_info.cost as price_info_cost,
    FROM `RDM_PRODUCT_TABLE`
  2. Copie o exemplo de código SQL.

  3. Abra a página do BigQuery no console do Google Cloud.

    Acessar a página do BigQuery

  4. Se ainda não estiver selecionado, selecione o projeto que contém as tabelas de eventos do produto e do usuário.

  5. No painel Editor, cole o exemplo de código SQL.

  6. Clique em Run e aguarde a consulta terminar.

A nova tabela de produtos processados é gravada no local no BigQuery que você definiu usando a variável processed_product_table.

Criar uma tabela de previsão de eventos

O código SQL nesta seção extrai cada SKU que foi vendido pelo menos uma vez na tabela de eventos do usuário. O código cria uma tabela de previsão de eventos que contém todos os SKUs extraídos em todos os carimbos de data/hora no futuro. Os carimbos de data/hora futuros são uma matriz de carimbos de data/hora semanais contínuos, começando pela semana final na tabela de eventos do usuário + 1 semana e terminando na semana final na tabela de eventos do usuário + future_length semanas. Defina o valor future_length como o número de semanas no futuro que você quer que o modelo preveja. Cada linha na tabela de previsão de eventos pode ser identificada de forma exclusiva por um SKU e um carimbo de data/hora.

Para criar uma tabela de previsão de eventos:

  1. Substitua as variáveis no código de exemplo de SQL abaixo da seguinte maneira:

    • starting_day_of_week. O dia em que a semana começa. Valores válidos: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY.

    • rdm_user_event_table. Os IDs do projeto, do conjunto de dados e da tabela da tabela de eventos do usuário que você exportou para o BigQuery. O formato é project_id.dataset_id.table_id.

    • events_prediction_table. Os IDs do projeto, do conjunto de dados e da tabela no BigQuery para a nova tabela de previsão de eventos. Use o mesmo ID do projeto das tabelas de eventos do produto e do usuário. Use o ID de um conjunto de dados atual. Especifique um ID de tabela, mas não use o ID de uma tabela existente, a menos que você queira substituí-la. O formato é project_id.dataset_id.table_id.

    • rdm_product_table. Os IDs do projeto, do conjunto de dados e da tabela da tabela de produtos que você exportou para o BigQuery. O formato é project_id.dataset_id.table_id.

    • future_length. O número de semanas no futuro, após a semana final na tabela de eventos do usuário, que o modelo vai prever.

  2. Copie o exemplo de código SQL.

  3. Abra a página do BigQuery no console do Google Cloud.

    Acessar a página do BigQuery

  4. Se ainda não estiver selecionado, selecione o projeto que contém as tabelas de eventos do produto e do usuário.

  5. No painel Editor, cole o exemplo de código SQL.

  6. Clique em Run e aguarde a consulta terminar.

A nova tabela de previsão de eventos é gravada no local no BigQuery que você definiu usando a variável events_prediction_table.

Criar uma tabela de treinamento da Vertex AI

O código SQL nesta seção une a tabela de vendas agregada à tabela de produtos processados. O resultado é uma tabela de treinamento da Vertex AI, que a Vertex AI usa para treinamento de modelo.

Para criar uma tabela de treinamento da Vertex AI:

  1. Substitua as variáveis no código de exemplo de SQL abaixo da seguinte maneira:

    • vertex_ai_training_table. Os IDs do projeto, do conjunto de dados e da tabela no BigQuery para a nova tabela de treinamento da Vertex AI. Use o mesmo ID do projeto das tabelas de eventos do produto e do usuário. Use o ID de um conjunto de dados existente. Especifique um ID de tabela, mas não use o ID de uma tabela existente, a menos que você queira substituí-la. O formato é project_id.dataset_id.table_id.

    • aggregated_sales_table. Os IDs do projeto, do conjunto de dados e da tabela no BigQuery da tabela de vendas agregada, que você criou em Criar uma tabela de vendas agregada.

    • processed_product_table. Os IDs do projeto, do conjunto de dados e da tabela no BigQuery para a tabela de produtos processados, que você criou em Processar a tabela de produtos.

    CREATE OR REPLACE TABLE `VERTEX_AI_TRAINING_TABLE` AS
    SELECT t1.*, t2.* EXCEPT(sku) FROM `AGGREGATED_SALES_TABLE` AS t1
    LEFT
    JOIN `PROCESSED_PRODUCT_TABLE` AS t2 ON t1.sku = t2.sku
  2. Copie o exemplo de código SQL.

  3. Abra a página do BigQuery no console do Google Cloud.

    Acessar a página do BigQuery

  4. Se ainda não estiver selecionado, selecione o projeto que contém as tabelas de eventos do produto e do usuário.

  5. No painel Editor, cole o exemplo de código SQL.

  6. Clique em Run e aguarde a consulta terminar.

A nova tabela de treinamento da Vertex AI é gravada no local do BigQuery que você definiu usando a variável vertex_ai_training_table.

Criar uma tabela de previsão da Vertex AI

O código SQL nesta seção anexa a tabela de previsão de eventos à tabela de vendas agregadas e a associa à tabela de produtos processados. O resultado é a tabela de previsão da Vertex AI, que é usada para criar uma previsão.

Para criar uma tabela de previsão da Vertex AI:

  1. Substitua as variáveis no código de exemplo de SQL a seguir:

    • vertex_ai_prediction_table. Os IDs do projeto, do conjunto de dados e da tabela no BigQuery para a nova tabela de previsão da Vertex AI. Use o mesmo ID do projeto e do conjunto de dados que você usou para as tabelas de eventos de produto e usuário. Não use o ID de uma tabela atual, a menos que você queira substituí-la. O formato é project_id.dataset_id.table_id.

    • aggregated_sales_table. Os IDs do projeto, do conjunto de dados e da tabela no BigQuery para a tabela de vendas agregada, que você criou em Criar uma tabela de vendas agregada.

    • processed_product_table. Os IDs do projeto, do conjunto de dados e da tabela no BigQuery para a tabela de produtos processados, que você criou em Processar a tabela de produtos.

    • events_prediction_table. Os IDs do projeto, do conjunto de dados e da tabela no BigQuery para a tabela de previsão de eventos que você criou em Criar uma tabela de previsão de eventos.

    CREATE OR REPLACE TABLE `VERTEX_AI_PREDICTION_TABLE` AS
    WITH append_predict_to_history AS (
      SELECT add_to_cart_quantity, category_page_view_quantity,
      detail_page_view_quantity, last_day_of_week, quantity, search_quantity, sku
      FROM `AGGREGATED_SALES_TABLE` UNION ALL SELECT NULL AS
      add_to_cart_quantity, NULL AS category_page_view_quantity, NULL AS
      detail_page_view_quantity, last_day_of_week, NULL AS quantity, NULL AS
      search_quantity, sku FROM `EVENTS_PREDICTION_TABLE`
    )
    SELECT t1.*, t2.* EXCEPT(sku) FROM append_predict_to_history AS t1 LEFT JOIN
    `PROCESSED_PRODUCT_TABLE` AS t2 ON t1.sku = t2.sku
  2. Copie o exemplo de código SQL.

  3. Abra a página do BigQuery no console do Google Cloud.

    Acessar a página do BigQuery

  4. Se ainda não estiver selecionado, selecione o projeto que contém as tabelas de eventos do produto e do usuário.

  5. No painel Editor, cole o exemplo de código SQL.

  6. Clique em Run e aguarde a consulta terminar.

A nova tabela de previsão da Vertex AI é gravada no local no BigQuery que você definiu usando a variável vertex_ai_prediction_table.

Criar um conjunto de dados da Vertex AI

Esta seção mostra como criar um conjunto de dados da Vertex AI que pode ser usado para treinar um modelo de previsão. Para mais informações, consulte Criar um conjunto de dados para treinar modelos de previsão na documentação da Vertex AI.

Para criar um conjunto de dados da Vertex AI:

  1. No console do Google Cloud, na seção da Vertex AI, acesse a página Conjunto de dados.

    Acessar a página "Conjuntos de dados"

  2. Clique em Criar para abrir a página Criar conjunto de dados.

  3. No campo Nome do conjunto de dados, insira um nome para o novo conjunto de dados.

  4. Selecione a guia Tabular.

  5. Selecione o objetivo Previsão.

  6. Na lista Região, selecione a região usada ao criar um conjunto de dados para exportar os dados de varejo para o BigQuery. Se você selecionou us ao criar seu conjunto de dados do BigQuery, é possível selecionar qualquer região nos Estados Unidos. Da mesma forma, se você selecionou eu ao criar seu conjunto de dados do BigQuery, pode selecionar qualquer região na União Europeia. Para mais informações, consulte Exportar seus dados para o BigQuery.

  7. Clique em Criar para criar o conjunto de dados vazio e avance para a guia Origem.

  8. Selecione Selecionar uma tabela ou visualização do BigQuery.

  9. Em Selecionar uma tabela ou visualização do BigQuery, insira os IDs do projeto, do conjunto de dados e da tabela da tabela de treinamento da Vertex AI que você criou em Criar uma tabela de treinamento da Vertex AI. O formato é project_id.dataset_id.table_id.

  10. Clique em Continuar.

    A fonte de dados está associada ao seu conjunto de dados.

  11. Na guia Analisar, selecione sku na lista Coluna "Identificador de série" e last_day_of_week na lista Coluna "Carimbo de data/hora".

  12. Clique em Treinar novo modelo para acessar a página Treinar novo modelo. Para instruções sobre como treinar o modelo, acesse Treinar um modelo de previsão.

Treinar um modelo de previsão

Esta seção mostra como treinar um modelo de previsão usando o conjunto de dados que você criou em Criar um conjunto de dados da Vertex AI. Para mais informações, consulte Treinar um modelo de previsão na documentação da Vertex AI.

Antes de começar

Antes de treinar um modelo de previsão, é necessário criar um conjunto de dados da Vertex AI.

Treinar um modelo

  1. Na página Método de treinamento, selecione o método de treinamento de modelo. Para informações sobre métodos de treinamento, consulte Treinar um modelo na documentação da Vertex AI.

    Clique em Continuar.

  2. Na página Detalhes do modelo, configure o seguinte:

    1. Selecione Treinar novo modelo, se ainda não estiver selecionado.

    2. Insira um nome para o novo modelo.

    3. Selecione quantidade (INTEIRO) na lista Coluna de destino.

    4. Selecione Semanal na lista Granularidade de dados.

    5. Insira a Janela de contexto e o Horizonte de previsão.

      O horizonte de previsão determina em que ponto do modelo o valor desejado será determinado para cada linha de dados de previsão. O horizonte de previsão é especificado em unidades de granularidade de dados.

      A janela de contexto define o período de deslocamento do modelo durante o treinamento (e as previsões). Em outras palavras, para cada ponto de dados de treinamento, a janela de contexto determina até onde o modelo procura padrões preditivos. Se você não especificar uma Janela de contexto, o padrão será o valor definido para Horizonte de previsão. A janela de contexto é especificada em unidades de granularidade de dados.

      Para mais informações, consulte Considerações para definir a janela de contexto e o horizonte da previsão na documentação da Vertex AI.

    6. Clique em Continuar.

  3. Na página Opções de treinamento, configure da seguinte maneira: Quando a seta suspensa está cinza ou não há uma seta suspensa, esse valor não pode ser alterado.

    1. Selecione um valor de Transformação para as colunas na lista Nome da coluna da seguinte maneira:

      • Se o valor do tipo do BigQuery for Float, Integer ou Numeric, defina o valor da transformação como Numeric.

      • Se o valor do tipo do BigQuery for String ou Boolean, defina o valor da transformação como Categorial.

      • Se o valor do tipo do BigQuery for Data, defina o valor de Transformação como Carimbo de data/hora.

    2. Selecione um valor de Tipo de elemento para as colunas na lista Nome da coluna da seguinte maneira:

      • Para add_to_cart_quantity, category_page_view_quantity, detail_page_view_quantity e search_quantity, defina o valor Tipo de recurso como Covariável.

      • Para as colunas restantes que podem ser alteradas, defina o Tipo de elemento como Atributo.

    3. Selecione um valor Disponível na previsão para as colunas na lista Tipo de coluna da seguinte maneira:

      • Para add_to_cart_quantity, category_page_view_quantity, detail_page_view_quantity e search_quantity, defina o valor Availability at forecast como Not available.

      • Para as colunas restantes que podem ser alteradas, defina o valor Tipo de elemento como Disponível.

    4. Clique em Continuar.

  4. Na página Computação e preços, insira o número máximo de horas em que você quer treinar o modelo. Essa configuração ajuda a limitar os custos de treinamento. O tempo decorrido real pode ser maior do que esse valor, porque há outras operações envolvidas na criação de um novo modelo. Para saber mais sobre o tempo necessário para treinar modelos de alta qualidade, consulte Treinar um modelo na documentação da Vertex AI.

  5. Clique em Iniciar treinamento.

    O treinamento do modelo pode levar muitas horas, dependendo do tamanho e da complexidade dos dados, além do orçamento de treinamento, se você tiver especificado um. Você pode fechar esta guia e voltar a ela mais tarde. Você vai receber um e-mail quando o treinamento do seu modelo for concluído. Se você quiser monitorar o progresso do treinamento do modelo, consulte Monitorar o progresso do treinamento.

Monitorar o progresso do treinamento

  1. No Console do Google Cloud, na seção "Vertex AI", acesse a página Treinamento.

    Acesse a página de treinamento

  2. Se ainda não estiver selecionada, selecione a guia Pipelines de treinamento. O modelo que você está treinando deve estar na lista. O treinamento é concluído quando o status muda de Treinamento para Concluído.

Criar uma previsão

Nesta página, mostramos como criar uma previsão usando o modelo treinado em Treinar um modelo de previsão.

Antes de começar

Antes de criar uma previsão, é preciso treinar um modelo de previsão.

Fazer uma solicitação de previsão em lote ao seu modelo

  1. No console do Google Cloud, na seção Vertex AI, acesse a página Previsões em lote.

    Acessar a página "Previsões em lote"

  2. Clique em Criar para abrir a janela Nova previsão em lote e siga as seguintes etapas:

    1. Insira um nome para a previsão em lote.

    2. Na lista Nome do modelo, selecione o modelo que você treinou em Treinar um modelo de previsão.

    3. Na lista Versão, selecione a versão do modelo.

    4. Em Selecionar origem:

      1. Selecione Tabela do BigQuery, se ainda não estiver selecionada.

      2. Insira os IDs do projeto, do conjunto de dados e da tabela no BigQuery para a tabela de previsão da Vertex AI que você criou em Criar uma tabela de previsão da Vertex AI. O formato é project_id.dataset_id.table_id.

    5. Em Saída da previsão em lote:

      1. Na lista Formato de saída, selecione Tabela do BigQuery.

      2. Insira os IDs do projeto e do conjunto de dados no BigQuery para a tabela de saída de previsão em lote que você está criando. Use o mesmo ID do projeto e do conjunto de dados que você usou para as tabelas de eventos do produto e do usuário. O formato é project_id.dataset_id..

    6. Clique em Criar. A página Previsões em lote é exibida.

      A previsão é concluída quando o status muda de Pendente para Concluído. Você também vai receber um e-mail quando a previsão em lote for concluída. A saída da sua solicitação de previsão em lote é retornada no conjunto de dados do projeto do BigQuery especificado. O nome da nova tabela de saída é "predictions_" anexado ao carimbo de data/hora do momento em que o job de previsão foi iniciado. Para mais informações sobre como recuperar e interpretar os resultados da previsão, consulte Recuperar resultados de previsão em lote e Interpretar resultados de previsão na documentação da Vertex AI.