Zijn learnings uit Bandit testen net zo betrouwbaar als learnings uit A/B testen?
In het online experimenteren worden tegenwoordig steeds meer slimme algoritmes ingezet. Een voorbeeld hiervan is de inzet van bandit algoritmes. Bandits zijn optimalisatie-algoritmes die helpen met het verdelen van verschillende versies van uitingen (zoals advertenties) om zo de winst te maximaliseren. Tijdens de looptijd van een experiment passen zij constant de verdeling aan, om zo het meeste verkeer naar de beste converterend versie te sturen. Zo zorgen ze ervoor dat er tijdens de looptijd van een experiment al winst wordt gegenereerd.
Vanaf het begin al optimaliseren op winst is erg gunstig, maar is de data ook betrouwbaar genoeg om te bekijken wanneer je wilt leren over gebruikers en hun gedrag?
Om elke dag opnieuw de verdeling te bepalen, maken de algoritmes gebruik van een korte feedbackloop om te kijken wat er tot dan toe het beste heeft gewerkt. Dit is dus erg moment-specifiek en daardoor erg veranderlijk. Het kan er dus voor zorgen dat de ene versie veel meer verkeer toebedeeld krijgt dan de ander, en dat dit ook nog eens afhankelijk is van welke dag het is.
Dit is tegenstrijdig met de filosofie van ‘normale’ A/B testen waarin we er ten alle tijden voor willen zorgen dat de verdeling van het verkeer naar de verschillende versies precies gelijk is en random verdeeld (dus niet afhankelijk van dag, of goed werkende versie). Deze gelijke verdeling (dus zonder SRM error) is namelijk nodig om een betrouwbare significantie berekening uit te kunnen voeren. Ofwel, bij A/B testen proberen we de resultaten van een kortdurend experiment te generaliseren zodat we er een conclusie uit kunnen trekken over dat wat er voor langere periode werkt.
Maar moet er echt gekozen worden tussen leren voor de lange termijn, of op dit moment optimaliseren of de winst? Nee! We kunnen experimenteren met een best of both worlds situatie. Hieronder leg ik uit hoe en verwerk deze redenen in een paar vuistregels (met voorbeeld). (Niet zo’n statistisch wonder? Scroll dan naar onder)
Vraag 1: Kunnen we lange termijn learnings halen uit de data verzameld tijdens een bandit test?
Antwoord: Ja, onder enkele voorwaarden (zie conclusie).
Ja, wanneer je een significantie berekening via de bayesiaanse statistische methode uitvoert. De bayesiaanse berekening van je A/B test significantie maakt gebruik van een Monte Carlo simulatie van de resultaten en is daardoor robuuster tegen een oneerlijke verdeling van het verkeer dan frequentistische methodes.
Maar hier zitten limieten aan. Het is moeilijker om A/B-test winnaars te vinden met data van bandits met oneerlijk verdeeld verkeer, dan wanneer het verkeer gelijk verdeeld zou zijn. Dit komt door een aantal statistische fenomenen, die hieronder worden uitgelicht. De limieten aan het vinden van significante winnaars komt door 1) de grotere variantie voor de versie met het minste verkeer(zie hieronder) en 2) er is een grotere kans dat de testen underpowered zijn (zie uitleg power issue) en 3) empirische studies wijzen uit dat data verzameld door bandits een hoger False Positive Ratio heeft.
Hieronder een toelichting.
Variantie
Het plaatje laat zien dat wanneer er minder data in een van de groepen zit, er een grotere spreiding is in de variantie van die groep (bredere piek). De verdeling in het plaatje is als volgt:
- A / zwart : 2250 clicks en 1450 conversies
- B / oranje: 250 clicks en 150 conversies
Brede pieken zorgen ervoor dat het lastiger is een verschil in twee pieken aan te tonen (immers, waar die pieke overlappen weten we niet precies wat er beter werkt). Wanneer er dus weinig data beschikbaar is, wordt de piek breder en is er minder zekerheid over de afstand tussen de pieken significant groot genoeg is. Het is dus lastiger om een effect aan te tonen.
Power
Wanneer we A/B testen uitvoeren, doen we van tevoren een MDE berekening om zeker te weten dat er genoeg verkeer in ons experiment zit om een effect te kunnen detecteren. Sample size (MDE) berekeningen gaan uit van een gelijke verdeling tussen de twee groepen. Deze wordt geschonden in de bandit test. Hierdoor klopt je MDE berekening niet. Met een vooraf gedefinieerde looptijd gebaseerd op 50% van het verkeer in je variant, zal de test dus underpowered zijn. Hoe groter het verschil in de verdeling van het verkeer naar de verschillende versies, hoe groter het effect op je power. Hoe groot het verschil in verdeling mag zijn, is onderzocht in simulatiestudies (door o.a. de Universiteit van Bristol). Deze studies wijzen aan dat een verdeling van 70-30 nog acceptabel is voor een power van 80%.
… Even tussendoor: we sturen elke drie weken een nieuwsbrief met daarin de laatste blogs, teamupdates en natuurlijk nieuws over het aanbod in onze academy. Klik hier om je in te schrijven.
Literatuur laat zien dat de False Positive ratio hoger is als de data wordt verzameld door een bandit. Bandits met Thomson Sampling (TS) of Greedy Epsilon methodes (zoals Facebook Ads gebruikt) hebben de neiging meer verkeer naar een ‘winnende’ variant toe te wijzen als het verschil tussen de varianten eigenlijk nog heel klein is (en niet significant). Hierdoor zal het algoritme vaker een winnende versie vinden wanneer er eigenlijk geen verschil is tussen de versies. Williams et. al. leggen dat hieronder ook uit:
“In this setting, using common statistical hypothesis tests, we show that collecting data with TS can as much as double the False Positive Rate (FPR; incorrectly reporting differences when none exist) and the False Negative Rate (FNR; failing to report differences when they exist). We empirically illustrate how and why this occurs–maximizing rewards can lead to biased estimates of arm means (which increases false positives), as well as reduced confidence in estimates of means (which increases false negatives). We find that even when two arms have equal reward, TS can misleadingly allocate many participants to one arm. We show this problem persists using different statistical tests and a Bayesian analysis of the data. We show how two methods for incorporating knowledge of the bandit algorithm into the statistical test can help, but do not eliminate the issues in drawing inferences from adaptive data collection.”
Bron: Williams, J.J., Nogas, J., Deliu, N., Shaikh, H., Villar, S., Durand, A., & Rafferty, A.N. (2021). Challenges in Statistical Analysis of Data Collected by a Bandit Algorithm: An Empirical Exploration in Applications to Adaptively Randomized Experiments. ArXiv, abs/2103.12198.
Vraag 2: Is bandit testen als alternatief voor A/B testen een goede methode?
Antwoord: Bandit testing van twee opties is ondergeschikt aan regulier A/B testen betreffende het generaliseren van de resultaten en de learnings die we eruit halen.
Conclusie
Het is dus mogelijk om betrouwbare testresultaten (en dus lange termijn learnings) te halen gebaseerd op data uit bandit testen. Echter moet de analyse nog wel voldoen aan een aantal voorwaarden. Zo mag het verschil in de verdeling van het verkeer niet groter zijn dan 70/30 om er zo voor te zorgen dat ook versie met het kleinste aandeel in verkeer een niet te brede piek krijgt en de berekende power gewaarborgd blijft. Daarnaast is het wenselijk een hoger significantie niveau te hanteren (90-95%) om de vergrootte kans op False Positives van deze methode te corrigeren.
Bandit testresultaten zijn betrouwbaar als:
- Het verschil in verdeling van het verkeer tussen de verschillende versies niet groter is dan 70/30 ratio
- Significantie niveau verhoogt wordt (bijvoorbeeld van 80% naar 90%)
Voorbeeld Bandit testing
Test opzet:
We willen een test draaien met twee versies A en B. Na de MDE berekening hebben we een looptijd bepaald van 2 weken zodat er in elke variant 500 users zitten wat voldoende is om het gewenste effect aan te kunnen tonen.De data wordt verzameld door middel van een bandit algoritme.
Aan het eind van de twee weken zien we dat het algoritme goed zijn werk heeft gedaan en meer verkeer aan de winnende versie B heeft toegewezen. Sample A heeft 350 users en sample B 650.
Analyse:
Het verschil tussen de sample sizes is minder dan 30/70 (namelijk 35/65) dus de resultaten kunnen betrouwbaar geanalyseerd worden op een verschil. We hanteren hierbij een significantie level van 90% (ipv de standaard 80%), om te corrigeren voor de extra kans op false positives.
Het kleinste sample (A) heeft 350 users, dit is minder dan de 500 users waar de MDE berekening op gebaseerd is. Voor een betrouwbare business case berekening is die niet voldoende. Hiervoor kan de test beter nog een week aan staan tot ook sample A de minimale hoeveelheid van 500 users heeft bereikt.