Uživatelské preference v prostředí webových obchodů Ladislav Peška, MFF UK
Disclaimer
Obsah Uživatelské preference Získávání UP Využití UP Doporučování na webových obchodech Proč doporučovat? Jak doporučovat? UPComp PHP doporučovací komponenta Další směry vývoje UP
Uživatel, preference a webový obchod Uživatel má na webovém obchodě nějaký cíl Nákup, porovnání cen, získání informací... Cíl typicky souvisí s produkty v e-shopu Uživatel je obvykle schopný nějak vyjádřit, nakolik produkt splňuje jeho cíl = uživatelská preference Zásadní otázky jsou Jak zjistit cíl uživatele? Jak může/umí uživatel vyjádřit svou preferenci? Co s tím má/může/chce dělat provozovatel e- shopu?
Uživatel, preference a webový obchod Cíl uživatele Obtížně zjistitelný Nákup produktu Vyjádření preferencí Pomocí zpětné vazby vyhledávání, známkování, mimovolně Co s tím má provozovatel dělat? Usnadnit uživateli splnění jeho cílů, pokud přinášejí provozovateli zisk Jak?
Dělení uživatelské zpětné vazby Podle způsobu získání uživatelské zpětné vazby Implicitní (clickstream...) Explicitní (user rating) Přímé (vyhledávání) Podle způsobu vyjádření Preference na celém produktu Preference na atributech Preferenční relace (A je lepší než B) Otázky: Jak správně interpretovat zpětnou vazbu? Jak ze zpětných vazeb spočítat preferenci? Jak navrhnout API pro poskytování zpětné vazby?
Jak ze zpětných vazeb spočítat preferenci? Modely uživatelské preference ILP Inductive Logic Programming GoodMPix(camera) <- MPix(camera)>5; GoodWeight(camera) <- Weight(camera)<700 & Weight(camera)>300; Collaborative filtering User A likes item X and is similar to user B... Rozhodovací stromy Preferenční relace A better than B... http://xchat.centrum.cz/duel/ Hodnocení objektu Průměrné hodnocení, poměr počet objednávek ku zobrazení... Model desetiboje Problém může být build model Alan Eckhardt: Inductive Models of User Preferences for Semantic Web Seminář Uživatelské preference NDBI021 http://www.ksi.mff.cuni.cz/~vojtas/vyuka/ndbi021principyuzivatelskychpreferenci/1011/dbi021-101025.ppt
Využití uživatelské zpětné vazby Informace o zákaznících Různé varianty off-line zpracování, analýz... Doporučovací systémy
Doporučovací systémy Předpoklad: uživatel něco hledá pokud zjistím co, můžu mu pomoct to najít Většina webových obchodů uživateli s hledáním příliš nepomáhá (procházení dle kategorií + vyhledávání dle parametrů / klíčového slova)
Vstup: Uživatelské Zpětné vazby Výstup: Tvorba doporučení Doporučovací systém
Využití doporučovacích systémů Z pohledu uživatele: usnadní a urychlí plnění mých cílů Z pohledu provozovatele webu: spokojený uživatel = rychle najde co hledá = dobrý zákazník vyšší zisky Z globálního pohledu: úspora času snížení nákladů menší plýtvání zdroji :o))
Doporučovací systémy Jak implementovat doporučovací systém? Tvorba vlastního systému časově, znalostně a finančně náročné Doporučovací framework metody pro doporučování hotové, nutno dodělat napojení na vstupy a výstupy, získávání dat... http://www.duineframework.org Google Prediction API PrefShop DP Bronislav Václav http://195.113.17.17:8080/eshop/
UPComp motivace Co takhle umožnit provozovatelům různých webových obchodů jednoduše implementovat doporučování na základě uživatelských preferencí?
UPComp požadavky Komponenta bude působit jako middle man mezi databází a webem Použitelná na co nejvíc různých webech / doménách (ne jen klasické webové obchody jen pro elektroniku) Jednoduché rozhraní Umožnit uživateli použít i to co už umí (SQL) Odpověď v reálném čase (query response) Snadno rozšiřitelná o další modely/výpočty UP Řešit jen to co provozovatel neumí (query response) prezentace dat a návrh query je na provozovateli
UPComp - architektura API pro dolování user feedback Dotazování komponenty top-k objektů
UPComp - metody Typy metod Object rating, Object similarity, Collaborative Metody Random Náhodný výběr objektů Standard Výběr objektů na základě implicitních/explicitních uživatelských dat (a jejich podobnosti/skóre... dle zvolené metody) PearsonCorrelation (podobnost objektů na základě korelace expl/impl. dat) WRMSE (podobnost objektů na základě RMSE expl/impl. dat) Aggregated Výběr objektů na základě globálních preferencí (nezajímá mě který uživatel objekt zobrazil, pouze kolik jich bylo) pouze ObjectRating Attributes Podobnost objektů na základě podobnosti jejich atributů Možno kombinovat jednotlivé metody v rámci dotazu do UPComp
Dotaz komponenty SQL Atributy Přeložené do SQL přímo UserExpression specifikace metod typu UserSimilarity Název metody Počet uživatelů (top-k) Parametry metody ObjectExpression specifikace ostatních metod Parametry obdobné jako u UserExpression
Příklad dotazu $query = "select `id_object`, name, price from objects where 1 limit 5"; $attributes = array( //IntegerAttribute(name, valuefrom, valueto, tolerance, importance); AttributeFactory::IntegerAttribute("`property1`", 1, 4, 3, 5), ); $userexprs= " //UserExpression(MethodType, importance, MethodName, MethodParameters); new UserExpression("UserSimilarity", "1", "PearsonCorrelation", array("noofobjects"=>5,...))),... "; $objectexprs= array( //ObjectExpression(MethodType, importance, MethodName, MethodParameters); new ObjectExpression("ObjectRating", "5", "Aggregated", array("noofobjects"=>5, "aggregatedeventslist"=>array("opened_vs_shown_fraction",...))),... ); $qs = new ComplexQueryHandler($query, $attributes,$userexprs, $objectexprs); $qs->sendquery();
Testování UPComp 2 reálně používané weby: www.slantour.cz (cca 800-1500 uživatelů denně) www.antikvariat-ichtys.cz (cca 40-80 uživatelů denně) Prosinec Leden 2011
Testování zpětná vazba - zobrazení objektu - pohyb na stránce (onmouseover), agregované - objednávka objektu - počet zobrazení v doporučovacím okně (agregované pro objekt) - počet otevření z dop. okna (agregované pro objekt) - u antikvariátu rating objektu (explicitní feedback) - neosvědčil se (absence motivace) http://booking.com
Testování UPComp Jak testovat přínos doporučování? Porovnání s explicitní zpětnou vazbou je problematické U webových obchodů zobrazení / objednávka produktu # otevřených / # zobrazených objektů v nabízeném seznamu # objednávek zobrazených objektů / # zobrazených objektů # objednávek otevřených objektů / # zobrazených objektů Další možné třeba počet zobrazených objektů, které byly objednány
Výsledky testování Viz tabulka Slibné výsledky (statisticky významně lepší než Dummy) Nicméně absolutní čísla nic moc Některé metody počítaly poměrně dost dlouho (to mohlo ovlivnit testování) Je otázka, jak se budou chovat na větším množství dat (případně jak se s ním vypořádat) Předzpracování, omezení na náhodnou podmnožinu...
UPComp - poučení - nastavení testování - porovnávání metod simultálně - tvorba výstupu pro porovnání jinými doporučovači - zabývat se změnami preferencí v čase - jak stará data jsou stará? - kdy se mění uživatelova preference?
Trendy vývoje Preferenční dotazování Úprava DBMS Kiessling, Chomicki Algoritmy pro výpočet Top-K Fagin, Ilyas Metody pro výpočet uživatelské preference NetFlix prize
Další problémy (neméně zajímavé) Interpretace uživatelské zpětné vazby Především implicitní zpětná vazba (co znamená otevření detailu objektu) Využití přímých preferencí pro doporučování Změny uživatele a uživatelské preference v čase Jak reagovat na události (doporučovat po nákupu další Notebook?...) Real-time doporučování (jak reagovat na průběžný přísun zpětných vazeb?) Rychlost x přesnost
Dotazy?