AB testování (nejen) vyhledávání na Seznamu

22. října 2015

Článek stručně rozebírá, jak v Seznamu (zejména ve vyhledávání) AB testujeme. Popisované metody a zkušenosti jsou ale obecné a lze je použít i na jiné webové projekty.

AB testování je užitečné, pokud vyvineme více verzí našeho webu/aplikace/vyhledávače a chceme zjistit, která verze je lepší. V Seznamu AB testujeme téměř všechny služby, typicky se například testují změny v uživatelském rozhraní.

Já pracuji na fulltextu, a proto v následujím textu popíšu, jak testujeme výsledky vyhledávání. Následující kapitoly rozebírají dva základní typy — srovnávací test a test s prokládanými výsledky. Pro testování výsledků vyhledávání používáme zejména druhý jmenovaný.

Srovnávací AB test

Srovnávací AB test spočívá v tom, že části uživatelů našeho webu zobrazíme verzi A a jiné části uživatelů zobrazíme verzi B. Verze se mohou lišit například odlišným zobrazením tlačítek, odlišným rozvržením stránky nebo odlišnými výsledky vyhledávání.

V testu porovnáváme chování uživatelů na obou verzích. Z rozdílu v chování vyvodíme, která z verzí je v měřených vlastnostech lepší.

Pro porovnání různých verzí fulltextového vyhledávání má tento srovnávací test nevýhodu v tom, že se velmi obtížně stanovuje kritérium úspěšného chování, tzn. jaké chování reprezentuje úspěšné použití testovaného systému. Může to být například proklik prvního výsledku, čas strávený na kliknuté stránce, či jiná podobná metrika. Výsledná měření budou ovšem vždy obsahovat velké množství šumu a pro průkazné vyhodnocení bude potřeba relativně velké množství dat. Proto pro testování výsledků vyhledávání tuto metodu nepoužíváme.

AB test s prokládanými výsledky

V Seznamu na fulltextu používáme pro AB testování metodu prokládaných výsledků. Vybrali jsme si variantu Team Draft Interleaving (TDI). Zjednodušeně se dá říci, že výsledky dvou různých vyhledávačů se prolnou, jak je znázorněno na obrázku.

Oproti srovnávacímu AB testování má prokládání výsledků výhodu v tom, že uživatel vidí zároveň obě dvě verze, A i B. Svojí uživatelskou akcí (například klikem) zvolí, kterou verzi více preferuje.

Při použití metody prokládání je důležité pamatovat na spravedlivé zobrazení verzí, viz tipy níže. Například pro výsledky vyhledávání platí, že uživatelé klikají nejčastěji na první pozici. Pokud bychom na první pozici vždy umisťovali výsledek z vyhledávače A, zřejmě vždy naměříme, že A je klikanější, bez ohledu na skutečný stav. Z tohoto důvodu rozhoduje o tom, který výsledek z jaké verze (A či B) bude na které pozici, v metodě TDI náhoda. Platí ale, že ze stejné verze mohou být po sobě zobrazeny nanejvýš 2 výsledky a v rámci jednoho vyhledávače je zachováno pořadí. Detailní popis s argumentací, proč tato metoda pro testování vyhledávačů funguje správně, je uvedený ve zmiňovaném článku.

Praktické tipy pro AB testování

Následující tipy jsou použitelné nejen pro popisovanou metodu TDI, ale i pro AB testování jiným způsobem.

  • obě varianty A i B zobrazujeme spravedlivě, obě dvě varianty musí mít dopředu známou šanci na úspěšnou uživatelskou akci. V Seznamu někdy testujeme i nerovnoměrné zobrazování variant A a B, nerovnoměrnost je pak promítnuta do výpočtu výsledků testu.
  • musíme být schopni měřit, že daná varianta uspěla. Typicky to může být proklik na výsledek, pro e-shop by to mohlo byt vložení zboží do košíku. Nebo jiné chování uživatelů, které umíme zaznamenat.
  • měříme pouze a jen jednu rozdílovou vlastnost systémů. Ideální je AB testovat jen malé změny. Musíme ale pamatovat na to, že čím menší je změna, kterou měříme, tím více potřebujeme dat, aby výsledky byly průkazné.
  • počítáme statistickou průkaznost měření. Průkaznost se bohužel často ignoruje s tím, ze „přece máme hodně dat“. Vždy je důležité spočítat konfidenční interval. Pro tento účel ve fulltextu používáme metodu Bootstrapping.
  • správně interpretujeme výsledky měření. Toto souvisí s tím, jakou uživatelskou akci jsme v testu měřili. Například pokud máme e-shop a pokud měříme v AB testu pouze počty kliků na detail výrobku, nemůžeme obecně dělat závěry ohledně konverzí.
  • měření opakujeme. Opakováním měření v různých časových obdobích během roku předejdeme vlivu jiných než měřených okolností. Chování uživatelů je jistě jiné ve všední den a o víkendu.

Realné zkušenosti

V Seznamu se snažíme vždycky měřit jen malé rozdíly v systému. I tak je někdy obtížné určit, jestli není naměřená změna způsobená jinými vlivy než těmi sledovanými. Webová stránka s výsledky vyhledávání je poměrně komplexní a chování uživatelů je ovlivněno mnoha faktory. Přihodilo se nám třeba následující:

  • správná url měla u sebe zobrazen kvůli chybě špatný screenshot. Uživatelé následkem toho klikali na objektivně horší výsledek, ale s lepším screenshotem.
  • v jiném testu pro konkrétní častý dotaz verze vyhledávače A dávala (opět vinou chyby) na první dvě místa stejnou url. Kvůli tomu pro tento jeden dotaz verze A vyhrávala téměř vždy v klikání, přestože verze B tuto url také vracela.

Závěr

AB testování pomocí prokládací metody TDI má použití i jinde než jen v testování vyhledávačů. V zásadě se dá použít všude, kde je možné spravedlivě zkombinovat výstupy z více verzí systému. Doporučování zboží na e-shopu, další články k přečtení ve zpravodajství, podobné nemovitosti na stránce s realitami.

Z vlastní zkušenosti mohu říci, že výsledky AB testování jsou někdy překvapivé a neodpovídají intuici, kterou o dané měřené změně člověk má. Proto bych doporučil používat AB testování všude, kde to množství dat a povaha vývoje dovoluje.

Sdílet na sítích