Como prever o valor de vida útil do cliente com o AI Platform: introdução

Este artigo é a primeira de uma série de quatro partes que discute como prever o valor de vida útil do cliente (CLV, na sigla em inglês) usando o AI Platform no Google Cloud Platform (GCP).

Os artigos desta série incluem o seguinte:

Visão geral

Muitos anunciantes tentam adaptar seus anúncios a indivíduos ou grupos de usuários semelhantes, mas nem sempre conseguem vender isso para os clientes mais valiosos. O Princípio de Pareto (em inglês) é frequentemente citado em referência às vendas (em inglês), prevendo que 20% dos clientes representam 80% delas. E se você pudesse identificar quem são esses 20% de clientes, não apenas historicamente, mas também no futuro? A previsão do valor de vida útil do cliente (CLV) é uma maneira de identificá-los.

Os objetivos desta série são os seguintes:

  • Explicar os conceitos de modelagem de CLV.
  • Comparar duas abordagens para a modelagem de CLV.
  • Mostrar como implementar modelos de CLV no GCP.

Esta solução compara duas abordagens diferentes da modelagem de CLV: modelos probabilísticos e de machine learning (ML). Ela fornece uma implementação de cada uma delas e apresenta os resultados quando cada modelo é aplicado a um conjunto de dados público. O foco destes artigos é a implementação do sistema de modelagem no GCP.

Quando usar essa abordagem

É possível usar modelos de CLV para responder estes tipos de perguntas sobre clientes:

  • Número de compras: quantas compras o cliente fará em um determinado período no futuro?
  • Vida útil: quanto tempo levará para que o cliente fique permanentemente inativo?
  • Valor monetário: quanto o cliente gerará em um determinado período no futuro?

Ao tentar prever o futuro valor de vida útil, há dois problemas distintos que exigem dados e estratégias de modelagem diferentes:

  • Prever o valor futuro para clientes atuais que tenham um histórico conhecido de transações.
  • Prever o valor futuro para clientes novos que acabaram de fazer a primeira compra.

O foco desta série é no primeiro problema.

Muitas empresas preveem CLVs apenas observando o valor monetário total de vendas, sem entender o contexto. Por exemplo, um cliente que faz um pedido grande pode ser menos valioso do que outro que compra várias vezes, mas em quantidades menores. Com a modelagem de CLV, é possível entender melhor o perfil de compra de seus clientes e avaliar seu negócio com mais precisão.

Ao usar as abordagens descritas nesta série para prever o valor de seus clientes, é possível priorizar suas próximas ações, como as seguintes:

  • Decidir quanto investir em publicidade.
  • Decidir quais clientes segmentar com publicidade.
  • Planejar como mover clientes de um segmento para outro.

Os modelos usados nesta série não são adequados para empresas em que é possível observar e medir o desligamento de clientes diretamente. Por exemplo, não é possível usar esses modelos para empresas baseadas em assinaturas, contas de clientes ou contratos que podem ser cancelados. Em vez disso, os modelos desta série pressupõem que os usuários se envolvem com o negócio conforme a vontade deles, como em lojas de comércio eletrônico em que os usuários podem fazer compras a qualquer momento. Além disso, os modelos descritos nesta série são melhor aplicados na previsão do valor futuro de clientes atuais que tenham pelo menos um histórico de transações razoável.

Conceitos do CLV: RFM

Três pontos importantes nos modelos de CLV são tempo transcorrido desde a última visita, frequência e valor monetário (RFM, na sigla em inglês):

  • Tempo transcorrido desde a última visita: quando foi o último pedido do cliente?
  • Frequência: com que frequência eles compram?
  • Monetário: que quantia eles gastam?

O diagrama a seguir mostra uma série de vendas de um conjunto de quatro clientes.

Histórico de vendas para quatro clientes

O diagrama ilustra os valores de RFM dos clientes, com um índice de cada um deles para:

  • Tempo para retorno: o tempo entre a última compra e a atual, representado pela distância entre o círculo mais à esquerda e a linha pontilhada vertical rotulada Now (agora).
  • Frequência: o tempo entre as compras, representado pela distância entre os círculos em uma única linha.
  • Monetário: a quantia de dinheiro gasto em cada compra, representada pelo tamanho do círculo. Esse valor pode ser o valor médio do pedido ou a quantidade de produtos solicitados pelo cliente.

Nos modelos desta série, apenas dados históricos de vendas são usados para calcular o CLV. As entradas do valor de RFM são calculadas a partir do histórico de transações de cada cliente.

Dois métodos de modelagem para o CLV

Como observado anteriormente, esta série de artigos compara duas abordagens para calcular o CLV:

  • Modelos probabilísticos: funcionam ajustando uma distribuição de probabilidade aos valores de RFM observados para os clientes. Estes modelos são baseados no comportamento de compra definido pelo histórico de transações de cada cliente. Esses dados são suficientes para extrair valores de RFM.
  • Modelos de ML: são uma classe extensa e amplamente utilizada de modelos estatísticos em que os parâmetros são ajustados aos dados por treinamento com gradiente descendente estocástico. Os modelos de ML podem usar mais atributos do que os probabilísticos. Nesta série, foram usados modelos de rede neural profunda (DNN, na sigla em inglês), uma classe conhecida de modelos de ML. Você também verá como usar tabelas do AutoML para criar automaticamente um modelo de ML.

Para modelos probabilísticos, esta solução usa uma biblioteca Lifetimes (em inglês) atual que se baseia em DataFrames com Pandas (em inglês). Você poderia criar uma biblioteca equivalente no TensorFlow para executar as mesmas tarefas que a biblioteca Lifetimes.

Modelos probabilísticos

Os modelos probabilísticos usam valores de RFM que são calculados a partir de uma lista de transações de pedidos. Cada transação tem ID de cliente, data e valor do pedido. Cada modelo é apropriado para a modelagem de cada relação com o cliente. A parte 2 da série de artigos mostra como empregar os seguintes modelos disponíveis na biblioteca Lifetimes:

  • Pareto/distribuição binomial negativa (NBD, na sigla em inglês)
  • Beta-geométrico (BG/NBD)

Pareto/NBD

O modelo Pareto/NBD (em inglês) foi originalmente desenvolvido por Schmittlein e outros autores. Este modelo é usado para situações não contratuais em que os clientes podem fazer compras a qualquer momento. Usando quatro parâmetros, ele descreve com que frequência os clientes fazem compras e quando se tornam inativos. Para fornecer o melhor ajuste a um conjunto de dados de RFM, use este modelo com a otimização dos parâmetros.

BG/NBD

O modelo Pareto/NBD tem sido amplamente utilizado, mas é difícil de implementar, porque a estimativa de parâmetros é computacionalmente intensa. Para resolver essas questões, Fader e Hardie desenvolveram o modelo BG/NBD. Esse modelo, como o Pareto/NBD, é usado para situações não contratuais em que os clientes podem fazer compras a qualquer momento. O modelo BG/NBD também usa quatro parâmetros para descrever a frequência com que os clientes fazem compras e com que eles se tornam inativos. No entanto, o modelo BG/NBD é mais fácil de implementar do que o Pareto/NBD e é executado mais rapidamente. Os dois modelos tendem a produzir resultados semelhantes.

Como calcular o CLV com modelos probabilísticos

Usar os modelos probabilísticos é um processo de várias etapas. O código no modelo executa as seguintes tarefas:

  1. Pré-processa os dados da transação para calcular os valores de RFM.
  2. Usa o módulo Lifetimes para otimizar os parâmetros do modelo apropriado, seja Pareto/NBD ou BG/NBD, para ajustar os dados de RFM.
  3. Calcula o valor monetário previsto para cada cliente.

Criar um modelo para o valor monetário é complexo, porque muitos parâmetros, como os preços de produtos que mudam com o tempo, não são representados apenas pelos dados de transação. O método probabilístico pressupõe que o valor monetário segue uma distribuição gama. O código da biblioteca Lifetimes inclui um método de distribuição gama usado para calcular o CLV, dado um modelo probabilístico ajustado. Você aprenderá mais sobre como usar a biblioteca Lifetimes para gerar previsões de CLV na parte 2 da série.

Modelos de machine learning

Os modelos de ML representam uma boa alternativa aos modelos probabilísticos. Esses artigos discutem o uso de DNNs, que podem ser implementadas no TensorFlow usando a interface do Estimator.

Esta solução usa duas técnicas para melhorar o desempenho das DNNs:

  • Normalização em lote (em inglês), que tem os seguintes benefícios:

    • Normaliza e correlaciona valores numéricos em atributos. Como a normalização em lote executa este passo, não é preciso fazer isso por conta própria.
    • Isto minimiza o impacto da alteração de pesos ao longo do tempo, o que afeta a importância de cada atributo.
  • Declínio da taxa de aprendizado (em inglês), em que a taxa de aprendizado diminui exponencialmente ao longo do tempo, ajudando a evitar oscilações na perda quando ela se aproxima do mínimo.

Este conjunto de artigos mostra duas implementações de DNN no TensorFlow:

  1. DNN do Estimator automático (em inglês). O TensorFlow inclui modelos de DNN pré-implementados que estão em conformidade com a interface do Estimator. O código de amostra para esta série inclui um modelo baseado no DNNRegressor pré-implementado.
  2. DNN do Estimator personalizado. Tem mais flexibilidade para incluir técnicas avançadas no modelo usando um Estimator personalizado. A implementação do Estimator personalizado no código de amostra ilustra esta flexibilidade ao incorporar o declínio da taxa de aprendizado e a normalização em lote.

Uma das vantagens das DNNs é que elas podem incorporar muitos atributos. Como resultado, a qualidade delas geralmente depende da engenharia de atributos. A seção de preparação de dados da parte 2 desta série explica como criar atributos a partir das entradas disponíveis para conjuntos de dados potencialmente grandes.

A seguir

Leia as próximas partes desta série, que explicam como implementar a previsão do CLV:

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…