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 o produto de varejo dados de eventos em um formato que a Vertex AI pode 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 upload dos seus dados de varejo usando a Vertex AI para Pesquisa para Retail. Para mais informações, veja:

  • Exporte seus dados de varejo da Vertex AI para Pesquisa para Retail no no BigQuery. Isso deixa você com uma tabela de produtos e um usuário tabela de eventos do BigQuery no BigQuery, que você pode usar nos procedimentos. Para mais informações, consulte Exportar seus dados para o BigQuery.

    Como alternativa, se os dados de eventos do produto e do usuário já estiverem no No BigQuery, no formato da Vertex AI para Pesquisa para Retail, esses dados para gerar previsões de vendas com base em dados de varejo. Nesse caso, 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ê tem o papel roles/aiplatform.user do IAM para é possível 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 vendas zero. Isso elimina 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 seguinte código de exemplo SQL da seguinte forma:

    • 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 padrão. Os IDs do projeto, do conjunto de dados e da tabela do produto que você exportou para o BigQuery. O formato é project_id.dataset_id.table_id.

    • aggregated_sales_table é informado. Os IDs do projeto, do conjunto de dados e da tabela no BigQuery para a nova tabela de vendas agregada. Use a mesma ID do projeto como as tabelas de eventos de produto e 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í-lo. 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.

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

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 é que na tabela de produtos processados.

Para processar a tabela de produtos:

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

    • 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 BigQuery para a nova tabela de produtos processados. Use a mesma ID do projeto como as tabelas de eventos de produto e 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.

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

Criar uma tabela de previsão de eventos

O código SQL nesta seção extrai cada SKU que foi vendida 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. O futuro Os carimbos de data/hora são uma matriz de carimbos de data/hora semanais contínuos, começando pelo semana na tabela de eventos do usuário + 1 semana e terminando na última semana do usuário tabela de eventos + 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 seguinte código de exemplo SQL da seguinte forma:

    • 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 para o usuário tabela de eventos exportada 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 a mesma ID do projeto como as tabelas de eventos de produto e de usuário. Usar o ID de uma no conjunto de dados. Especifique um ID de tabela, mas não use o ID de uma tabela existente a menos que você queira substituí-lo. O formato é project_id.dataset_id.table_id.

    • rdm_product_table. Os IDs do projeto, do conjunto de dados e da tabela para o produto 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. Selecione o projeto que contém seu produto, se ainda não estiver selecionado e tabelas de eventos do usuário.

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

  6. Clique em Executar e aguarde a consulta terminar de ser executada.

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

Criar uma tabela de treinamento da Vertex AI

O código SQL nesta seção une a tabela de vendas agregadas à 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 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 é informado. Os IDs do projeto, do conjunto de dados e da tabela o BigQuery da tabela de vendas agregadas, que você criou Crie uma tabela de vendas agregadas.

    • processed_product_table. Os IDs do projeto, do conjunto de dados e da tabela o 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.

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

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 é a tabela de previsão da Vertex AI, usada para criar uma previsão do tempo.

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

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

    • 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 é informado. Os IDs do projeto, do conjunto de dados e da tabela no BigQuery para a tabela de vendas agregadas, que você criou em Criar uma tabela de vendas agregadas.

    • 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 Executar e aguarde a consulta terminar de ser executada.

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

Criar um conjunto de dados da Vertex AI

Nesta seção, mostramos como criar um conjunto de dados da Vertex AI que você pode usar 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 "Vertex AI", acesse 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.

  4. Selecione a guia Tabular.

  5. Selecione o objetivo Previsão.

  6. Na lista Região, selecione a região que você usou ao criar uma 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ê selecionar eu quando você criou o conjunto de dados do BigQuery, é possível selecionar 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. Clique em 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 avançar para a página Treinar novo modelo. Para instruções para 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 do modelo. Para informações sobre métodos de treinamento, consulte Treinar um modelo na na documentação da Vertex AI.

    Clique em Continuar.

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

    1. Selecione Treinar novo modelo, caso ainda não esteja 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 O horizonte da previsão é especificado em unidades de Granularidade de dados.

      A janela de contexto define o período de busca do modelo durante o treinamento. (e para previsões). Em outras palavras, para cada ponto de dados de treinamento, a janela de contexto determina até quanto tempo atrás o modelo procura desenhos. 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 quando não há seta suspensa, esse valor não pode ser alterado.

    1. Selecione um valor de Transformação para as colunas em Nome da coluna. da seguinte forma:

      • 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 de Tipo de atributo como Covariável.

      • Das colunas restantes, para aquelas que podem ser alteradas, defina o Tipo de elemento como Atributo.

    3. Selecione um valor Disponível na previsão para as colunas na Coluna type da seguinte forma:

      • Para add_to_cart_quantity, category_page_view_quantity, detail_page_view_quantity e search_quantity, Defina o valor de Disponibilidade na previsão como Não disponível.

      • Entre as colunas restantes, para aquelas que podem ser alteradas, defina o Valor de Tipo de recurso 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 real decorrido pode ser maior do que esse valor porque há e 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 modelo treinamento, consulte Monitorar o progresso do treinamento.

Monitore o progresso do seu treinamento

  1. No console do Google Cloud, na seção "Vertex AI", acesse 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 termina 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 de previsão 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 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 conclua o 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 o formato é project_id.dataset_id.

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

      A previsão é concluída quando o status muda de Pendente para Concluído. Você também recebe um e-mail quando sua previsão em lote é concluído. A saída da sua solicitação de previsão em lote é retornada no conjunto de dados do projeto do BigQuery especificado. O o nome da nova tabela de saída é "predictions_". anexado com o carimbo de data/hora de quando 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.