Esquema unificado del MMM

El esquema unificado es una estructura de datos en capas (definida con búferes de protocolo) diseñada para representar el modelo principal y sus datos de salida en cualquier framework de MMM (p. ej., Meridian de Google o Robyn de Meta). Este esquema permite establecer una separación entre los aspectos relacionados con el entrenamiento del modelo y las aplicaciones prácticas que usan sus datos de salida. Estandariza la representación de los datos de entrada del modelo, las estadísticas de ajuste del modelo, el análisis de marketing y las optimizaciones (p. ej., presupuesto, alcance o frecuencia) de una manera independiente del modelo.

Descripción general del esquema unificado

Funciones clave

A continuación, se incluye una lista de los beneficios y las funciones clave del esquema unificado para los modelos del Marketing Mix Modeling (MMM):

  • Estandarización independiente del framework: Establece una estructura común y unificada para representar los datos de entrada y salida del MMM, sin importar el framework subyacente (p. ej., Meridian de Google o Robyn de Meta). Esto permite una interpretación y comparación coherentes de los resultados en los diferentes modelos.
  • Desacoplamiento: Separa los aspectos del framework de entrenamiento del modelo y su representación. Los sistemas downstream (p. ej., las herramientas de visualización) pueden interactuar con los datos de salida del esquema estandarizado sin depender de los detalles internos de implementación de la biblioteca de modelado.
  • Habilitación de herramientas downstream: Proporciona un contrato para una variedad de aplicaciones downstream. Los siguientes son algunos ejemplos:
    • Generación de informes
    • Paneles de visualización (p. ej., Planificador de situaciones de Meridian)
    • Canalizaciones de procesamiento de datos
  • Interoperabilidad y colaboración: Utiliza búferes de protocolo para el formato de serialización. Esto proporciona un intercambio de datos extensible, independiente del lenguaje y de la plataforma, lo que permite a los equipos que usan diferentes lenguajes de programación (Python, Java, R, etc.) trabajar con los datos de salida del modelo.
  • Extensibilidad y escalabilidad: La estructura modular y en capas del esquema unificado permite agregar nuevas funciones, métricas y análisis a medida que evolucionan las metodologías del MMM, lo que requiere cambios mínimos en el esquema principal.
  • Persistencia, uso compartido y control de versiones: El esquema basado en búferes de protocolo permite serializar en disco los modelos entrenados, los datos de entrada y los análisis derivados, así como compartirlos entre equipos y controlar sus versiones.
  • Evolución impulsada por la comunidad: Un esquema unificado de código abierto invita a la comunidad de MMM en general a realizar contribuciones. Este entorno colaborativo puede acelerar el desarrollo del esquema, incorporar diversas perspectivas y garantizar que se mantenga actualizado con los avances más recientes de la industria en rápida evolución del MMM.

Descripción general

Descripción general del esquema unificado

A grandes rasgos, el esquema unificado se divide en cuatro partes: el núcleo del modelo y tres grupos de extensiones: ajuste del modelo, análisis de marketing y optimización de marketing. Los últimos tres se derivan del primero. Las extensiones del modelo son estructuras de datos opcionales que se adjuntan al kernel del modelo. Mientras que este último representa el estado de un modelo de Marketing Mix Modeling entrenado como datos en reposo, una extensión del modelo representa un análisis derivado de ese núcleo.

// mmm.proto

// A schema that contains derived metrics and modeled analysis by a trained
// marketing mix model.
message Mmm {
  // A MMM kernel contains the core information about the model used to generate
  // this output.
  model.MmmKernel mmm_kernel = 1;

  // Model fit result.
  fit.ModelFit model_fit = 2;

  // A list of marketing analysis generated by the MMM kernel.
  marketing.analysis.MarketingAnalysisList marketing_analysis_list = 3;

  // Marketing optimization on different perspectives using the MMM kernel.
  marketing.optimization.MarketingOptimization marketing_optimization = 4;
}

Núcleo del modelo: mmm_kernel

El mensaje MmmKernel es un wrapper de modelo general. Incluye lo siguiente:

  • marketing_data: Son los datos que se usan para entrenar el modelo, realizar el análisis de marketing y optimizar la asignación del presupuesto.
  • model: Es un campo de tipo Any que contiene un formulario serializado para la implementación del modelo. El uso del tipo Any permite representar la implementación del modelo como una caja negra.

Datos de marketing

La información de marketing en MarketingDataPoint incluye datos de KPI, detalles del canal de medios y otros factores no relacionados con los medios.

El KPI puede ser o no de ingresos. Si no es de ingresos, además de especificar el valor del KPI, el usuario también puede especificar la tasa de conversión del KPI a ingresos. Esto se conoce como revenue_per_kpi.

Los detalles del canal de medios tienen un campo para la información geográfica, la información temporal, el KPI, las variables de control, las variables de medios, las variables que no son de medios y las variables de alcance y frecuencia.

Si la variable de medios, MediaVariable, de un canal de medios pagados y su desglose de inversión en medios por ubicación geográfica y período no están disponibles (es decir, la inversión en medios está agregada para todas las ubicaciones geográficas y todos los períodos), debe haber un mensaje MarketingDataPoint independiente con media_spend, en el que geo_info no esté configurado y date_interval abarque todas las coordenadas de la dimensión temporal.

Los factores que no son de medios incluyen las variables o los factores que no están directamente relacionados con los medios, pero que aun así afectan la respuesta objetivo. Algunos ejemplos son las promociones, la estacionalidad y los factores macroeconómicos. Lo que se debe incluir es una elección que depende del modelo. El campo de metadatos de marketing opcional contiene información temporal, geográfica y del KPI que resulta útil para los procesos de serialización y deserialización.

Extensión de ajuste del modelo: model_fit

La extensión de ajuste del modelo muestra la predicción en comparación con la verdad fundamental a lo largo del tiempo, así como las métricas de rendimiento. También incluye estadísticas de ajuste (R al cuadrado, MAPE, wMAPE y RMSE). Cabe destacar que la estructura de ajuste del modelo captura conceptos genéricos que deberían poder aplicarse a todos los MMM. Para ello, se capturan varios puntos de predicción independientes del modelo, se comparan con los valores observados reales y, luego, se derivan métricas de los datos agregados.

Extensión de análisis de marketing: marketing_analysis_list

La extensión de análisis de marketing incluye estadísticas sobre los datos de entrada y cómo la inversión en medios y los factores que no son de medios afectan los resultados.

Análisis de medios y no relacionado con medios

Un análisis de medios (MediaAnalysis) proporciona estadísticas sobre los impactos de un canal de medios en los KPIs (tanto de ingresos como de otros tipos). Cuando los medios no son pagados, la curva de respuesta y las métricas de impacto relacionadas con la inversión no están disponibles debido a la falta de información sobre la inversión. Un análisis no relacionado con medios (NonMediaAnalysis) es similar a un análisis de medios, excepto que no está asociado a un valor de inversión. Por lo tanto, no incluye una curva de respuesta, y los campos derivados de los valores de inversión no se reflejan en su resultado.

Resultado

Es el resultado comercial (p. ej., ingresos totales por ventas o conversiones). Representa el impacto estimado de los canales de medios o los factores de medios no pagados a través de varias métricas. Es la métrica principal de interés que mide el efecto causal de las variables de tratamiento.

El resultado se puede definir con alguno de los siguientes elementos:

  • KPI: Es una métrica específica y cuantificable que se usa para medir el progreso hacia un resultado determinado. Es la variable de respuesta del modelo. Existen dos tipos de KPI: (a) uno que adopta la forma de ingresos (p. ej., valor monetario) y (b) uno que adopta la forma de un KPI genérico, definido por el usuario y que no es de ingresos (p. ej., tasa de clics).
  • ROI, mROI y costo por contribución: Los canales de medios pueden basarse o no en los ingresos, lo que significa que todos los campos del archivo .proto (ROI, mROI y costo por contribución) pueden completarse. Los canales que no son de medios no tienen inversión, por lo que los campos relacionados con la inversión (ROI y mROI) no deben completarse.
  • Contribución y efectividad: Podrían tener significados ligeramente diferentes según el contexto. Si el KPI es de ingresos en los medios, se usan valores de ingresos monetarios en los cálculos, mientras que, si no es de ingresos, se usan valores de KPI genéricos definidos por el usuario.

Grupo de extensiones de optimización de marketing: marketing_optimization

La optimización de marketing se puede aplicar a diversos aspectos. En este grupo de extensiones, se incluyen todas las extensiones relacionadas con la optimización.

Extensión BudgetAllocation

Las estructuras definidas aquí capturan conceptos independientes del modelo para una asignación óptima del presupuesto en varios canales de marketing, dados algunos datos ingresados por el usuario para las restricciones, los objetivos de optimización, etcétera.

BudgetOptimizationResult se calcula para la inversión de marketing en todos los canales correspondientes, según las selecciones temporales específicas. Requiere que el usuario proporcione un objetivo de optimización y defina las restricciones de presupuesto para cada canal. Esta optimización puede ser de dos tipos: de presupuesto fijo o flexible. En el caso de la optimización de presupuesto fijo, el objetivo es maximizar el valor de una métrica objetiva optimizando la asignación del presupuesto en los canales sin cambiar el importe total del presupuesto. Por otro lado, en el caso de la optimización de presupuesto flexible, el objetivo es maximizar el valor de una métrica objetiva optimizando la asignación del presupuesto en los canales con un importe total flexible del presupuesto, teniendo en cuenta algunas restricciones predefinidas.

El resultado optimizado se expresa por canal. El resultado de cada canal incluye el resultado real, el resultado optimizado por el modelo y las restricciones de presupuesto utilizadas en el proceso de optimización.

Además de los resultados de la optimización, BudgetOptimization contiene una lista de IncrementalOutcomeGrids, que presentan distintos tipos de resultados incrementales o diferentes niveles de detalle en la cuadrícula. Cada IncrementalOutcomeGrid representa una cuadrícula que detalla el resultado incremental de la inversión de marketing por canal. Esta cuadrícula resulta útil, por ejemplo, para trazar la tendencia de los impactos incrementales en función de la inversión o para ejecutar una optimización del presupuesto en línea basada en un algoritmo de optimización de búsqueda de cuadrícula. Ten en cuenta que esta cuadrícula se crea bajo el supuesto de que no hay un efecto de interacción entre los canales, es decir, la inversión en un canal no afectará a otros canales.

Extensión OptimalFrequency

La frecuencia promedio óptima (que es opcional y depende, principalmente, de que el modelo incluya datos de alcance y frecuencia) indica la frecuencia óptima de impresiones publicitarias por usuario único en el canal para maximizar un objetivo. La disponibilidad de esta extensión depende de los datos y la capacidad del MMM.

Instalación

Para instalar el paquete del esquema unificado, clona el repositorio de GitHub de Meridian y, luego, incluye el extra [schema] al instalar Meridian. Este paquete contiene las definiciones pertinentes en archivos .proto.

$ git clone https://github.com/google/meridian.git;
$ cd meridian;
$ pip install .[schema];

Capa de traducción

Según el framework del MMM y los algoritmos específicos del modelo, la capa de traducción o los procesadores que generan el mensaje .proto correspondiente del MMM pueden variar. Como punto de partida, consulta un ejemplo de los procesadores de Meridian de Google.