Marketing Mix Modeling: Une comparaison technique de deux solutions (avancé)

Introduction

Dans la lignée des articles consacrés au Marketing Mix Modeling, nous souhaitons proposer un article plus technique qui rentre davantage dans les détails méthodologiques du MMM. Le principal objectif est de comparer le modèle de Google, LightweightMMM avec le modèle de Meta, Robyn. En explorant leurs similarités et leurs différences, vous pourrez avoir une idée des principales méthodes employées dans l’industrie, de leurs avantages et de leurs inconvénients.

Aspects techniques et communauté

Language

LightweightMMM est écrit en Python tandis que Robyn est écrit en R. Dans les faits, cela n’impacte pas la qualité des modèles sous-jacents. Les deux langages ont les capacités d’analyse requises, des librairies de qualité et une communauté active. Néanmoins, cela est à prendre en compte si vous ne connaissez qu’un seul de ces deux langages. L’équipe de Robyn a annoncé qu’elle traduirait son package en Python, mais n’a indiqué aucune date (l’annonce est déjà ancienne pourtant). Au moment de l’écriture de cet article, chaque modèle n’est disponible que dans son langage natif.

Communauté

Robyn est un package officiellement soutenu par Meta tandis que Lightweight est maintenu par une communauté de bénévoles, dont des employées de Google. Cette différence d’engagement se fait fortement ressentir sur la documentation, la réactivité de la communauté et les canaux de communication.

Robyn a un site web, un groupe de Q&A sur Facebook (dans lequel les créateurs du packages répondent), une page github active et de la documentation officielle sur CRAN. Un soutien est apporté en cas de questions et de problèmes techniques, ce qui peut être incroyablement utile en cas de point bloquant. De plus, de nouvelles fonctionnalités sont communiquées régulièrement, ce qui augmente la qualité du package.

LightweightMMM est moins bien maintenu, conséquence directe de la nature inofficielle du projet. Heureusement, il existe une documentation officielle (bien que moins complète que celle de Robyn à notre sens) et une page github. Le soutien est moins régulier et il faut s’attendre à plus se débrouiller seul en cas de blocage.

A notre sens, la réactivité de la communauté est un point important à considérer, en particulier quand vous ne connaissez pas (encore) le package.

La méthodologie

De manière générale, tant Robyn que LightweightMMM vont essayer d’estimer l’équation présentée ci-dessous (ceci est une formule simplifiée):

kpi= 𝝰 + trend + seasonality + media channels + other factors

Dans le sens où le KPI mesuré (à savoir les ventes, le nombre de nouveaux clients, etc.) dépend de:

  • 𝝰: une constante, qui représente la quantité du KPI lorsque tous les autres éléments sont nuls.
  • trend: modélise la tendance de l’entreprise (est-elle en croissance, décroissance ou stable ?).
  • seasonality: estime l’effet saisonnier sur le KPI (par exemple, un surplus de ventes avant Noël et une baisse durant les vacances d’été).
  • media channels: mesure l’impact de chaque canal marketing sur le KPI. Dans les faits, c’est cette information qui nous intéresse le plus pour construire son plan média.
  • other factors: modélise l’effet des autres facteurs ajoutés au modèle sur le KPI. Parmi les facteurs typiques qui peuvent être rajoutés, il y a le CRM, les soldes, les recherches organiques, etc.

Similarités

La quasi-totalité des modèles de MMM réalistes doit modéliser deux éléments clé pour calculer l’impact des canaux marketing: l’adstock et l’effet marginal décroissant (définition dans l’article précédent ici).

  • La manière de mesurer l’effet marginal décroissant est similaire entre les deux modèles. La fonction de Hill (qui dépend de deux paramètres) est utilisée. Les paramètres sont estimés lors de la modélisation.
  • Tant Robyn que LightweightMMM propose de modéliser l’adstock selon une série géométrique (geometric decay, qui dépend d’un paramètre). Cette méthode a l’avantage d’être relativement simple et intuitive. Selon les cas de figure, des modélisations de l’adstock plus complexes sont disponibles, à savoir une modélisation selon une distribution Weibull (pour Robyn) ou selon une convulsion causale pour LightweightMMM.

La deuxième grande similitude entre les deux modèles est qu’ils ingèrent des données identiques. Cela est très utile si l’on veut tester les deux modèles lors d’une étude, car la phase de collecte de données peut être réalisée en amont sans avoir encore décidé quel modèle utiliser pour la modélisation.

Différences

Ainsi, les deux modèles reposent sur des hypothèses semblables pour modéliser l’adstock et l’effet marginal décroissant. Néanmoins, la manière de faire pour estimer les paramètres sera distincte.

Robyn fonctionne à l’aide de plusieurs algorithmes développés par Meta. La modélisation des paramètres se fait en plusieurs phases.

La première phase consiste à estimer le trend et la saisonality. Ceci est fait grâce à l’algorithme Prophet. La deuxième phase consiste à utiliser une méthode de régularisation pour éviter l’overfitting. Ceci est réalisé à l’aide d’une ridge régression qui estimera tous les paramètres restants.

Finalement, ce processus est réalisé une multitude de fois et est optimisé à l’aide de l’algorithme Nevergrad afin de trouver les quelques modèles les plus pertinents tant d’un point de vue mathématique que d’un point de vue business (Nevergad va éliminer les modèles aberrants d’un point du vue business, mais valides selon les règles mathématiques).

Il faut noter que les estimations ont lieu sans que l’utilisateur ne puisse influencer les résultats (dans les faits, l’utilisateur peut intégrer des éléments pour influer sur les résultats, mais de manière limitée).

LightweightMMM fonctionne selon la vision bayésienne. Une des grandes caractéristiques qui le différencie des méthodes fréquentistes (tel que Robyn) et qu’il faut fournir des priors (probabilité à priori) avant de lancer la modélisation. Ces priors représentent nos “croyances” vis-à-vis des paramètres à estimer. Ainsi, les paramètres estimés par le modèle seront un mélange entre nos croyances et ce qui est observé dans la donnée.

Exemple: Ma croyance est que Google Search a un adstock relativement faible (l’effet de ce canal se dissipe rapidement dans le temps). Pour représenter cette croyance, je vais assigner une distribution qui colle avec ma croyance au(x) paramètre(s) de l’adstock. Si j’utilise la série géométrique pour modéliser l’adstock, alors je peux par exemple assigner une distribution Beta(2,8) au paramètre theta (l’unique paramètre de la série géométrique). Cette distribution reflète ma croyance que l’adstock est petit.

Une fois des priors assignés à chaque paramètre, la modélisation est faite grâce à la méthode de Monte-Carlo par chaînes de Markov (MCMC) qui utilise l’algorithme NUTS.

Ce qui est important de retenir et qu’il est possible d’influencer les résultats finaux de manière beaucoup plus importante qu’avec Robyn (grâce aux priors). En effet, les résultats sont un mélange entre la donnée observée et les priors.

Notre avis d’intégrateur

De manière générale, tant Robyn que LightweightMMM ont permis de faire des progrès importants pour réaliser un MMM réaliste. Bien que les méthodes de faire diffèrent, les deux méthodes ont leurs avantages et inconvénients.

Chez Bright, nous avons d’abord fait une utilisation extensive de Robyn. Ceci, car le package, nativement compatible avec notre framework, a été disponible plus tôt de manière mature et la documentation est riche. Néanmoins, même en calibrant le modèle de manière cohérente, nous avons remarqué que nous obtenions parfois des résultats nous demandant un plus grand temps exploration pour augmenter la pertinence du modèle notamment le R2 (r2 = taux d’explication de la variance par le modèle).

Une des grandes forces de LightweightMMM est que les résultats non-réalistes peuvent être complètement éliminés grâce aux priors. Le contrôle fourni par les priors permet de “modeler” les résultats dans le sens désiré. Et bien que cela soit pratique, cela vient aussi avec le risque de trop déformer l’évidence observée dans la donnée avec des croyances trop prononcées. Toute la finesse vient du fait de bien jauger la force de priors en leur choisissant la bonne distribution et les bons paramètres, ce qui n’est pas évident.

D’un autre côté, les créateurs de Robyn ont eux aussi remarqué que parfois les résultats n’étaient pas satisfaisants et ont ajouté un moyen de diriger le modèle vers les résultats désirés. Conceptuellement, cela ressemble à l’utilisation de méthodes bayésiennes, bien que moins fines.Cela lui permet de reproduire en partie les avantages de LightweightMMM.

En ce qui concerne les fonctionnalités et la visualisation des résultats, Robyn a de meilleures capacités que LightweightMMM. En plus du set de graphiques relativement complets produit suite à la modélisation, Robyn propose des fonctions fiables pour répartir son budget de manière optimale et rafraîchir le modèle.

Finalement, le Q&A beaucoup moins présent pour LightweightMMM décourage un peu son utilisation. Cela complique son implémentation et peut créer des blocages conséquents en cas d’erreur non identifiée.

Pour Bright, si la situation le permet, l’idéal est de lancer les deux modélisations et de comparer les résultats. Si de grandes différences sont remarquées, il faut en chercher les causes et pour définir quelles solutions sont les plus probables.

Conclusions

Meta et LightweightMMM sont des projets ambitieux qui ont permis de démocratiser “un peu” l’utilisation de MMM complexes. L’utilisation de ce type d’analyse permet une utilisation plus efficiente des ressources financières et une meilleure compréhension de l’impact de son mix média.

A l’instant, aucun package n’a de supériorité claire sur l’autre, du moins à notre sens. Pour Lightweight MMM, nous trouvons que l’utilisation de méthodes bayésiennes est une piste intéressante. Robyn se distingue par une meilleure qualité du package dans son ensemble. A notre avis, le développement futur des packages déterminera lequel deviendra le plus populaire parmi les analystes.