Doporučující systémy
| 5. 5. 2011Nepříliš dávno bylo při práci s informací hlavním problémem dostat se k tomu, co člověk chtěl. Dnes hlavní problém spočívá v tom, aby si ujasnil, co vlastně chce, a vybral si z obrovské nabídky. Jistě to znáte – vybíráte si knížku, film nebo třeba jen svačinu a stojíte před regálem (nebo internetovou stránkou), který obsahuje tolik možností, že vás to paralyzuje a nejste schopni se rozhodnout. K této velké možnosti volby nám dopomohly počítače – a ty nám nyní mohou také pomoci vypořádat se s nabízenou volbou.
Oblast, která nám může pomoci, se nazývá doporučující systémy. Tyto systémy analyzují nabízené možnosti a doporučují lidem, co by je mohlo zajímat, a to každému na míru na základě vyjádřených preferencí. Některé z těchto systémů jsou již relativně v povědomí a mohli jste se s nimi setkat. Mezi nejznámější patří aplikace pro doporučení knih (Amazon), filmů (Netflix, Movielens), hudebních skladeb (Last.fm) nebo zpráv (Google). Existují však také systémy pro doporučení vtipů, cíle dovolené, zaměstnání nebo charitativní organizace, které byste mohli přispět.
Opravdu to funguje? Není to jen výzkumný prototyp či reklamní trik obchodníků, kteří chtějí přilákat zákazníky na něco nového? Názorným příkladem významu doporučujících systémů je soutěž Netflix prize. Netflix je internetová půjčovna filmů, která pomocí doporučujícího systému uživatelům navrhuje, které filmy by je mohly zajímat. Základem systému je algoritmus, který předpovídá, jak se uživateli bude líbit doposud nezhlédnutý film. Firma Netflix považuje doporučující systém za natolik důležitý, že vypsala soutěž, jejímž cílem bylo vylepšit přesnost jejich předpovídacího algoritmu o 10 %. Hlavní odměna v soutěži byla 1 milion dolarů. Soutěž byla vypsána v roce 2006, o úspěch se pokoušely tisíce soutěžících, až se nakonec po třech letech podařilo týmu složenému z šesti výzkumníků cenu získat.
Jak tedy doporučující algoritmy fungují? První krokem je získání dat, na základě kterých se budou doporučení dělat. Data většinou udávají hodnocení jednotlivých položek uživateli, přičemž hodnocení může být buď explicitní, tj. uživatel přímo produkt ohodnotí (hodnocení 1 až 5 hvězdičkami podle toho, jak se mu líbil film), nebo implicitní, tj. sledováním toho, co uživatel dělá (jaké knihy si koupil, na jaké položky na webové stránce klikl).
Jakmile má systém k dispozici data, může se pokusit předpovědět, jak bude uživatel hodnotit položky, které zatím neviděl, a doporučit mu ty položky, u kterých očekává kladné hodnocení. Existují dva základní přístupy k doporučování – analýza obsahu a kolaborativní filtrování.
Pro názornost si jejich principy ilustrujme na příkladu doporučování filmů. Řekněme, že se mi líbily filmy Pupendo, Kolja a Pelíšky, kdežto Titanic a Terminátor mě nenadchly. A teď bych chtěl doporučení, na co se mám podívat dnes večer.
Při analýze obsahu vychází doporučující systém z dostupných informací o jednotlivých položkách. U filmů to může být například žánr, režisér, seznam herců a klíčová slova o ději. Systém analyzuje minulá hodnocení, hledá v nich pravidelné vzory a na jejich základě pak podává doporučení. Pro uvedený případ například usoudí, že se mi líbí komedie a filmy, ve kterých hraje Bolek Polívka, a následně mi doporučí snímek Musíme si pomáhat.
Druhým základním přístupem je kolaborativní filtrování, při kterém systém využívá informace nejen o tom, co se líbilo v minulosti mně, ale také ostatním uživatelům. Přidejme do našeho příkladu tento sociální aspekt.
V tabulce máme hodnocení 6 filmů od 4 osob. Chybí v ní moje hodnocení filmu Schindlerův seznam. Jak může systém chybějící hodnocení předpovědět? Na základě minulých hodnocení lze odhadnout, že ze všech uživatelů mám vkus nejpodobnější Janě.
Dá se tedy předpokládat, že moje hodnocení filmu Schindlerův seznam bude podobné jako hodnocení Jany, tj. že se mi film nejspíš bude líbit. Krom toho také může systém z takovéto tabulky odhadnout, že filmy Pelíšky a Kolja jsou si nějakým způsobem podobné, protože jejich hodnocení jednotlivými uživateli koreluje.
Uvedená tabulka je samozřejmě jen ilustrativní, z takto malého vzorku dat nelze dělat použitelné předpovědi. Reálné doporučující systémy, jako je třeba zmíněný Netflix, mají k dispozici statisíce hodnocení, která navíc dále zpracovávají a filtrují.
Zůstaňme však ještě u našeho malého příkladu a využijme jej k ilustraci důležitého rozdílu mezi dvěma popsanými přístupy. Analýza obsahu málokdy doporučí něco překvapivého – oblíbeného herce nebo režiséra dokážeme určit sami a na filmy, které nám tento systém doporučí, bychom nejspíš časem přišli. Kolaborativní filtrování naproti tomu dokáže vygenerovat překvapivé návrhy, protože k doporučení využívá informace, které nemáme k dispozici (podobný vkus s neznámými osobami).
Kromě analýzy obsahu a kolaborativního filtrování existují i další doporučovací metody, například demografické filtrování, které využívá informace o věku, pohlaví a místě bydliště uživatelů, nebo komunitní filtrování, které dělá doporučení na základě znalosti sítě přátel. U reálných systémů se pak většinou používají kombinace několika doporučujících modulů.
Doporučující systémy jsou tedy zajímavou výzkumnou aplikací, jejíž praktický význam rychle roste. Kromě toho nám však také mohou poskytnout podnět k zamyšlení nad umělou inteligencí. Doporučující systémy jsou příkladem umělé inteligence – stroj nám dává rady, vesměs docela rozumné. Nicméně je to úplně jiný typ umělé inteligence, než jaký si představovali lidé v počátcích tohoto oboru a než jak si jej představuje většina lidí i dnes. Umělá inteligence bývá vnímána jako snaha o to, aby stroj sám o sobě vykazoval inteligentní chování (např. hrál šachy). Jak by při tomto vnímání umělé inteligence vypadal doporučující systém pro filmy? Měl bych robota, kterého bych naučil vnímat filmy stejným způsobem jako já, a pak bych ho nechal sledovat spoustu filmů a referovat, jak se mu který líbil. V tomto směru je však rozvoj umělé inteligence velmi pomalý. Robot, který by zvládl pochopit, co je vtipného na scéně „Kde udělali soudruzi z NDR chybu?“ (z filmu Pelíšky), je zatím zcela mimo dosah výzkumu.
Výše popsané přístupy k doporučování fungují na zcela jiné úrovni. Nejde tady o umělou inteligenci, která by fungovala sama o sobě nezávisle na lidech. Naopak umělá inteligence je zde s lidmi volně propojena (byť jen virtuálně skrze data a nikoliv skrze implantáty), resp. lidé jsou vzájemně propojeni skrze stroje a vzniká tak kolektivní lidská inteligence, která však funguje jen díky podpůrné umělé inteligenci. Nechme se překvapit, co tento nový typ inteligence vymyslí...
Ke stažení
- článek ve formátu pdf [216,5 kB]