Modèle bayésien hiérarchique (?)

12

Veuillez m'excuser d'avoir massacré le jargon statistique :) J'ai trouvé ici quelques questions concernant la publicité et les taux de clics. Mais aucun d'eux ne m'a beaucoup aidé dans ma compréhension de ma situation hiérarchique.

Il y a une question connexe. Ces représentations équivalentes du même modèle bayésien hiérarchique? , mais je ne sais pas s'ils ont réellement un problème similaire. Une autre question des Prieurs pour le modèle binomial bayésien hiérarchique va en détail sur les hyperpriors, mais je ne suis pas en mesure de cartographier leur solution à mon problème

J'ai quelques annonces en ligne pour un nouveau produit. J'ai laissé les annonces diffusées pendant quelques jours. À ce stade, suffisamment de personnes ont cliqué sur les annonces pour voir laquelle obtient le plus de clics. Après avoir éliminé tout sauf celui qui a généré le plus de clics, je laisse celui-ci s'exécuter pendant quelques jours pour voir combien de personnes achètent réellement après avoir cliqué sur l'annonce. À ce stade, je sais si c'était une bonne idée de diffuser les annonces en premier lieu.

Mes statistiques sont très bruyantes car je n'ai pas beaucoup de données car je ne vends que quelques articles par jour. Par conséquent, il est vraiment difficile d'estimer combien de personnes achètent quelque chose après avoir vu une annonce. Seulement environ un clic sur 150 entraîne un achat.

De manière générale, je dois savoir si je perds de l'argent sur chaque annonce dès que possible en lissant d'une manière ou d'une autre les statistiques par groupe d'annonces avec les statistiques globales sur toutes les annonces.

  • Si j'attends que chaque annonce ait vu suffisamment d'achats, je vais faire faillite car cela prend trop de temps: pour tester 10 annonces, je dois dépenser 10 fois plus d'argent pour que les statistiques de chaque annonce soient suffisamment fiables. À ce moment-là, j'aurais peut-être perdu de l'argent.
  • Si je fais la moyenne des achats sur toutes les annonces, je ne pourrai pas supprimer les annonces qui ne fonctionnent tout simplement pas aussi bien.

Puis-je utiliser le taux d'achat global ( sous-distributions N $? Cela signifie que plus je dispose de données pour chaque annonce, plus les statistiques de cette annonce sont indépendantes. Si personne n'a encore cliqué sur une annonce, je suppose que la moyenne mondiale est appropriée.perclick)anduseitasapriorfor

Quelle distribution choisirais-je pour cela?

Si j'ai eu 20 clics sur A et 4 clics sur B, comment puis-je modéliser cela? Jusqu'à présent, j'ai compris qu'une distribution binomiale ou de Poisson pourrait avoir un sens ici:

  • purchase_rate ~ poisson (?)
  • (purchase_rate | group A) ~ poisson (estimer le prix d'achat uniquement pour le groupe A?)

Mais que dois-je faire ensuite pour calculer réellement le purchase_rate | group A. Comment puis-je connecter deux distributions ensemble pour donner un sens au groupe A (ou à tout autre groupe).

Dois-je d'abord monter un modèle? J'ai des données que je pourrais utiliser pour "former" un modèle:

  • Annonce A: 352 clics, 5 achats
  • Annonce B: 15 clics, 0 achat
  • Annonce C: 3519 clics, 130 achats

Je cherche un moyen d'estimer la probabilité de l'un des groupes. Si un groupe n'a que quelques points de données, je veux essentiellement revenir à la moyenne mondiale. Je connais un peu les statistiques bayésiennes et j'ai lu beaucoup de PDF décrivant comment ils modélisent en utilisant l'inférence bayésienne et les antécédents conjugués, etc. Je pense qu'il existe un moyen de le faire correctement, mais je ne sais pas comment le modéliser correctement.

Je serais très heureux des conseils qui m'aideraient à formuler mon problème de manière bayésienne. Cela aiderait beaucoup à trouver des exemples en ligne que je pourrais utiliser pour réellement implémenter cela.

Mise à jour:

Merci beaucoup d'avoir répondu. Je commence à comprendre de plus en plus de petits détails sur mon problème. Je vous remercie! Permettez-moi de poser quelques questions pour voir si je comprends mieux le problème maintenant:

Je suppose donc que les conversions sont distribuées sous forme de distributions bêta et qu'une distribution bêta a deux paramètres, et .bab

Les paramètres sont des hyperparamètres, ils sont donc des paramètres antérieurs? Donc, au final, j'ai défini le nombre de conversions et le nombre de clics comme paramètre de ma distribution bêta? 112 12

À un moment donné, lorsque je veux comparer différentes annonces, je calculerais donc . Comment calculer chaque partie de cette formule?P(conversion|ad=X)=P(ad=X|conversion)P(conversion)P(ad=X)

  • Je pense que est appelé vraisemblance, ou "mode" de la distribution bêta. C'est donc , avec et étant les paramètres de ma distribution. Mais les et spécifiques sont les paramètres de la distribution juste pour l'annonce , non? Dans ce cas, s'agit-il uniquement du nombre de clics et de conversions enregistrés par cette annonce? Ou combien de clics / conversions toutes les annonces ont-elles vues?α - 1P(ad=X|conversion) αβαβXα1α+β2αβαβX

  • Ensuite, je multiplie avec l'a priori, qui est P (conversion), qui est dans mon cas juste l'a priori de Jeffreys, qui n'est pas informatif. L'avant restera-t-il le même que j'obtiens plus de données?

  • Je divise par , qui est la probabilité marginale, donc je compte la fréquence à laquelle cette annonce a été cliquée?P(ad)

En utilisant le précédent de Jeffreys, je suppose que je commence à zéro et je ne sais rien de mes données. Ce prieur est appelé "non informatif". Tandis que je continue à découvrir mes données, dois-je mettre à jour la précédente?

Au fur et à mesure des clics et des conversions, j'ai lu que je devais "mettre à jour" ma distribution. Est-ce à dire que les paramètres de ma distribution changent, ou que les changements antérieurs? Lorsque je reçois un clic pour l'annonce X, dois-je mettre à jour plusieurs distributions? Plus d'un avant?

Mika Tiihonen
la source

Réponses:

9

Comme vous l'avez compris, une façon très générale d'aborder votre question est de construire un modèle bayésien hiérarchique (à plusieurs niveaux). Le modèle comprend trois parties, comme illustré ci-dessous.

Modèle

Modèle bayésien hiérarchique pour les taux de conversion des annonces

  1. Au niveau de la population, nous modélisons la probabilité de conversion dans la population d'annonces à partir de laquelle votre ensemble particulier d'annonces testées est échantillonné. On pourrait fixer les paramètres de population et les utiliser comme a priori pour le deuxième niveau, comme l'a déjà noté Neil. Alternativement, nous pourrions placer un prior sur les paramètres de population eux-mêmes, ce qui offre l'avantage supplémentaire que nous pouvons maintenant exprimer notre incertitude sur les paramètres de population à la lumière des données. Suivons cette route et un sur la moyenne de la population et sur la précision de la population ( c'est-à-dire la variance inverse). Un a priori diffus peut être obtenu en utilisantN(μμ0,η0)μGa(λa0,b0)μ0=0,η0=0.1,a0=1,b0=1, ce qui garantit que nos inférences postérieures seront dominées par les données.

  2. Au niveau des annonces individuelles, nous pouvons modéliser la probabilité de conversion d'une annonce donnée distribuée logit-normalement. Ainsi, pour chaque annonce , la probabilité de conversion logit est modélisée comme .πjjjρj:=logit(πj)N(ρjμ,λ)

  3. Enfin, au niveau des données observées, nous modélisons le nombre de conversions pour ad comme , où utilise la transformée sigmoïde pour traduire un taux logit en une probabilité, et où est le nombre de clics sur l'annonce . j Bin ( k jσ ( ρ j ) , n j ) σ ( ρ j ) n j jkjjBin(kjσ(ρj),nj)σ(ρj)njj

Les données

Par exemple, prenons les données que vous avez publiées dans votre question d'origine,

Annonce A: 352 clics, 5 achats

Annonce B: 15 clics, 0 achat

Annonce C: 3519 clics, 130 achats

que nous traduisons en:n1=352,k1=5,n2=15,k2=0,

Inférence

Inverser ce modèle signifie obtenir des distributions postérieures pour nos paramètres de modèle. Ici, j'ai utilisé une approche bayésienne variationnelle pour modéliser l'inversion, qui est plus efficace sur le plan informatique que les schémas d'échantillonnage stochastiques tels que MCMC. J'ai tracé les résultats ci-dessous.

Données et postérieures résultantes

La figure montre trois panneaux. (a) Une visualisation simple des données d'exemple que vous avez fournies. Les barres grises représentent le nombre de clics, les barres noires indiquent le nombre de conversions. (b) La distribution postérieure résultante sur le taux de conversion moyen de la population. À mesure que nous observons plus de données, cela deviendra de plus en plus précis. (c) Intervalles de probabilité postérieure centrale à 95% (ou intervalles crédibles) des taux de conversion postérieure spécifiques à l'annonce.

Le dernier panneau illustre deux caractéristiques clés d'une approche bayésienne de la modélisation hiérarchique. Premièrement, la précision des postérieurs reflète le nombre de points de données sous-jacents. Par exemple, nous avons relativement de nombreux points de données pour l'annonce C; ainsi, son postérieur est beaucoup plus précis que les postérieurs des autres publicités.

Deuxièmement, les inférences spécifiques à l'annonce sont basées sur les connaissances de la population. En d'autres termes, les postérieurs spécifiques à l'annonce sont basés sur les données de l'ensemble du groupe, un effet connu sous le nom de rétrécissement de la population . Par exemple, le mode postérieur (cercle noir) de l'annonce A est beaucoup plus élevé que son taux de conversion empirique (bleu). En effet, toutes les autres annonces ont des modes postérieurs plus élevés, et nous pouvons donc obtenir une meilleure estimation de la vérité terrain en informant nos estimations spécifiques à l'annonce par la moyenne du groupe. Moins nous avons de données sur une annonce particulière, plus sa partie postérieure sera influencée par les données des autres annonces.

Toutes les idées que vous avez décrites dans votre question d'origine sont réalisées naturellement dans le modèle ci-dessus, illustrant l'utilité pratique d'un cadre entièrement bayésien.

Kay Brodersen
la source
Kay, merci pour ta réponse détaillée. Je comprends que la réponse est légèrement datée, mais pourriez-vous partager le code d'accompagnement si vous l'avez conservé? J'essaie d'apprendre la modélisation bayésienne hiérarchique mais j'ai du mal à trouver des exemples intuitifs dans R.
Zhubarb
@Kay, merci pour la réponse intéressante, pourriez-vous ajouter des références aux modèles bayésiens hiérarchiques? Merci!
user511005
1
Salut @Zhubarb, user511005, voici un lien vers l'article décrivant le modèle ci-dessus: sciencedirect.com/science/article/pii/S1053811913002371 J'ai préparé une brève introduction à l'inférence variationnelle ici: people.inf.ethz.ch/ bkay / conversations / Brodersen_2013_03_22.pdf
Kay Brodersen
2

p

paabb

ab(12,12)a,b

pa,b


En réponse à vos modifications:

pabppab

La mise à jour bayésienne est

P(px)P(p)P(xp)

xpababp

Le prieur des Jeffreys n'est pas la même chose que le prieur non informatif, mais je pense que c'est mieux à moins d'avoir une bonne raison de l'utiliser. N'hésitez pas à poser une autre question si vous souhaitez entamer une discussion à ce sujet.

Neil G
la source
Merci d'avoir répondu! J'ai mis à jour ma question d'origine, car je n'ai plus de caractères dans cette zone de commentaire. Ce serait formidable si vous pouviez donner des commentaires pour certains des détails que j'ai écrits dans la mise à jour.
Mika Tiihonen