Leia nosso artigo sobre

.

A modelagem de propensão pode ser usada para aumentar o impacto de sua comunicação com os clientes e otimizar os gastos com o orçamento de publicidade.

O data do Google Analytics é uma fonte data bem estruturada que pode ser facilmente transformada em um conjunto data pronto para aprendizado de máquina.

O backtest no histórico data e as métricas técnicas podem lhe dar uma primeira noção do desempenho do seu modelo, enquanto o teste ao vivo e as métricas comerciais lhe permitirão confirmar o impacto do seu modelo.

Nosso modelo personalizado de aprendizado de máquina superou as linhas de base existentes: durante os testes ao vivo em termos de ROAS (Return on advertising spend): +221% vs. modelo baseado em regras e +73% vs. aprendizado de máquina pronto para uso (índice de qualidade da sessão do Google Analytics).

Este artigo pressupõe fundamentos básicos de aprendizado de máquina e marketing.

O que é modelagem de propensão?

A modelagem de propensão é estimar a probabilidade de um cliente realizar uma determinada ação. Há várias ações que podem ser úteis para estimar:

  • Compra de um produto
  • Agitação
  • Cancelamento da inscrição
  • etc ...

Neste artigo, vamos nos concentrar em estimar a propensão de comprar um item em um site de comércio eletrônico.

Mas por que estimar a propensão a comprar? Porque isso permiteadaptar a forma como queremos interagir com um cliente. Por exemplo, suponha que tenhamos um modelo de propensão muito simples que classifica os clientes em “Frios”, “Mornos” e “Quentes” para um determinado produto (“Quentes” são os clientes com maior chance de compra e “Frios”, a menor):

Image

Bem, com base nessa classificaçãoo senhor pode ter uma resposta direcionada específica para cada classe. Talvez o senhor queira ter uma abordagem de marketing diferente com um cliente que está muito próximo de comprar do que com um que talvez nem tenha ouvido falar do seu produto. Além disso, se o senhor tiver um orçamento de mídia limitado, poderá concentrá-lo nos clientes que têm grande probabilidade de comprar e não gastar muito com aqueles que têm poucas chances.

Esse tipo simples de classificação baseada em regras pode dar bons resultados e, em geral, é melhor do que não ter nenhuma, mas tem várias limitações:

  • É provável que não explorando todos os data que o senhor tem à sua disposição, sejam informações mais precisas sobre a jornada do cliente, seu site ou outras fontes data que o senhor possa ter à sua disposição, como o CRM data.

  • Embora pareça óbvio que os clientes classificados como “quentes” têm maior probabilidade de comprar do que os “mornos”, que têm maior probabilidade de comprar do que os “frios”, essa abordagem não nos fornece números específicos sobre qual a probabilidade de compra. Os clientes “quentes” têm 3% chance de comprar? 5%? 10% ?
  • Usando regras simples, o número de classes que o senhor pode obter é limitado, o que limita a personalização de sua resposta direcionada pode ser.

Para lidar com essas limitações, podemos usar uma abordagem mais voltada para o data: usar aprendizado de máquina em nosso data para prever uma probabilidade de compra para cada cliente.

Entendendo o Google Analytics data

O Google Analytics é um serviço analítico da web que rastreia o uso data e o tráfego em sites e aplicativos.

Image

O Google Analytics data pode ser facilmente exportado para o Big Query (Google Cloud Platform totalmente gerenciado Serviço de armazém data), onde ele pode ser acessado por meio de uma sintaxe semelhante à do SQL:

Image

Observe que a tabela de exportação do Big Query com o Google Analytics data é um tabela aninhada no nível da sessão:

  • Sessões são uma lista de ações que um cliente específico realiza em um determinado período de tempo. Elas começam quando um cliente visita uma página e terminam após 30 minutos de atividade.
  • Cada cliente pode ter várias sessões.
  • Cada sessão pode ser composta de várias ocorrências (ou seja, eventos) e cada ocorrência pode ter vários atributos ou métricas personalizadas (é por isso que a tabela é aninhada; por exemplo, se o senhor quiser examinar o data no nível da ocorrência, precisará achatar a tabela).
Image

Por exemplo, nesta consulta, estamos analisando apenas recursos em nível de sessão:

ImageImage

E, nessa consulta, usamos uma função Unnest para consultar as mesmas informações em nível de acerto:

ImageImage

Para obter mais informações sobre o GA data, consulte o documentação. Observe que nosso projeto foi desenvolvido no GA360, portanto, se o senhor estiver usando a versão mais recente, GA4, haverá algumas pequenas diferenças no modelo data, especialmente a tabela que estará no nível do evento. Há tabelas de amostra públicas do GA360 e GA4 data disponível no Big Query.

Agora que temos acesso à nossa fonte bruta data, precisamos realizar a engenharia de recursos antes de podermos alimentar nossa tabela com um algoritmo de aprendizado de máquina

Criando os recursos certos

O objetivo da etapa de engenharia de recursos é transformar o data bruto do Google Analytics (extraído do Big Query) em um mesa pronta a ser usado paraAprendizado de máquina.

O GA data é muito bem estruturado e exigirá o mínimo de etapas de limpeza data. No entanto, ainda há muitas informações presentes na tabela, muitas das quais não são úteis para o aprendizado de máquina ou não podem ser usadas como estão, portanto, é importante selecionar e criar os recursos certos. Para isso, criamos recursos que pareciam ser os mais correlacionados com a compra de um produto.

Criamos quatro tipos de recursos:

Image

Observe que estamos computando todos esses recursos no nível do cliente, o que significa que estamos agregando informações de várias sessões para cada cliente (usando o campo fullVisitorId como chave)

Características gerais

Os recursos globais são características numéricas que fornecem informações gerais sobre a sessão.

Image

Observe que a taxa de rejeição é definida como % de vezes que o cliente visitou apenas uma página da Web durante uma sessão.

Também foi importante incluir informações sobre o recência de eventosPor exemplo, um cliente que acabou de visitar seu site provavelmente está mais disposto a comprar do que um que o visitou há três meses. Para obter mais informações sobre esse tópico, o senhor pode consultar a teoria em RFM (valor monetário de recência, frequência).

Por isso, adicionamos um recurso Recência desde a última sessão = 1 / Número de dias desde a última sessão que permite que o valor seja normalizado entre 0 e 1

Recursos favoritos

Também queríamos incluir algumas informações sobre a chave categórica data disponíveis, tais como navegador ou dispositivo. Como essas informações estão no nível da sessão, pode haver vários valores diferentes para um único cliente, portanto, consideramos apenas aquele que ocorre mais por cliente (ou seja, o favorito). Além disso, para evitar ter recursos categóricos com cardinalidade muito alta, mantemos apenas os cinco valores mais comuns para cada recurso e substituímos todos os outros valores por um valor “Outro”

Image

Características do produto

Embora os dois primeiros tipos de recursos sejam definitivamente úteis para nos ajudar a responder à pergunta “Um cliente vai comprar no meu site?”, eles não são suficientemente específicos se precisarmos saber “O cliente vai comprar um produto específico?. Para ajudar a responder a essa pergunta, criamos recursos específicos do produto que incluem apenas o produto para o qual estamos tentando prever a compra:

Image

Para Recência desde a última sessão com pelo menos uma interação com esse produto, usamos a mesma fórmula que para o Recência da sessão nos Recursos gerais. No entanto, podemos ter casos em que há 0 sessão com pelo menos uma interação com o produto e, nesse caso, preenchemos com 0. Isso faz sentido do ponto de vista comercial, pois o valor mais alto possível é 1 (quando o cliente teve uma sessão desde ontem).

Características de produtos similares

Além de observar a interação do cliente com o produto para o qual estamos tentando prever a probabilidade de compra, saber que o cliente interagiu com o outros produtos com função e faixa de preço semelhantes pode ser definitivamente útil (ou seja, produto substituto). Por esse motivo, adicionamos um conjunto de recursos de produtos similares que são idênticos aos recursos de produtos, exceto pelo fato de também incluirmos produtos similares no escopo da variável. Os produtos similares de um determinado produto foram definidos usando inputs comerciais.

Image

Agora temos nosso dataset projetado com recursos no qual podemos treinar nosso modelo de aprendizado de máquina.

Treinamento do modelo

Como queremos saber se um cliente vai comprar um produto específico ou não, esse é um problema de classificação binária.

Em nossa primeira iteração, fizemos o seguinte para criar nosso dataset de aprendizado de máquina (que era uma linha por cliente):

  • Calcule o recursos que utilizam as sessões em um período de 3 meses para cada cliente.
  • Calcule o meta de usar as sessões em um período de 3 semanas após a janela de tempo do recurso. Se houver pelo menos uma compra do produto na janela de tempo, Target será igual a 1 (definido como Classe 1), caso contrário, Target será igual a 0 (definido como Classe 0)
  • Divida o data entre um conjunto de treinamento e um teste usando a divisão aleatória 80/20.
Image

No entanto, uma primeira exploração do data mostrou rapidamente que havia um forte problema de desequilíbrio de classe: A relação Classe 1 / Classe 0 era superior a 1:1000 e não tínhamos clientes Classe 1 suficientes. Isso pode ser muito problemático para os modelos de aprendizado de máquina.

Para lidar com esses problemas, fizemos várias modificações em nossa abordagem:

  • Nós trocou a variável de destino de fazer um compra para fazer um adicionar ao carrinho. Portanto, nosso modelo perde um pouco em termos de significado comercial, mas o aumento do volume da Classe 1 mais do que compensa.
  • Nós treinou o modelo em várias janelas de deslocamento,cada uma de 3 meses + 3 semanas, em vez de uma única. Além de aumentar nossos volumes de data, isso melhora a capacidade de generalização do modelo, treinando em várias épocas do ano em que os clientes podem ter comportamentos de compra diferentes. Observe que, devido a isso, o mesmo cliente estará presente várias vezes no conjunto de data (em períodos diferentes). Para evitar vazamento de data, garantimos que ele esteja sempre no dataset de treinamento ou de teste.
  • Nós Subamostragem de nossa Classe 0, de modo que a proporção Classe 1 / Classe 0 seja 1. A subamostragem é uma boa solução para lidar com o problema de desequilíbrio de classe, em comparação com outras opções, como a sobreamostragem ou a SMOTE, O senhor pode ter certeza de que o volume da Classe 1 foi aumentado consideravelmente com as duas primeiras alterações. Somente o conjunto de treinamento é rebalanceadojá que queremos que o conjunto de teste tenha as mesmas proporções de classe do que o futuro data em que o testaremos. Observe que testamos com proporções mais altas, como 5 ou 10, mas 1 foi o ideal na avaliação do modelo.
Image

Usando esse dataset, testamos vários modelos de classificação: Modelo Linear, Random Forest e XGboost, ajustando os hiperparâmetros usando a busca em grade, e acabamos selecionando um Modelo XGboost.

Avaliação do nosso modelo

Ao avaliar um modelo de propensão, há dois tipos principais de avaliações que podem ser realizadas:

  • Avaliação de backtest
  • Avaliação de teste ao vivo

Avaliação de backtest

Primeiro, realizamos avaliação de backtest: aplicamos nosso modelo a histórico anterior data e verificamos se o nosso modelo está identificando corretamente os clientes que vão fazer uma adição ao carrinho. Como estamos usando um classificador binário, o modelo produz uma pontuação de probabilidade entre 0 e 1 de ser Classe 1 (Adicionar ao carrinho).
matriz de confusão e calcular o precisão/recuperação (ou sua forma combinada nopontuação f1). No entanto, há dois problemas com essas métricas simples:

  • Alguns podem ser difícil de interpretar porque o conjunto data está desequilibrado (por exemplo, a métrica de precisão geralmente será muito baixa porque temos muito poucas classes 1)
  • Eles precisam decidir sobre um limiar de probabilidade para discriminar entre Classes 0 e 1
Image

Por isso, decidimos usar duas métricas que eram mais interpretável:

  • PR AUC: Área sob a curva do gráfico de precisão por recuperação(Veja esta explicação para obter mais detalhes). Essencialmente, essa métrica nos permite obter um avaliação global em todos os limites possíveis.Essa métrica é adequada para dataset desequilibrado, em que a prioridade é maximizar a precisão e a recuperação na classe minoritária: Classe 1 (ao contrário de sua prima, a ROC AUC)
  • ElevaçãoO senhor pode ver os resultados de sua pesquisa: classificamos os clientes por sua pontuação de probabilidade e dividimos nossos resultados em 20 ventilações. Uplift é definido como o Taxa da Classe 1 nos 5% principais / Taxa da Classe 1 em todos os datasetAssim, por exemplo, se tivermos 21 % Add to Cart no Top 5 % do dataset contra 3 % Add to cart Rate em todo o dataset, teremos um aumento de 7, o que significa que nosso modelo é 7 vezes mais eficaz do que um modelo aleatório.

Os resultados dessas métricas foram bastante positivos, principalmente, Elevação estava por perto 13.5.

A avaliação de backtest é um método livre de riscos para uma primeira avaliação de um modelo de propensão, mas tem várias limitações:

  • Como isso é feito apenas no passado, o resultado do modelo não está sendo realmente usado para impactar a estratégia de orçamento de mídia.
  • Com nossas métricas, avaliamos apenas se o modelo era capaz de identificar corretamente os clientes que adicionariam ao carrinho, mas não avaliamos como a identificação desses clientes geraria um aumento nas vendas.

Avaliação de teste ao vivo

Portanto, para ter uma ideia melhor do valor comercial do nosso modelo, precisamos realizar avaliação de teste ao vivo. Aqui, ativamos nosso modelo e o usamos para priorizar os gastos com orçamento de publicidade:

Image

Os resultados que obtivemos no teste ao vivo foram muito sólidos:

  • Em comparação com um abordagem baseada em regras simples para propensão de avaliação, O ROAS de nosso modelo foi de +221 %
  • Além disso, também comparamos nosso desempenho com o de um forte concorrente na forma de Índice de qualidade da sessão do Google: uma pontuação fornecida pelo Google no Google Analytics dataset e, nesse caso nosso modelo ainda estava em +73 % ROAS. Isso mostra como uma abordagem de ML personalizada pode trazer um valor comercial considerável.

Conclusão

Além de alcançar um desempenho sólido, um grande benefício colateral de nossa abordagem é que nossa engenharia de recursos é muito genérica. Quase Nenhuma das etapas de engenharia de recursos precisa ser adaptada para aplicar nosso modelo a um escopo de país ou escopo de produto diferente. De fato, após nosso primeiro sucesso no teste ao vivo, conseguimos implementar nosso modelo em vários países e produtos de maneira muito eficiente.

Obrigado ao senhor por ler. Ficaria feliz em ouvir os comentários do senhor sobre essa abordagem. O senhor já construiu modelos de propensão? Se sim, o que o senhor fez de diferente?

Agradecimentos a Bruce Delattre, Rafaëlle Aygalenq e Cédric Ly.

Média Blog por Artefact.

Este artigo foi publicado inicialmente no Medium.com.
Siga-nos em nosso Medium Blog !