Saltar para o conteúdo

Technical

Integración del Conocimiento del Dominio para Estimar el Valor de Vida del Cliente

Paulo Maia · 6 de abril de 2020

Con el auge de las Redes Neuronales Profundas en la comunidad de Machine Learning, hemos observado un creciente enfoque de ajuste-predicción, donde los profesionales de IA no se toman el tiempo de pensar en el conocimiento del dominio ya disponible y cómo incorporar ese conocimiento en los modelos. En este artículo de blog, cubriremos cómo creamos redes neuronales profundas personalizadas que combinan conocimiento del dominio para estimar el valor de vida del cliente en múltiples períodos de tiempo, en un proyecto desarrollado conjuntamente con una importante operadora de telecomunicaciones en Portugal. Comenzaremos explicando el problema y las diferentes formas en que ha sido abordado en la literatura, seguido de nuestra solución y la manera en que la construimos de forma incremental.

Si bien este artículo refleja las ideas aplicadas en la industria de telecomunicaciones, puede extrapolarse fácilmente a cualquier otra industria basada en suscripción.

¿Qué es el Valor de Vida del Cliente y cómo estimarlo?

El valor de vida del cliente es el valor presente neto de la ganancia calculada del cliente durante un número determinado de meses [1]. Específicamente, en la industria de telecomunicaciones, donde las transiciones de precios son limitadas, el margen mensual del cliente y su curva de supervivencia son los dos componentes principales de este término.

Existen varios enfoques en la literatura para estimar el Valor de Vida del Cliente (CLTV). Los enfoques más clásicos se basan en modelos estadísticos (por ejemplo, modelos Buy 'Til You Die, modelo Pareto/NBD, valor Recency-Frequency-Monetary [2]) y consideran características como la frecuencia de compra y las compras más recientes, ajustándolas a una distribución estadística determinada. Más recientemente, se reportan enfoques basados en aprendizaje automático en la literatura, que consideran características diseñadas manualmente [3, 4].

Basándonos en una idea presentada anteriormente de un modelo para recomendar el mejor paquete para un cliente determinado, nos propusimos construir un modelo que pudiera estimar el valor de vida del cliente en una ventana de tiempo de N meses, dada tal recomendación. Pretendíamos crear una herramienta para entender si el CLTV podría utilizarse para ayudar a nuestros interesados a tomar decisiones sobre el mejor paquete a ofrecer en una llamada saliente. Al maximizar el CLTV para un conjunto de posibles transiciones de paquete, se espera que la satisfacción y lealtad del cliente aumenten también.

Reglas de Negocio y Características Relevantes del Conjunto de Datos

Después de aceptar una oferta, los clientes acuerdan un período de fidelización/contrato de 24 meses. Si la oferta es rechazada, el período de fidelización se mantiene igual, y el riesgo de que el cliente abandone la empresa (churn) aumenta.

Nuestro conjunto de datos contiene dos grupos de características:

  • Características de comportamiento: patrones de consumo, interacciones con los canales de la empresa, etc.
  • Características de propuesta: Características como velocidad de internet, tipo de paquete, número de canales de televisión, …

Durante este artículo, utilizaremos la siguiente notación: el mes de la oferta será el mes 0, y los meses posteriores serán nombrados como mes 1, … N. Si las variables objetivo se presentan entre llaves, significa que la entrada es un diccionario de arrays. Si no, es un array simple.

A partir de los datos disponibles, podemos calcular tres objetivos diferentes posibles, que son todos útiles para la toma de decisiones empresariales, en diferentes casos de uso:

: El cliente no ha abandonado la empresa en el mes N (está activo/no ha generado churn)

: Ingresos Mensuales (Precio), simplificado como valor de suscripción

: El cliente aceptó el paquete ofrecido

Después de considerar varios enfoques para estimar el CLTV basados en funciones de optimización o modelos de aprendizaje automático que utilizaban puntuaciones de modelos preentrenados como características (Para más información, consulte el apéndice), optamos por desarrollar un enfoque basado en Redes Neuronales Profundas.

Enfoque de Redes Neuronales Profundas

El aprendizaje profundo ha promovido un enfoque de caja negra donde las personas no piensan en lo que intentan hacer, simplemente conectan sus características de entrada a un modelo y obtienen un valor de salida. En NILG.AI, siempre pensamos en el impacto empresarial y en cómo crear modelos explicables para ayudar a comunicarse con las personas responsables de tomar decisiones empresariales.

¿Cómo podemos crear un modelo basado en bloques que pudiéramos manipular rápidamente en caso de querer probar diferentes cosas? ¿Cómo podemos aprender representaciones holísticas del cliente que cubran más de una señal de interés (por ejemplo, CLTV, churn, venta adicional, etc.). A un nivel muy alto, planeamos construir un modelo que pudiera ser de salida simple o múltiple, y de tarea simple o múltiple, con conocimiento del dominio integrado.

Las siguientes secciones explicarán nuestros bloques de construcción de esta arquitectura.

Mejoramos el Error Absoluto Medio en un 50% utilizando nuestra arquitectura personalizada en comparación con un modelo de regresión estándar

DNN User

DNN User es un bucle de N capas Dense seguidas de capas Dropout, con una capa Dense final que crea un espacio latente común para tareas adicionales. Básicamente, se trata de un paso de extracción de características que extrae características relevantes específicas del usuario de las características de entrada.

Por ahora, consideremos que solo estamos generando el Precio para un mes determinado después del mes de la propuesta ().

Tarea de Churn + Regresión – Salida Simple

Si estuviéramos construyendo un modelo de regresión simple, todo lo que necesitaríamos hacer para completar esta arquitectura sería agregar una activación final no negativa (por ejemplo, ReLU/ELU), prediciendo . Decidimos agregar una tarea adicional: estimar la probabilidad de supervivencia del cliente, teniendo una capa sigmoid para predecir .

Como una forma de asegurar que una disminución en la probabilidad de supervivencia del cliente conduzca a una disminución en el CLTV, agregamos la siguiente regla de negocio a nuestra red neuronal:

![ \begin{eqnarray*} PriceDest_N & = & ProbAlive_N(X) \times\\ & & PriceAlive_N + \\ & & (1-ProbAlive_N(X)) \times PriceChurned_N\\ \end{eqnarray*} ](/wp-content/ql-cache/quicklatex.com-bccf1aacbc644ba29c927f4158642f2d_l3.png)

donde el segundo término es igual a 0, ya que el Precio cuando el cliente ha generado churn () es cero. Por lo tanto, esta ecuación se reduce a una multiplicación entre la probabilidad de supervivencia y , un espacio latente que puede interpretarse como el valor potencial que el cliente está dispuesto a pagar por el servicio, sin considerar la satisfacción del cliente y la competencia.

La red que hemos construido hasta ahora se resume a continuación:

Donde las salidas de la caja roja se aprenden de forma supervisada multitarea.

La función de pérdida se calcula según la siguiente ecuación:

![ \begin{eqnarray*} Loss_N & = & XEntropy(yAlive_N, p(Alive)_N) + \\ &    & MSE(yPrice_N, Price_N)\\ \end{eqnarray*} ](/wp-content/ql-cache/quicklatex.com-3a51544b532149a95e8ce9ffa4f0144c_l3.png)

Tarea de Churn + Regresión – Salida Múltiple

La red anterior predice . Sin embargo, el CLTV se estima sumando el Precio durante varios meses.

Para crear un modelo de salida múltiple, todo lo que se requiere es repetir los bloques anteriores, desplazando el objetivo un mes para cada bloque.

La función de pérdida se calcula entonces como:

![ \begin{eqnarray*} Loss & = & \sum_{i=0}^{N} Loss_N \end{eqnarray*} ](/wp-content/ql-cache/quicklatex.com-12e66bd8997e875a964c53312ab9d751_l3.png)

Tarea de Churn + Regresión + Tarea Taker

También podemos agregar una tarea adicional para mayor explicabilidad: la probabilidad de que el cliente acepte la oferta (yTaker), que puede modelarse como una regla de negocio en la red mediante la siguiente ecuación:

![ \begin{eqnarray*} ExpectedValueTaker_N(User) & = & ProbTaker_N(User) \times LatPrice_N + \\ & &(1 - ProbTaker_N(User)) \times \\ & & PriceOrigin\\ \end{eqnarray*} ](/wp-content/ql-cache/quicklatex.com-b4e5e21d41e81cfa292e6180269aafff_l3.png)

Que es la suma del valor de suscripción si el cliente acepta la oferta y si no la acepta. Este valor esperado se multiplica entonces por la probabilidad de supervivencia en esa marca de tiempo, como en la arquitectura anterior.

La ecuación final (que puede ir seguida de una activación no negativa, como ReLu) se escribe entonces como:

![ \begin{eqnarray*} PriceDest_N(X) & = & ProbAlive_N(User) \times \\ & & (ProbTaker_N(User) \times LatPrice_N + \\ & & (1-ProbTaker_N(User)) \times PriceOrigin)\\ \end{eqnarray*} ](/wp-content/ql-cache/quicklatex.com-c337ceb6d5705644e01405446dcd309b_l3.png)

Resultados

Esta arquitectura se comparó con un modelo de regresión de referencia. Se calculó el error absoluto medio (MAE) entre el Precio predicho y estimado. Mejoramos el Error Absoluto Medio en un 50% utilizando nuestra arquitectura personalizada en comparación con un modelo de regresión estándar.

Si bien en algunos casos esto puede no tener un impacto directo en los resultados del modelo (e incluso puede conducir a un rendimiento reducido, si algunas de las etiquetas son ruidosas y contradictorias), agregar estos anteriores puede conducir a una mayor regularización del modelo y reducir el sobreajuste a valores ruidosos/atípicos o eventos esporádicos en el tiempo.

Conclusión

Hemos logrado innovar en esta área de estimación del Valor de Vida del Cliente creando un modelo multitarea que puede predecir el churn del cliente, el valor de vida y la propensión a aceptar una oferta. A pesar de que los DNNs se consideran típicamente como cajas negras, demostramos aquí que, al pensar en DNN como Programas Diferenciables (como lo alienta Yann LeCunn), podemos agregar diferentes tareas para aumentar la interpretabilidad y la toma de decisiones.

Con esto, podemos entender qué oferta es mejor para mejorar la satisfacción y retención del cliente. Por ejemplo, una oferta que conduce a una baja propensión y alta probabilidad de churn probablemente no sea la mejor oferta para ese cliente.

Hay varias formas más en las que podemos agregar conocimiento del dominio a este modelo, como una función de pérdida que penalice más a los clientes en un determinado grupo de riesgo, asegurar que las características monótonas tengan impacto monótono, entre otros.

Referencias

  1. Lu, J., & Park, O. (2003). Modeling customer lifetime value using survival analysis—an application in the telecommunications industry. Data Mining Techniques, 120-128.
  2. Peter S. Fader, Bruce G. S. Hardie, and Ka Lok Lee. 2005. RFM and CLV: Using Iso-Value Curves for Customer Base Analysis. Journal of Marketing Research XLII, November (2005), 415–430
  3. Chamberlain, B. P., Cardoso, A., Liu, C. H., Pagliari, R., & Deisenroth, M. P. (2017, August). Customer lifetime value prediction using embeddings. In Proceedings of the 23rd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining (pp. 1753-1762). ACM.
  4. Vanderveld, A., Pandey, A., Han, A., & Parekh, R. (2016, August). An engagement-based customer lifetime value system for e-commerce. In Proceedings of the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining (pp. 293-302). ACM.