Lea nuestro artículo sobre

.

El modelado de la propensión puede utilizarse para aumentar el impacto de su comunicación con los clientes y optimizar el gasto de su presupuesto publicitario.

Google Analytics data es una fuente data bien estructurada que puede transformarse fácilmente en un conjunto data preparado para el aprendizaje automático.

Las pruebas retrospectivas sobre el histórico data y las métricas técnicas pueden darle una primera idea del rendimiento de su modelo, mientras que las pruebas en vivo y las métricas comerciales le permitirán confirmar el impacto de su modelo.

Nuestro modelo de aprendizaje automático personalizado superó las líneas de base existentes: durante las pruebas en vivo en términos de ROAS (Retorno de la inversión publicitaria): +221% frente al modelo basado en reglas y +73% frente al aprendizaje automático estándar (puntuación de calidad de la sesión de Google Analytics).

Este artículo asume fundamentos básicos en aprendizaje automático y marketing.

¿Qué es el modelo de propensión?

El modelo de propensión es estimar la probabilidad de que un cliente realice una acción determinada. Hay varias acciones que pueden ser útiles para estimar:

  • Comprar un producto
  • Churn
  • Darse de baja
  • etc...

En este artículo nos centraremos en la estimación de la propensión a comprar un artículo en un sitio web de comercio electrónico.

Pero, ¿por qué estimar la propensión a la compra? Porque permiteadaptar cómo queremos interactuar con un cliente. Por ejemplo, supongamos que tenemos un modelo de propensión muy sencillo que clasifica a los clientes en “Fríos”, “Templados” y “Calientes” para un producto determinado (“Calientes” son los clientes con mayor probabilidad de compra y “Fríos” los que menos):

Image

Bien, basándonos en esta clasificaciónpuede tener una respuesta específica para cada clase. Es posible que desee tener un enfoque de marketing diferente con un cliente que está muy cerca de comprar que con uno que puede que ni siquiera haya oído hablar de su producto. Además, si dispone de un presupuesto limitado para medios de comunicación, puede centrarlo en los clientes que tienen muchas probabilidades de comprar y no gastar demasiado en los que son poco probables.

Este tipo simple de clasificación basada en reglas puede dar buenos resultados y suele ser mejor que no tener ninguna, pero tiene varias limitaciones:

  • Es probable sin explotar todos los data que tiene a su disposición, ya sea información más precisa sobre el recorrido del cliente o su sitio web u otras fuentes data que pueda tener a su disposición como CRM data.

  • Aunque parece obvio que los clientes clasificados como “calientes” tienen más probabilidades de comprar que los “cálidos”, que tienen más probabilidades de comprar que los “fríos”, este enfoque no nos da cifras concretas sobre la probabilidad de que compren. ¿Tienen los clientes “calientes” 3% oportunidad de comprar ? ¿5% ? 10% ?
  • Mediante reglas sencillas, se limita el número de clases que puede obtener, lo que limita la personalización de su respuesta dirigida puede ser.

Para hacer frente a esas limitaciones podemos utilizar un enfoque más orientado al data: utilizar aprendizaje automático en nuestro data a predecir una probabilidad de compra para cada cliente.

Comprender Google Analytics data

Google Analytics es un servicio web de análisis que rastrea el uso data y el tráfico en el sitio web y las aplicaciones.

Image

Google Analytics data puede ser fácilmente exportable a Big Query (Google Cloud Platform totalmente gestionado data servicio de almacén) donde se puede acceder mediante una sintaxis similar a la de SQL:

Image

Tenga en cuenta que la tabla de exportación Big Query con Google Analytics data es un tabla anidada a nivel de sesión:

  • Sesiones son una lista de acciones que un cliente específico realiza en un periodo de tiempo determinado. Comienzan cuando un cliente visita una página y terminan después de 30 minutos de actividad.
  • Cada cliente puede tener varias sesiones.
  • Cada sesión puede estar formada por varios hits (es decir, eventos) y cada hit puede tener varios atributos o métricas personalizadas (por eso la tabla está anidada, por ejemplo, si quiere ver el data a nivel de hit tendrá que aplanar la tabla).
Image

Por ejemplo, en esta consulta sólo buscamos características a nivel de sesión:

ImageImage

Y en esta consulta hemos utilizado una función Unnest para consultar la misma información en nivel de acierto:

ImageImage

Para más información sobre el GA data consulte el documentación. Tenga en cuenta que nuestro proyecto se desarrolló en GA360, por lo que si está utilizando la última versión, GA4, habrá algunas ligeras diferencias en el modelo data, especialmente en la tabla a nivel de evento. Existen tablas de muestra públicas de GA360 y GA4 data disponible en Big Query.

Ahora que tenemos acceso a nuestra fuente bruta data necesitamos realizar ingeniería de características antes de poder alimentar nuestra tabla a un algoritmo de aprendizaje automático

Elaborar las características adecuadas

El objetivo del paso de ingeniería de características es transformar el data bruto de Google Analytics (extraído de Big Query) en un mesa lista que se utilizará paraAprendizaje automático.

El GA data está muy bien estructurado y requerirá unos pasos de limpieza mínimos. Sin embargo, todavía hay mucha información presente en la tabla, mucha de la cual no es útil para el aprendizaje automático o no puede utilizarse tal cual, por lo que es importante seleccionar y elaborar las características adecuadas. Para ello construimos características que parecían ser las más correlacionadas con la compra de un producto.

Elaboramos 4 tipos de características:

Image

Tenga en cuenta que estamos calculando todas esas características a nivel de cliente, lo que significa que estamos agregando información de varias sesiones para cada cliente (utilizando el campo fullVisitorId como clave).

Características generales

Las características globales son características numéricas que ofrecen información general sobre la sesión.

Image

Tenga en cuenta que la tasa de rebote se define como el % de veces que el cliente sólo visitó una página web durante una sesión.

También era importante incluir información sobre la recencia de los acontecimientos: por ejemplo, un cliente que acaba de visitar su sitio web probablemente tenga más ganas de comprar que uno que lo visitó hace 3 meses. Para más información sobre este tema puede consultar la teoría en RFM (recencia, frecuencia valor monetario).

Así que hemos añadido una función Recencia desde la última sesión = 1 / Número de días transcurridos desde la última sesión que permite normalizar el valor entre 0 y 1

Características favoritas

También queríamos incluir información sobre la clave categórica data disponibles como navegador o dispositivo. Dado que esa información se encuentra a nivel de sesión, puede haber varios valores diferentes para un mismo cliente, por lo que sólo tomamos el que más se da por cliente (es decir, el favorito). Además, para evitar tener características categóricas con una cardinalidad demasiado alta, sólo conservamos los 5 valores más comunes para cada característica y sustituimos todos los demás valores por un valor “Otro”.

Image

Características del producto

Aunque los dos primeros tipos de características son definitivamente útiles para ayudarnos a responder a la pregunta “¿Va a comprar un cliente en mi sitio web?”, no son lo suficientemente específicas si necesitamos saber “¿El cliente va a comprar un producto concreto?. Para ayudar a responder a esta pregunta construimos características específicas de producto que sólo incluyen el producto para el que intentamos predecir la compra:

Image

Para Recuencia desde la última sesión con al menos una interacción con este producto, utilizamos la misma fórmula que para el Recencia de la sesión en las Características Generales. Sin embargo, podemos tener casos en los que haya 0 sesiones con al menos una interacción con el producto, en cuyo caso rellenamos con 0. Esto tiene sentido desde una perspectiva empresarial, ya que es nuestro valor más alto posible es 1 (cuando el cliente tuvo una sesión desde ayer).

Características de productos similares

Además de fijarnos en la interacción del cliente con el producto para el que intentamos predecir la probabilidad de compra, saber que el cliente interactuó con otros productos con funciones y precios similares sin duda puede ser útil (es decir, producto sustituto). Por este motivo, añadimos un conjunto de características de Producto similar que son idénticas a las características de Producto, salvo que también incluimos los productos similares en el ámbito variable. Los productos similares para un producto determinado se definieron utilizando entradas empresariales.

Image

Ya tenemos nuestro característica ingeniería dataset sobre el que podemos entrenar nuestro modelo de aprendizaje automático.

Entrenamiento del modelo

Puesto que queremos saber si un cliente va a comprar o no un producto específico, se trata de un problema de clasificación binaria.

Para nuestra primera iteración, hicimos lo siguiente para crear nuestro conjunto dataset de aprendizaje automático (que era de 1 fila por cliente):

  • Calcule el características utilizando las sesiones en un plazo de 3 meses para cada cliente.
  • Calcule el objetivo utilizar las sesiones en un plazo de 3 semanas posterior a la ventana temporal de la característica. Si hay al menos una compra del producto en la ventana temporal, Objetivo es igual a 1 (definido como Clase 1), de lo contrario Objetivo es igual a 0 (definido como Clase 0)
  • Divida el data entre un conjunto de Entrenamiento y uno de Prueba utilizando una división aleatoria 80 / 20.
Image

Sin embargo una primera exploración data mostró rápidamente que había una fuerte problema de desequilibrio de clases: La relación Clase 1 / Clase 0 era superior a 1:1000 y no teníamos suficientes clientes de Clase 1. Esto puede ser muy problemático para los modelos de aprendizaje automático.

Para hacer frente a estos problemas realizamos varias modificaciones en nuestro enfoque:

  • Nosotros cambió la variable objetivo de hacer un compre para hacer un añadir a la cesta. Por lo tanto, nuestro modelo pierde un poco en términos de significación comercial, pero el aumento del volumen de la clase 1 lo compensa con creces.
  • Nosotros entrenó el modelo en varias ventanas de cambio,cada uno de 3 meses + 3 semanas, en lugar de uno solo. Además de aumentar nuestros volúmenes de data, esto mejora la capacidad de generalización del modelo al entrenarse en varias épocas del año en las que los clientes pueden tener comportamientos de compra diferentes. Tenga en cuenta que, debido a esto, el mismo cliente estará presente varias veces en el conjunto de data (en distintos periodos). Para evitar fugas de data, nos aseguramos de que siempre esté o bien en el dataset de entrenamiento o bien en el de prueba.
  • Nosotros submuestreamos nuestra Clase 0 para que la relación Clase 1 / Clase 0 sea 1. El submuestreo es una buena solución para tratar el problema del desequilibrio de clases, en comparación con otras opciones como el sobremuestreo o el SMOTE, porque ya pudimos aumentar considerablemente el volumen de la clase 1 con los dos primeros cambios. Sólo se reequilibra el conjunto de entrenamientoya que queremos que el conjunto de prueba tenga los mismos ratios de clase que el futuro data en el que lo probaremos. Tenga en cuenta que probamos con ratios más elevados, como 5 o 10, pero 1 resultó óptimo en la evaluación del modelo.
Image

Utilizando este dataset probamos con varios modelos de clasificación: Modelo lineal, Random Forest y XGboost, afinando los hiperparámetros mediante la búsqueda en cuadrícula, y acabamos seleccionando un Modelo XGboost.

Evaluación de nuestro modelo

Al evaluar un modelo de propensión se pueden realizar dos tipos principales de evaluaciones:

  • Evaluación Backtest
  • Evaluación en vivo

Evaluación Backtest

Primero realizamos evaluación backtest: aplicamos nuestro modelo a pasado histórico data y comprobamos que nuestro modelo identifica correctamente a los clientes que van a realizar un añadir al carro. Dado que estamos utilizando un clasificador binario, el modelo produce una puntuación de probabilidad entre 0 y 1 de ser la clase 1 (Añadir al carro).
matriz de confusión y calcular el precisión / recall (o su forma combinada en elf1 puntuación). Sin embargo, hay dos problemas con estas métricas simples:

  • Algunos pueden ser difícil de interpretar porque el conjunto data está desequilibrado (por ejemplo, la métrica de precisión será en general muy baja porque tenemos muy pocas de clase 1)
  • Requieren decidir sobre un umbral de probabilidad discriminar entre Clases 0 y 1
Image

Así que decidimos utilizar dos métricas más interpretable:

  • PR AUC: Área bajo la curva del gráfico de precisión por recuerdo(consulte esta explicación para más detalles). Esencialmente, esta métrica nos permite obtener una evaluación global en todos los umbrales posibles.Esta métrica se adapta bien a los conjuntos data desequilibrados en los que la prioridad es maximizar la precisión y el recuerdo en la clase minoritaria : la clase 1(al contrario que su primo el ROC AUC)
  • Elevar: clasificamos a los clientes por su puntuación de probabilidad y dividimos nuestros resultados en 20 ventiles. El ventil se define como el Tasa de la Clase 1 en los 5% superiores / la Tasa de la Clase 1 en todo el conjunto de dataAsí, por ejemplo, si tenemos 21 % Añadir a la cesta en el Top 5 % del dataset frente a 3 % Añadir a la cesta Tasa en todo el dataset tenemos un aumento de 7, lo que significa que nuestro modelo es 7 veces más eficaz que un modelo aleatorio.

Los resultados en esas métricas fueron bastante positivos, sobre todo, Elevar estaba alrededor de 13.5.

La evaluación backtest es un método sin riesgo para una primera evaluación de un modelo de propensión, pero tiene varias limitaciones:

  • Como sólo se hace sobre el pasado, la salida del modelo no se está utilizando realmente para repercuten en la estrategia presupuestaria de los medios de comunicación.
  • Con nuestras métricas, sólo evaluamos si el modelo era capaz de identificar correctamente a los clientes que harían un add to cart pero no evaluamos cómo la identificación de esos clientes generaría un aumento de las ventas.

Evaluación en vivo

Así que para hacernos una mejor idea del valor comercial de nuestro modelo necesitamos realizar evaluación de la prueba en vivo. Aquí activamos nuestro modelo y lo utilizamos para priorizar los gastos del presupuesto publicitario :

Image

Los resultados que obtuvimos en la prueba en vivo fueron muy sólidos:

  • En comparación con un enfoque basado en reglas simples para la propensión a la evaluación, el ROAS de nuestro modelo fue de +221 %
  • Además, también comparamos nuestros resultados con los de una fuerte competencia en forma de Puntuación de calidad de la sesión de Google: una puntuación proporcionada por Google en el conjunto data de Google Analytics, y en ese caso nuestro modelo seguía con +73 % ROAS. Esto demuestra cómo un enfoque de ML personalizado puede aportar un valor empresarial considerable.

Conclusión

Además de alcanzar un sólido rendimiento, un gran beneficio secundario de nuestro enfoque es que nuestra ingeniería de funciones es muy genérica. Casi no es necesario adaptar ninguno de los pasos de ingeniería de características aplicar nuestro modelo a un diferente ámbito de países o productos. De hecho, tras nuestro primer éxito en la prueba en vivo, pudimos extender nuestro modelo a múltiples países y productos de una manera muy eficaz.

Gracias por su lectura. Me encantaría conocer sus comentarios sobre este enfoque. ¿Ha construido alguna vez modelos de propensión? Si es así, ¿qué hizo de forma diferente?

Gracias a Bruce Delattre, Rafaëlle Aygalenq y Cédric Ly.

Medio Blog por Artefact.

Este artículo se publicó inicialmente en Medium.com.
¡Síganos en nuestro Medium Blog !