Saltar para o conteúdo

Technical

Apêndice: Integração de Conhecimento de Negócio para Estimativa de CLV

Paulo Maia · 6 de abril de 2020

Este texto é um apêndice ao artigo de blog Integração de Conhecimento de Negócio para Estimativa de Customer Lifetime Value. Aqui descrevemos algumas abordagens alternativas que considerámos para resolver o problema proposto, mas que não foram implementadas.

Comecemos por assumir que temos um modelo pré-treinado para estimar a probabilidade dos alvos e .

Estimativa do Valor ao Longo da Vida através de uma função de otimização

Com um modelo que contém a propensão dos clientes em aceitar a oferta (yTaker), podemos fazer um cálculo simples para estimar o CLV:

Abordagem apenas com Regras de Negócio

![ \begin{eqnarray*} argmax & ( & \\ \text{X in Offer} & & (Propensity(User, X) \times PriceDest(X) \times 24 + \\ & & (1-Propensity(User, X)) \times PriceOrigin(User, X) * FP)\\ & ) & \\ \end{eqnarray*} ](/wp-content/ql-cache/quicklatex.com-813c5389906c678bf29f33aac8cdafbe_l3.png)

O primeiro termo da equação é a receita esperada no final do período de fidelização (FP), que está a ser renovado para 24 meses. Um segundo termo é somado, compreendendo a receita esperada caso o cliente não aceite a oferta (e assumindo que nenhuma nova oferta é feita nos meses restantes – assim, ele permanece por "FP" meses).

Abordagem com Regras de Negócio + Propensão + Modelo de Churn

Suponhamos agora que temos dois modelos:

  • Modelo de Propensão: conseguimos calcular a probabilidade de y_taker_N (ou seja, de o cliente aceitar a oferta)
  • Modelo de Churn: conseguimos prever o número de meses restantes até o cliente deixar de ser cliente

E que também temos algumas regras de negócio integradas:

  • Survival Buyers: conseguimos calcular curvas de sobrevivência globais, para a base completa de clientes (Buyers), para clientes que aceitam qualquer nova oferta. Estas dão-nos o número médio de meses até o cliente deixar a empresa, se aceitar uma oferta.

Podemos então criar uma função de otimização ligeiramente mais complexa.

![ \begin{eqnarray*} argmax & ( & ( PriceDest(X) \times Buyers(FP) \times Propensity(User,X) + \\ \text{X in Offer} & & (1-Propensity(User, X)) \times PriceOrigin(User, X) \times \\ & & Churn(User) \\ & ) & \\ \end{eqnarray*} ](/wp-content/ql-cache/quicklatex.com-d87690670b0e7f0803166feebdd56267_l3.png)

Machine Learning de Tarefa Única

Embora esta seja uma solução que pode ser calculada rapidamente caso tenhamos modelos pré-treinados disponíveis para as tarefas de churn e taker (o que é positivo para provas de conceito rápidas e performance inicial), não estamos a aproveitar muito do conhecimento que pode ser extraído da interação com clientes.

Uma possível abordagem para usar isto seria incluir as probabilidades de aceitar a oferta e fazer churn como features, da seguinte forma:

CLV :: Propensity x OriginOffer x DestinationOffer x ChurnProbability

No entanto, isto exigiria manter três modelos em produção, e avaliar a sua qualidade constantemente: um modelo de regressão para estimar o valor ao longo da vida do cliente, modelo de propensão e modelo de churn. Além disso, se pretendêssemos uma abordagem de múltiplos outputs, isto exigiria ter tantos modelos pré-treinados quanto o número de outputs.