Modely uživatelských preferencí
Obsah Preference obecně Modely uživatelských preferencí Způsob záznamu preferencí Příklad a ukázkový problém Když bude něco nejasné, tak se ptejte hned
Preference obecně Preference Uživatel Objekt preference Časová složka Uživatel vyjadřuje, co se mu líbí Každý chce něco jiného Množina uživatelů U Objekt preference O čem chci rozhodnout, zda se mi to líbí nebo ne Množina objektů V Časová složka To, co se mi líbí teď, nemusí za týden/měsíc/rok
Uživatel Motivace Nejistota Ovlivnitelnost Z toho plyne nekonzistence Chci nový fotoaparát, abych dělal lepší fotografie Nejistota Doopravdy ten fotoaparát nutně potřebuji pro lepší fotografie? Co by měl ten fotoaparát umět? Nejsem si jist, která vlastnost je klíčová pro výsledek Z toho plyne nekonzistence Ovlivnitelnost Knihy, reklama, co říkají kamarádi
Uživatel Vývoj v čase Krátkodobá nestálost Nejdřív chci co nejvíce MPix, pak spíše menší hmotnost a nakonec největší rozsah zoomu Má ten vývoj nějaký trend? Nedostane se zpět na začátek? Krátkodobá nestálost Člověk se mění, záleží na aktuálním rozpoložení
Uživatel Vlastnosti uživatele Exprese vlastností Preference Profil Věk, vzdělání, pohlaví, příjem,… Exprese vlastností Chování (behaviorismus) Pohyb na stránce, hodnocení objektů, zanechání komentáře Z projevů chceme zjistit preference
Uživatel Podobnost uživatelů Podle preferencí Podle profilu u i v mají rádi x, v má rád i y. Bude mít u rád y? Podle profilu u i v jsou studenti s nízkým příjmem. Budou mít podobné preference? Do jaké míry ovlivňuje profil preference?
Předmět preference Vlastnosti toho, o čem se rozhoduji Atributy objektu Nemění se (krom ceny) Každý atribut je nějak důležitý („Chci lehký fotoaparát, na ceně nezáleží“) Každý uživatel má jinou představu o atributech („Ale já chci těžký fotoaparát“)
Předmět preference Atributy Nominální Numerické Speciální Barva, typ snímače, výrobce,… Numerické Rozlišení, hmotnost, velikost zoomu, rozměry,… Speciální Množina hodnot některého z atomických typů Herci ve filmu Těžko zachytitelné atributy Design, tvar, oblost, obrázek produktu, zvuk,… jsou důležité Jaké atributy použít? Jsou všechny potřeba, není je třeba nějak upravit? (Diskretizace, normalizace,…) Aby lépe odpovídali vnímání uživatele
Předmět preference Známé datové sady s preferencemi Filmy Knihy Hodnocení objektů uživateli Id uživatele, Id objektu, hodnocení (typicky 1-5) Uvidíme později Filmy Knihy Nabídky práce Vtipy Jaké atributy?
Celkový přehled Uživatel Objekt Časová dimenze Preference, profil Atributy Časová dimenze
Co tedy jsou preference? Vztah mezi U a V Uspořádání V (od nejpreferovanějšího k nejméně preferovanému) K čemu to tedy je?
Příklad (na konci bude podrobněji) Doporučovací systém Snaží se zjistit, co uživatel preferuje a doporučit mu nejvhodnější objekty Šetří práci při procházení stovkami objektů Snižuje riziko vynechání něčeho důležitého Rozdíl proti „ostrým“ omezením a řazením Ostrá omezení řezají prostor nekompromisně Stačí jedna špatná hodnota atributu a objekt je venku Preference řezají prostor „ohleduplně“ Jedna špatná hodnota atributu přece není tak špatný výsledek Komparativní model - Co je lepší?
Teoretické zázemí a abstrakce
Algoritmy uživatelských preferencí Obecně reprezentují uživatelské preference Pro danou množinu V Je možné je použít pro nový objekt nebo pro objekt u kterého neznáme preferenci Nový film, nový fotoaparát, nový zájezd apod. Mluví daným jazykem Jsou použitelné pro více uživatelů (každý jiné požadavky)
Dvouhodnotový jazyk Líbí/nelíbí O objektu lze říci, zda se uživateli líbí nebo ne Nebere explicitně v úvahu atributy objektu Málo expresivní V→ {0,1}
Dvouhodnotový jazyk D50 : líbí D70 : nelíbí D3 : líbí …
Algoritmus dvouhodnotového jazyka Kolaborativní filtrování Jak se bude objekt x líbit uživateli u? Asi tak, jak se x líbil uživateli v, který se u podobá Nepočítá s atributy objektu Zato může pracovat s uživatelským profilem Podobnost uživatelů Profil Podle podobných hodnoceních
Jazyk preferenčních relací Preferenční relace Užívané v ekonomii Porovnání objektů – x je lepší než y Neumožňuje jednoduché setřídění objektů podle aktuální vhodnosti Vytvořeno podle lidského uvažování Přirozené pro uživatele VxV
Jazyk preferenčních relací Preferenční relace P(D50,D70) Mám radši D70 než D50 R(D70,D80) D80 je alespoň tak dobrá jako D70 I(D3,5D) Mezi D3 a 5D nedokážu rozlišit, jsou stejně dobré P(D70,D3) D3 mám radši než D70
Jazyk preferenčních relací CP-sítě Conditional probability networks Preference mohou záviset na aktuálním stavu světa Polévka a víno
Algoritmus jazyka preferenčních relací Chomicky Tabulka R=A1,...,AN Preferenční relace definována výrazem např. A1(x)<A1(y) & A2(x) < A2(y) → x<y Obecný výraz používající jen =,!=,<,>,logické spojky a konstanty Může obsahovat cykly, nemusí být transitivní,... Operátor winnow – vrací nedominované objekty Jen pro výrazy odpovídající částečnému uspořádání Překlad do SQL
Algoritmus jazyka preferenčních relací Kiessling Relace pouze jako ostré částečné uspořádání Bez cyklů, transitivní, ... Relace nad hodnotami atributů, ne nad objekty POS(transmission, {automatic}) – chceme automatickou převodovku NEG(maker, {Ferrari}) – nechceme Ferrari POS/NEG(color, {yellow};{gray}) – preferujeme žlutou, když není žlutá, tak hlavně ne šedou (srovnej s CP-nets) POS/POS(category,{cabrio};{roadster}) - chceme kabriolet, když ne, tak roadster (srovnej s CP-nets)
Algoritmus jazyka preferenčních relací Kiessling Relace na hodnotami atributů, ne nad objekty AROUND(price, 40000) – cena okolo 40000 euro BETWEEN(mileage, [20000, 30000]) HIGHEST(power)
Algoritmus jazyka preferenčních relací Kiessling Operace s atomickými preferencemi atributů Pareto preference: P1⊗P2 P1 i P2 stejně důležité Prioritized preference: P1&P2 P1 důležitější Sjednocení a průnik preferencí Integrace do SQL a XPath Rozšíření jazyků o konstrukt PREFERRING SELECT * FROM apartments PREFERRING HIGHEST(area); P1 := AROUND(A1, 0), P2 := LOWEST(A2), P3 := HIGHEST(A3) P4 = ({A1, A2, A3}, <P4) := (P1 ⊗ P2) ⊗ P3 P8 = ({A1, A2}, <P8) := P1&P2
Jazyk pro skyline Bere explicitně v úvahu atributy objektu tzv. content based – založená na atributech objektu Funkce pro normalizaci atributů Vytváří prostor [0,1]N Monotonie Lze vybrat kandidáty na nejlepší objekt Ale už ne druhý nejlepší 1 1
Jazyk vícehodnotové logiky 1 Rozšiřuje dvě hodnoty na více O objektu lze říci, jak moc se uživateli líbí Jinak stejné jako dvouhodnotový model
Vícehodnotová logika 1 Jak vypadají preference založené na ohodnocení celých objektů v abstraktním schématu Algoritmus opět kolaborativní filtrování
Jazyk vícehodnotové logiky 2 O objektu lze říci, jak moc se uživateli líbí Bere explicitně v úvahu atributy objektu tzv. content based – založená na atributech objektu Agregační funkce Fuzzy funkce pro normalizaci atributů
Algoritmus jazyka vícehodnotové logiky 2 Vícehodnotová logika Fuzzy funkce Normalizace domény atributu Doména = množina hodnot, jež atribut může nabývat Transformují prostor do [0,1]n Pak víme jistě, že (1,…,1) je ideální objekt fProducer (Nikon) = 0.8 fProducer(Pentax) = 0.6 fProducer(Canon) = 0.4
Algoritmus jazyka vícehodnotové logiky 2 Agregační funkce Pro kombinaci atributů, multikriteriální rozhodování Výsledné hodnocení objektu @(f1(x),…,fn(x))
Vícehodnotová logika 2 Jak vypadají preference založené na atributech v abstraktním schématu @ f1 @ f1 Fuzzy funkce Agregační funkce
Algoritmus jazyka vícehodnotové logiky 2 Pravidla MPix(X)=10 & Rychlost(X)=5fps → Hodnoceni(X)=6 (MPix(X)>8 & Cena(X)<20000) v (Vaha(X)<500) → Hodnoceni(X)=10 MPix(X)>=10 → Hodnoceni(X) = 10 Cena(X)<=10000 → Hodnoceni(X) = 10
Způsob záznamu preferencí Přímý (Vícehodnotová logika 2) Explicitní (Vícehodnotová logika 1) Implicitní (Bez jazyka?)
Přímý způsob Uživatel přímo napíše, co preferuje Nejpřesnější metoda V daném modelu Nejpřesnější metoda Uživatel musí rozumět modelu preferencí Který může být dost složitý
Přímý způsob
Explicitní způsob Uživatel vyjadřuje své preference na celém objektu
Explicitní způsob Malá velikost hodnotící škály Při větší škále (>20) je uživatel zmaten a nekonzistentní Málo námahy pro uživatele Přirozené
Implicitní způsob Interpretujeme chování uživatele Není od něj potřeba žádná investice Dělá to, co normálně Clickstream Doba strávená na stránce Označování, kopírování, tisk, posílání emailem, vložení do košíku Striktní omezení (pouze 10-12MPix, Nikon, apod.)
Implicitní způsob Jednoduchá implementace v Javascriptu Možno zakázat, nelze zachycovat některé události Spyware, plugin do prohlížeče Skvělé možnosti Málokdo si to nainstaluje
Příklad a ukázkový problém Doporučovací systém Snaží se zjistit, co uživatel preferuje a doporučit mu nejvhodnější objekty Šetří práci při procházení stovkami objektů Snižuje riziko vynechání něčeho důležitého(?) Využijeme explicitní preference – hodnocení celého objektu Pět hvězdiček
Vstup od uživatele Hodnocení jednotlivých fotoaparátů Čím více tím lépe, ale… Nikdo nechce strávit hodnocením půl hodiny
Vstup od uživatele První sada fotoaparátů je vybraná náhodně Nebo předem vybraná množina fotoaparátů, dobře pokrývající celý prostor Důležitý je kontext hodnocení!
Průběh procesu doporučení Necháme uživatele, aby řekl, jak moc se mu líbí nějaké předměty Alternativně analyzujeme jeho chování na stránce Zkonstruujeme obecný model preferencí Pomocí modelu zjistíme preference všech objektů Doporučíme 10 nejlepších objektů Zpracujeme zpětnou vazbu od uživatele
Motivace Proč nutíme uživatele hodnotit i v dalších krocích? Nešlo by, aby všechno ohodnotil najednou a pak si rovnou nechal doporučit nejlepší fotoaparát? Omezená škála hodnocení 0-5 hvězdiček Hodně fotoaparátů získá hodnocení 5 5 4 3
Vstup od uživatele Poté uživatelovi doporučíme objekty, které by se mu mohly líbit Nikon Zrcadlovka
Vstup od uživatele Na základě dalších hodnocení určíme přesněji další atributy Co nejlevnější
Motivace Fáze dotazování V každé fázi se posune hodnocení trochu doprava Zpřesňujeme hodnocení nejvíce preferovaných objektů