Na začátku
Práce doporučovacího systému (DS) začíná v momentě, kdy uživatel zahájí používání online služby a před tím, než učiní rozhodnutí, jakou konkrétní položku služby si vybere. Například při čtení zpráv na zpravodajském portálu jde o výběr článku k přečtení. V tento moment stránka služby pošle DS požadavek, třeba ve formě vyhledávacího dotazu, nebo ve formě HTTP requestu na zobrazení stránky s nějakým obsahem.
Zůstaneme-li u příkladu zpravodajského portálu, může jít o stránku s článkem, který si uživatel vybral k přečtení. Výstupem DS vygenerovaným na základě požadavku a na základě dat, která má k dispozici, je poté seznam položek, které DS uživateli doporučuje k výběru, například seznam dalších článků, které mohou uživatele zajímat. Seznam odkazů na doporučené zprávy se potom vloží do obsahu uživatelem navštívené stránky, třeba do prostoru pod článkem.
Činnosti, které typický DS provede, aby ze vstupního požadavku vytvořil výstupní seznam doporučení, se obecně mohou rozdělit do čtyř hlavních stupňů: předvýběr, filtrování, skórování a řazení.
Architektura
Předvýběr (Retrieval) řeší úlohu rychlého zúžení nabídky položek na základě vstupního požadavku. Položek, které služba uživateli může v daný moment nabídnout, můžou být desetitisíce (články na zpravodajském portálu), až miliony (produkty ve velkém online obchodu) a v reálném čase DS nemusí podle uživatelských preferencí ohodnotit úplně každou.
DS totiž musí uživateli svá doporučení dodat (typicky) do několika desítek milisekund od obdržení požadavku. DS proto provede rychlý předvýběr položek, typicky použije model, natrénovaný některou metodou strojového učení s použitím historických dat, který popisuje pravděpodobnost výběru položek na základě vybraných parametrů požadavku (například zúžení výběru článků na základě podobnosti k článku, který si uživatel přečetl naposledy). Výsledný seznam předvybraných položek může obsahovat stovky až tisíce položek, počet, který již umožňuje dalším fázím DS vyhodnotit každou položku zvlášť v požadovaném časovém intervalu.
Filtrování (Filtering) provede vyřazení položek (ze seznamu předvybraných položek vytvořeného ve stupni předvýběr) aplikací jednoduchých pravidel (například vyřazení článků které uživatel již přečetl). Modelování jednoduchých pravidel pomocí metod strojového učení obvykle není efektivní a použití jednoduchého filtru je v jejich případě jednodušší, rychlejší a účinnější.
Skórování (Scoring) použije model, který byl naučen na základě historických dat, tentokrát ovšem s tím rozdílem, že vezme v úvahu všechny relevantní informace ze vstupního požadavku a všechny relevantní údaje o uživateli a vyhodnotí každou položku filtrovaného seznamu položek tak, že každé z nich přiřadí skóre.
Výstupní skóre položky je v ideálním případě úměrné uživatelově zájmu o danou položku a tedy nějakým způsobem odráží uživatelskou osobní preferenci při výběru položek služby. Příkladem jednoduchého odhadu uživatelské preference je pravděpodobnost prokliku, která může být modelována na základě záznamech o uživatelových aktivitách.
Řazení (Ordering) bere v úvahu skóre položek na výstupním seznamu předchozího stupně a použije ho k seřazení položek před jejich vydáním na výstup DS. Na tomto stupni typicky proběhne konečné zúžení počtu položek na základě pravidel vyplývajících z business logiky služby, v případě zpravodajského portálů se typicky provede výběr několika doporučovaných článků, které mají nejvyšší skóre.
Modely jsou zásadní
Jak je čtenáři již zřejmé, klíčové části DS jsou modely, které provádějí předvýběr a modely, které produkují skóre ve stupni skórování. Kvalita a efektivita těchto modelů určují úspěch nebo neúspěch výsledných doporučení a tím i výslednou uživatelskou spokojenost. Pro vytváření modelů se používá sofistikovaných metod strojového učení jako jsou zobecněné lineární modely, kolaborativní filtrování, (hluboké) neuronové sítě. Metody strojového učení v DS jsou předmětem kontinuálního výzkumu a průběžného zdokonalování.
Pozvánka na závěr
V květnu tohoto roku společnost Seznam.cz pořádá workshop v anglickém jazyce s názvem „Recommendation systems and user representations“ na vědecké konferenci ML Prague 2022. Účastníci setkání se mají možnost seznámit se současným stavem výzkumu doporučovacích systémů, a to včetně architektur hlubokých neuronových sítí používající doporučovací systémy. Součástí semináře bude praktická část, v rámci které si zájemci budou schopni natrénovat hlubokou neuronovou síť na připravených datových sadách.
Výklad i praktická část se zaměří na řešení vybraných praktických problémů doporučování, zejména řešení tzv. „cold start” problému pomocí metod reprezentace uživatele.