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 eshopu?
Uživatel, preference a webový obchod
Cíl uživatele −
Vyjádření preferencí − −
Obtížně zjistitelný → Nákup produktu 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 − − −
Podle způsobu vyjádření − − −
Implicitní (clickstream...) Explicitní (user rating) Přímé (vyhledávání) 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/DBI021101025.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)
Doporučovací systém Vstup:
Uživatelské Zpětné vazby
Výstup:
Tvorba doporučení
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í − −
Algoritmy pro výpočet Top-K −
Úprava DBMS Kiessling, Chomicki 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 − −
Změny uživatele a uživatelské preference v čase −
Především implicitní zpětná vazba (co znamená otevření detailu objektu) Využití přímých preferencí pro doporučování
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?