Esquema unificado de MMM

O Unified Schema é um esquema de dados em camadas, definido usando buffers de protocolo. Ele busca representar o modelo principal e as respostas dele para qualquer estrutura de MMM (por exemplo, Meridian do Google e Robyn da Meta). Esse esquema separa os requisitos do treinamento de modelo das aplicações práticas que consomem a resposta dele. Ele padroniza a representação de entradas do modelo, estatísticas de ajuste do modelo, análises de marketing e otimizações (por exemplo, orçamento, alcance/frequência) de maneira independente do modelo.

Visão geral do Unified Schema

Principais recursos

Uma lista dos principais recursos e benefícios do Unified Schema para Modelos de Marketing Mix (MMM):

  • Padronização independente: define uma estrutura comum e unificada para representar entradas e resultados de MMM, seja qual for a estrutura (por exemplo, Meridian do Google e Robyn da Meta). Isso permite uma interpretação e comparação consistentes dos resultados em diferentes modelos.
  • Separação: isola os requisitos da estrutura de treinamento e da representação do modelo. Os sistemas downstream (por exemplo, ferramentas de visualização) podem interagir com a resposta do esquema padronizado sem depender dos detalhes internos de implementação da biblioteca de modelagem.
  • Uso de ferramentas downstream: fornece um contrato para várias aplicações downstream. Exemplos:
    • Geração de relatórios
    • Painéis de visualização (por exemplo, Meridian Scenario Planner)
    • Pipelines de tratamento de dados
  • Interoperabilidade e colaboração: usa buffers de protocolo para o formato de serialização. Isso oferece um mecanismo extensível para troca de dados e neutro com relação à linguagem e à plataforma. Assim, equipes que usam diferentes linguagens de programação (Python, Java, R etc.) podem trabalhar com respostas de modelos.
  • Capacidade de extensão e escalabilidade: com a estrutura modular e em camadas do Unified Schema, é possível adicionar novos recursos, métricas e análises à medida que as metodologias de MMM evoluem, exigindo poucas mudanças no esquema principal.
  • Persistência, compartilhamento e controle de versões: o esquema baseado em buffers de protocolo permite que entradas, análises derivadas e modelos treinados sejam serializados em disco, compartilhados entre equipes e tenham controle de versões.
  • Evoluções promovidas pela comunidade: um formato Unified Schema de código aberto incentiva contribuições da comunidade geral de MMM. Esse ambiente colaborativo pode acelerar o desenvolvimento do esquema, incorporar perspectivas diversas e garantir atualizações de acordo com os avanços no setor de MMM, que é bastante dinâmico.

Visão geral

Visão geral do Unified Schema

O Unified Schema é dividido em quatro partes: o núcleo do modelo e três grupos de extensão (ajuste do modelo, análise de marketing e otimização de marketing). Os três últimos são derivados do primeiro. As extensões são estruturas de dados opcionais, anexadas ao kernel do modelo. O último representa o estado de um modelo de mix de marketing treinado como dados em repouso, mas uma extensão de modelo representa uma análise derivada do 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 do modelo: mmm_kernel

A mensagem MmmKernel é um wrapper de modelo geral e inclui o seguinte:

  • marketing_data: dados usados para treinar o modelo, fazer análises de marketing e otimizar a alocação de orçamento.
  • model: um campo de qualquer tipo que encapsula um formulário serializado para a implementação do modelo. Com o tipo Any, a implementação do modelo pode ser representada como uma caixa preta.

Dados de marketing

As informações de marketing em MarketingDataPoint incluem dados de KPI, detalhes do canal de mídia e outros fatores não relacionados a mídia.

O KPI pode ser de receita ou outro tipo. Nesse último, além de especificar o valor do KPI, o usuário também pode definir a taxa de conversão do KPI como se fosse receita. Isso é conhecido como revenue_per_kpi.

Os detalhes do canal têm um campo para informações geográficas, período, KPI e variáveis de controle, de mídia, não relacionadas a mídia e de alcance/frequência.

Se o campo MediaVariable de um canal de mídia paga e o detalhamento do gasto de mídia por região geográfica e período não estiverem disponíveis (ou seja, o gasto de mídia for agregado em todas as regiões e períodos), haverá uma mensagem MarketingDataPoint separada com media_spend, em que geo_info não está definido e date_interval abrange as coordenadas de toda a dimensão de período.

Os fatores não relacionados a mídia incluem as variáveis ou fatores que não estão diretamente relacionados a mídia, mas ainda afetam a resposta desejada. Por exemplo, promoções, fatores de sazonalidade e aspectos macroeconômicos. É necessário incluir uma escolha dependente do modelo. O campo opcional de metadados de marketing contém informações de período, região geográfica e KPI úteis para processos de serialização e desserialização.

Extensão de ajuste do modelo: model_fit

Essa extensão mostra a previsão em relação às informações empíricas ao longo do tempo e as métricas de performance. Ela também contém estatísticas sobre a bondade de ajuste (R ao quadrado, MAPE, WMAPE, REQM). A estrutura para ajuste de modelo inclui conceitos genéricos que devem ser aplicados a todos os MMMs. Isso é feito capturando vários pontos de previsão independentes do modelo e comparando-os com os valores observados reais. Em seguida, as métricas são derivadas do agregado.

Extensão de análise de marketing: marketing_analysis_list

Essa extensão contém insights sobre dados de entrada e como o gasto de mídia e fatores não relacionados a mídia afetam os resultados.

Análise de mídia e de outros canais

Um campo MediaAnalysis dá insights sobre o impacto de um canal de mídia nos KPIs (receita e outros). Quando a mídia não é paga, a curva de resposta e as métricas de impacto relacionadas ao gasto não ficam disponíveis devido à falta de informações sobre os gastos. Um campo NonMediaAnalysis é semelhante a uma análise de mídia, mas não está associado a um valor de gasto. Por isso, ele não contém uma curva de resposta, e os campos derivados dos valores de gasto não serão definidos no resultado.

Resultado

O resultado é o desempenho comercial (por exemplo, receita total de vendas ou conversões). Ele representa o impacto estimado dos canais de mídia ou fatores de mídia não paga por várias métricas. É a principal métrica de interesse que mede o efeito causal das variáveis de tratamento.

O resultado pode ser definido por uma destas opções:

  • KPI: é uma métrica específica e quantificável usada para medir o progresso em relação a uma meta. É a variável de resposta do modelo. Há dois tipos de KPI: a) na forma de receita (por exemplo, valor monetário) e b) na forma de um KPI genérico, definido pelo usuário e sem receita (como a taxa de cliques).
  • ROI, mROI, custo por contribuição: os canais de mídia podem ser baseados ou não em receita, ou seja, todos os campos proto (ROI, mROI, custo por contribuição) podem ser preenchidos. Os canais não relacionados a mídia não têm gastos, então os campos referentes a gastos (ROI, mROI) não devem ser preenchidos.
  • Contribuição e eficácia: podem ter significados um pouco diferentes, dependendo do contexto. Para o KPI de receita na mídia, ele usa valores monetários de receita nos cálculos, enquanto os KPIs sem receita utilizam valores genéricos e definidos pelo usuário.

Grupo de extensões da otimização de marketing: marketing_optimization

A otimização de marketing pode ser feita em vários aspectos. Neste grupo, todas as extensões relacionadas à otimização estão incluídas.

Extensão BudgetAllocation

As estruturas definidas aqui capturam conceitos independentes de modelo para ter uma alocação de orçamento ideal em vários canais de marketing, considerando algumas entradas do usuário para restrições, objetivos de otimização etc.

O campo BudgetOptimizationResult é calculado para o gasto com marketing em todos os canais relevantes, considerando escolhas de período específicas. Ele exige a entrada do usuário com uma meta de otimização e restrições de orçamento em cada canal. Essa otimização tem dois tipos: orçamento fixo e flexível. No caso de orçamento fixo, a meta é maximizar o valor de uma métrica objetiva otimizando a alocação entre os canais sem mudar o valor total do orçamento. Já o orçamento flexível visa maximizar o valor de uma métrica objetiva, otimizando a alocação entre os canais com um valor total de orçamento flexível, mantendo algumas restrições predefinidas.

O resultado otimizado é apresentado por canal. Cada resultado de canal tem o valor real e otimizado pelo modelo, além das restrições de orçamento usadas no processo de otimização.

Além dos resultados da otimização, BudgetOptimization contém uma lista de IncrementalOutcomeGrids com diferentes tipos de resultados incrementais ou granularidades de grade. Cada IncrementalOutcomeGrid representa uma grade que detalha o resultado incremental dos gastos com marketing por canal. Essa grade é útil para, por exemplo, representar a tendência de impactos incrementais em relação ao gasto ou aprimorar o orçamento on-line com base em um algoritmo de otimização de pesquisa em grade. Essa grade é criada com a premissa de que não há efeito de interação entre os canais, ou seja, o gasto em um canal não afeta os outros.

Extensão OptimalFrequency

A frequência média ideal, que é opcional e depende da presença de dados de alcance e frequência no modelo, indica uma frequência ideal de impressão de publicidade por usuário único no canal, visando maximizar um objetivo. A disponibilidade dessa extensão depende dos dados e da capacidade do MMM.

Instalação

Instale o pacote Unified Schema clonando o repositório do Meridian no GitHub e incluindo o extra [schema] ao instalar o Meridian. Esse pacote contém as definições proto relevantes.

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

Camada de tradução

Dependendo da estrutura do MMM e dos algoritmos específicos do modelo, a camada de tradução ou os operadores que produzem uma mensagem proto do MMM correspondente variam. Para começar, veja um exemplo de operadores do Meridian do Google.