Jak souvisí Hra o trůny se Zaklínačem a Dominik Dán s Jussi Adler-Olsenem

Doporučit člověku dobrou knihu, pračku nebo audioknihu není jednoduché. Takový na první pohled zdánlivě jednoduchý úkol je ve skutečnosti komplikovaný a nadmíru komplexní. V tomto článku vám zkusím za pomoci různých příkladů (ne technických detailů, nebojte) vysvětlit, jak doporučování funguje. Jdeme na to.

Dobrý den, mohu Vám poradit?

Pojďme na chvíli do kamenného knihkupectví. Zažili jste už (nebo zaslechli) rozhovor podobný tomuto?

Dobrý den, mohu Vám poradit?
“Dobrý, ano prosím, hledám nějakou dobrou detektivku…”
Máme tuhle novinku od Dominika Dána
“Děkuju, ta je super, ale už jsem ji četl…”
Líbila se Vám? A co třeba něco staršího od něj?
“Všechny Dánovky už mám dávno přečtené…”
Chápu, a co třeba něco od Michaela Connellyho, nedávno vyšla tahle.
I tu už mám přečtenou…
Jasně, no tak to se zkuste podívat tady. V téhle sekci máme detektivky vedle sebe, jsou seřazené podle autora. Třeba Vás něco zaujme…

Zažili jste to na vlastní kůži? Zaslechli? Určitě ano. A nejste sami. Nechci kritizovat kamenné obchody a knihkupce v nich prodávající už vůbec ne. To není cílem tohoto článku. Právě naopak! Existuje jednoduché vysvětlení toho, proč to tak chodí.

Zkušenosti s prodávaným zbožím mají své limity

Prvním problémem prodejce je množství nabízených položek.

Vezměme si množství různých žánrů, autorů… Počet knih, které každý rok přibydou a množství času, které má běžný člověk (včetně knihkupce) na čtení.

I s úplnými základy matematiky je nám jasné, že tolik knih zase jeden nepřečte. Nemá totiž kdy. A i když má čas a chuť, o kolika titulech si dokáže něco zapamatovat? Desítkách? Nižších stovkách? Při obrovském množství existujících a neustále přibývajících knih je to hodně málo.

Což samozřejmě není problém jen v knihkupectví. Platí to v kterémkoli obchodě. Pokud se množství nabízených položek každoročně rozrůstá a staré neubývají, jde o stejný problém v bleděmodrém. Dokonce i u nás v Audiolibrixu.

Dobrý den, už se známe?

Druhým problémem prodejce je neznalost zákazníka.

Chodíváte pravidelně do své oblíbené restaurace, baru nebo bistra? A stalo se vám někdy, že vás obsluha přivítala frází:

Dobrý den, vítejte. Stejně jako vždycky?

Příjemné, že?

To se vám stane jen tehdy, když vás jako zákazníka dobře znají. Ekvivalentem takového pozdravu by v knihkupectví bylo:

Dobrý den, tak už vyšel nový Dominik Dán, najdete ho tam jako vždycky“.

Jenže když vás obsluha/prodavač/knihkupec nezná, něco podobného jen těžko zažijete.

Všechno to začne tak, jak jsem psal už na začátku článku. A ani po pár otázkách o vás nebude mít prodavač dostatek informací, takže jeho rady, i když dobře míněné a fundované, budou stále dost všeobecné.

Čím víc informací o vás prodejce má, čím víc toho ví o prodávaném zboží a čím větší jsou jeho zkušenosti, tím větší je šance, že se mu podaří alespoň částečně trefit do vašeho vkusu.

Skvěle vám poradí jen tehdy, pokud vás dokonale zná. A ještě lépe v případě, že váš vkus sdílí. Nebo zná někoho s hodně podobnými preferencemi. Ale o tom trochu později…

Vítejte v našem e-shopu

A teď se přenesme do digitálního světa e-shopů.

Jak funguje popsaný proces tady? Je to lepší nebo horší než v kamenných obchodech? Má počítačový systém šanci vědět o zákazníkovi víc a doporučit mu lépe než živý prodejce?

Inu, to závisí na obchodě. Záleží na tom, jak moc se obsluha a samotné vedení snaží. A dobrý obchod se samozřejmě snaží. Nebo by aspoň měl.

Nejčastější argumenty ve prospěch kamenných obchodů proti těm internetovým jsou dva:

  • věnuje se mi živý člověk
  • můžu si zboží vyzkoušet

Podívejme se spolu na to, jak a jestli tyto argumenty obstojí.

Živý prodavač mě spíš pochopí než (neživý) počítač

Pokud chcete vést konverzaci, s člověkem se vám bude pravděpodobně konverzovat mnohem lépe než s počítačem. I když pokrok nezastavíme a už dnes se dá s mnohými zařízeními celkem slušně popovídat. Hřejivé lidské slovo od počítače nečekejte, ale dobré rady už klidně skoro ano.

Problémů je ale při tomto argumentu víc. A určitě vás ani jeden nepřekvapí.

Prvním je, že klasické obchody nejsou otevřené 24 hodin denně, 7 dní v týdnu. Takže možná najdete někoho, kdo by se rád snažil vám pomoci, ale ne ve chvíli, kdy to zrovna potřebujete. Jen když je otevřeno.

Kdy si chcete vy vybírat novou knihu, pračku nebo telefon?

Já v klidu a ideálně ne během pracovní doby. Která je bohužel obvykle identická s pracovní dobou prodavače. Takže ano, můžu se jít poradit s prodavačem, ale buď po práci (pokud mají ještě otevřeno), přes obědovou pauzu (snad nepůjde na oběd ve stejnou dobu jako já) nebo o víkendu. Super.

Druhý, podle mě ještě větší problém je právě ten, že se mi bude snažit poradit člověk. A řekněme si upřímně, jako lidé máme kopec vlastností, které nejsou vždy pozitivní.

O kterých píšu? Často se pleteme, nevíme/neznáme všechno, ne vždy máme přívětivou náladu a máme předsudky. A taky máme různou motivaci – pokud máme z jednoho produktu větší provizi, nedoporučíme radši ten?

A víte, kdo takovými lidskými vlastnostmi netrpí? Pokud jste právě nahlas (nebo alespoň v duchu) řekli “počítače”, dejte si jeden bod.

V kamenném obchodě si zboží osobně vyzkouším

Ne vždycky.

Knihu si v obchodě prolistujete, ale často i na internetu (i když jen virtuálně). Audioknihu si v obchodě neposlechnete vůbec, na internetu ano. Sluchátka si nevyzkoušíte ani na internetu ani v obchodě (protože hygiena, balení, strach z poškození a podobně).

Ledničku si v obchodě prohlédnete, možná se jí dotknete, otevřete dvířka, ale o zkoušení v zásadě nemůže být řeč. A ruku na srdce, víc se o ní dozvíte na libovolné webové stránce, než z malého letáku v kamenném obchodě.

A to ještě nemluvím o porovnávání – porovnat si 5 ledniček na webu je na pár kliknutí, v obchodě v zásadě nemožné. Na internetu uvidíte hodnocení z reálného zkoušení a používání zákazníků. V obchodě jen zřídkakdy praktickou zkušenost samotného prodejce.

Často je tak dnes situace mnohem lepší na internetu než v kamenných obchodech, a tak tento argument už víc neplatí než platí. Všechna čest výjimkám.

Počítač dokáže zboží doporučit lépe než prodavač

Po přečtení tohoto argumentu asi s pochybnostmi zvedáte obočí. Klidně ho zase dejte dolů, hned vám to vysvětlím. Počítač má totiž ke kvalitnímu doporučení všechny předpoklady:

Je vždy připravený (má na vás čas 24 hodin denně, 7 dní v týdnu)
Neplete se, nemá předsudky, není náladový (je to přeci stroj)
Má dokonalou paměť (ví všechno o každé položce v obchodě a nikdy to nezapomene)
Zná vás (a čím víc o vás ví, tím fundovaněji vám poradí)
Zná další zákazníky (a když zná někoho, kdo má podobný vkus jako vy, umí vám na základě takové “zkušenosti” poradit)

Dobře. Ale jak mi může něco doporučit. JAK? Jak to dělá?

Chápu.

Způsobů je více a každý má nějaké výhody. I nevýhody.

Pojďme se na ně tedy podívat a jelikož se Audiolibrix věnuje prodeji audioknih, budeme se bavit právě o nich. Principy jsou ale v zásadě podobné bez ohledu na typ prodávaného zboží.

Doporučení na základě obsahu

Odborný název pro doporučení zní Doporučovací systém (anglicky Recommendation System). Jde o systém (krásné slovo, že), který má na starosti doporučení.

První velkou skupinou je tzv. Content-based recommendation system, po našem bychom ho mohli nazvat jako Doporučovací systém na základě obsahu.

Jak takový systém funguje?

No přeci na základě obsahu.

Lépe řečeno na základě informací o obsahu, přičemž obsahem se rozumí prodávané zboží. V našem případě audioknihy.

Systém zná základní informace jako název audioknihy, její anotaci (popis), autory, interprety a délku. A také žánry, série nebo kolekce, do kterých je audiokniha zařazená. Bez ohledu na množství titulů, žánrů nebo autorů. Ví všechno. Vždy. A navždy.

Kdybyste vy měli informace o všech prodávaných audioknihách a někdo za vámi přišel, že doposlouchal poslední audioknihu od Dominika Dána, jakou další byste mu poradili?

Pokud byste fungovali jako tento systém, tj na základě obsahu, tak byste na to šli jednoduše. V první řadě byste mu doporučili všechny ostatní audioknihy od Dominika Dána. Tak jako náš fiktivní prodavač v dialogu na začátku článku. A je možné, že stejně jako prodavač byste narazili na to, že dotyčný už všechno od Dominika Dána četl. Jak byste postupovali dál?

V druhém kroku byste měli vybrat další vhodný atribut audioknihy, na jehož základě byste hledali podobné audioknihy. Protože jestli je něco podobné, tak se to bude člověku asi i podobně líbit.

Co by to bylo? Opět se vracíme k dialogu výše, kde na to šel prodavač šikovně. Vyhodnotil, že Dominik Dán píše detektivky. Vylovil z paměti dalšího autora detektivek (Michaela Connellyho) a poradil jeho titul (v našem případě nějakou novinku).

Vy byste na to mohli jít podobně. Podíváte se na nejvhodnější atributy a zkusíte najít audioknihy, u kterých najdete shodu. Ještě lepší by bylo zkusit najít shodu u více atributů. Například byste nehledali jen detektivky (shoda jednoho atributu), ale i audioknihy se stejným interpretem (bohužel Marián Geišberg nebyl interpretem žádných jiných detektivek) nebo ve stejné kolekci.

Jé, vždyť ta poslední Dánovka byla v kolekci Novinky, tak co najít jinou detektivku zařazenou v novinkách? Máte shodu ve dvou atributech a to je vždy lepší. A tak byste možná doporučili nejnovější audioknihu od Jussiho Adler-Olsena.

Není to tak jednoduché… pokud jste člověk

Zatím to zní jednoduše, že?

Ono to ale zas až tak jednoduché není, protože audioknih, které mají stejných víc atributů, nebo klidně jen jeden, může být spousta. Desítky, možná i stovky. A vaším úkolem (nezapomínejte, jste teď doporučovací systém) je:

  • znát opravdu všechny atributy všech audioknih, které prodáváte (abyste našli opravdu všechny, které by se mohly uživateli líbit)
  • mít co nejvíce informací o zákazníkovi (abyste mu nedoporučovali audioknihy, které už slyšel)
  • rozumně je seřadit (aby na začátku vašeho seznamu doporučení byly opravdu ty, které mají největší šanci se zalíbit)

A tady jako prodavač v kamenném obchodě začínáte od počítače dostávat slušně “na frak”. Takový malý knockout. Jak už jsem psal na začátku, jako člověk si zapamatujete informace o desítkách, maximálně stovkách audioknih. Ale počítač? O všech. A bez chyb.

I pokud byste si zapamatovali o všech audioknihách všechno, co víte o zákazníkovi? Skoro nic, protože jste nebyli u jeho každého nákupu. A i kdybyste byli, stejně si to nebudete pamatovat. Ne, každý nákup každého zákazníka si jednoduše nezapamatujete. To ani nejde. Víte, kdo to zvládne levou zadní? Počítač. A to se při tom ani trošku nezapotí.

Komplikované?

To nejhorší na konec: pokud už máte vybranou shodu, jak audioknihy seřadíte? Podle abecedy? Podle počtu stejných atributů? To nejde, protože shodu ve dvou atributech mohou mít desítky audioknih, takže musíte vymyslet, jak je seřadíte. Podle data vydání? Je to pro zákazníka opravdu ten nejlepší způsob?

Je to velmi jednoduché… pokud jste počítač

Pro počítač jsou všechny zmiňované informace signály, které může použít na to, aby doporučení nebyla jen přesná, ale taky co nejlépe seřazená.

Jak byste tedy v roli počítače postupovali v našem fiktivním scénáři?

Zjistíte, o který titul se jedná (poslední Dánovka) a podíváte se na hodnoty jeho atributů (autoři, interpreti, žánry…).

Následně se podíváte, které audioknihy mají s touto audioknihou alespoň jeden atribut shodný. Tak získáte seznam řekněme 200 audioknih. Tady ale vaše práce zdaleka nekončí.

Audioknihy nejdřív protřídíte – ze seznamu odstraníte takové, které už má zákazník koupené. Tady by prodavač už dávno selhal.

Ze seznamu byste měli taky vyřadit audioknihy, které jsou úplně mimo. Je to dost specifické, ale například pokud hledáte podobnost s nějakou křesťanskou audioknihou, asi nechcete, aby se v doporučeních zobrazovaly erotické romány. A to ani za předpokladu, že mají stejného interpreta nebo se vyskytují ve stejných kolekcích (např. novinky).

V druhém kroku musíte audioknihy nějak roztřídit. Podle čeho závisí na tom, jak k tomuto problému přistupuje ten či onen obchod. V obchodě by měl být někdo, kdo navrhne ty nejoptimálnější signály.

Většinou je důležitým signálem to, kolik společných atributů s původní audioknihou sdílejí – čím více, tím lépe. Ale to je jen jedna z možností.

Dalším běžným postupem je například seřazení podle prodejnosti. Logika za tím je jednoduchá. Čím je audiokniha prodávanější, tím je populárnější a zájem o ni je větší. A když je tak zajímavá pro jiné, proč by nemohla být zajímavá i pro tohoto zákazníka?

Proč ale zůstávat u tohoto signálu? Proč nejít ještě trochu dál? Prodejnost je samozřejmě dobrý signál, ale dá se z něj vytěžit mnohem víc. Co kdyby se systém nepodíval na celkovou prodejnost vyhledaných audioknih a místo toho radši zkoumal to, kolik lidí si koupilo i původní (tj novou Dánovku) společně s nalezenou audioknihou?

Tak se do popředí dostanou audioknihy, které se často nakupují společně s tou, podle níž hledáme. Zlepší se nám relevantnost, protože zákazníkovi doporučujeme na základě kolektivního chování.

Malé cvičení: Poslední audioknihu od Jussi Adler-Olsena si koupilo celkem 1000 lidí. Z nich si 100 koupilo i poslední Dánovku. Druhou podobnou audioknihu, novinku od Michaella Connellyho, si koupilo méně, jen 900 lidí. Ale z těch si i tu poslední Dánovku koupilo 200 lidí. Kterou byste našemu fiktivnímu zákazníkovi doporučili? Olsenovku (1000 je víc než 900) nebo Connellyovku (200 je víc než 100).

Vidíte už, kam tím mířím?

Tím se dostáváme k druhé skupině doporučovacích systémů fungujících na principu kolaborativního doporučování.

Kolaborativní doporučování

Tento doporučovací systém vychází z předpokladu, že pokud se dva zákazníci v minulosti zajímali o to samé, je dost pravděpodobné, že se budou o to samé zajímat i v budoucnu.

Tento systém zároveň ignoruje charakteristiky produktů. Místo toho, aby se snažil porozumět podobnosti produktů, radši hledá podobné zákazníky.

Tedy takové, kteří si koupili řadu stejných audioknih (čím více společných, tím lépe), možná mají na seznamu přání stejné/podobné audioknihy, dobré hodnocení dali podobným titulům a mezi jejich neoblíbené audioknihy také patří podobné kousky. Opět platí, že čím více podobností, tím lépe.

Podívejme se na jeden z možných příkladů.

Vycházet budeme ze stejného příkladu jako výše.

Uživatel doposlouchal nejnovějšího Dána a potřebuje poradit. Jako systém (tedy počítač) se podíváte na to, jaké audioknihy poslouchal předtím a zjistíte, že to byly všechny Dánovky a všechny audioknihy od Olsena, které doposud vyšly.

Následně se podíváte na každého zákazníka, který v obchodě kdy nakupoval a bude hledat toho nejpodobnějšího. Jakmile ho najdete, podíváte se, co ještě krom Dánovek a Olsenovek koupil – a to doporučíte.

Nebo najdete nejpodobnějšího zákazníka na základě uživatelských hodnocení audioknih a jakmile ho najdete (skvěle ohodnotil stejné tituly jako náš zákazník a i špatné hodnocení dal těm stejným audioknihám), doporučíte další audioknihy, které daný uživatel ohodnotil na výbornou.

Když vítěz nemusí být jen jeden

Který systém je tedy lepší? První! Ne, ne, druhý! Ne, ten první!

Vlastně oba.

Ve skutečnosti je naprosto běžné, že na webu není použit jen jeden doporučovací systém. Ale na různých místech jsou použité různé systémy. Jeden systém může být použit na detailu zboží, jiný na stránce, která je specifická pro každého zákazníka (doporučení pro tebe), další v nákupním košíku…

Stejně tak je běžné i to, že se nepoužije jeden konkrétní systém nebo jeho část, ale vytvoří se jakýsi hybrid, který vybere to nejlepší z nabízených možností.

Navíc tak jako v různých kamenných obchodech máte různé prodejce, tak i v různých internetových obchodech najdete různé doporučovací systémy. Každý obchod má systém nastavený a vyladěný jinak. Ale cíl je (nebo by alespoň měl být) stejný – co nejlépe zákazníkovi poradit. Bez předsudků a hlavně kvalitně.

Aby ale všechno nebylo tak jednoduché, i tyto na první pohled skvělé systémy mají jeden velký problém: studený start.

Problém studeného startu

Problém studeného startu, neboli cold start problem, je problém, kdy systém (počítač) nemá dostatek informací k tomu, aby uměl správně fungovat – v našem případě doporučovat.

Ve výše uvedeném příkladu nám cold-start může způsobit dva problémy.

Nová audiokniha

První problém se týká nové audioknihy.

U nové audioknihy sice víme všechny její atributy, a tak se teoreticky začne k jiným audioknihám doporučovat hned. A stejně tak se začnou doporučovat jiné k ní.

Problém ale nastane při řazení výsledků.

Pokud řadíme podle počtu prodejů, je třeba pamatovat na to, že každá audiokniha začíná na stejné startovací čáře – s počtem 0 prodejů.

Studený start nám tu způsobuje, že novinka, která ještě nemá prodeje, nebo je má zatím hodně nízké, se nezačne zobrazovat jako doporučená ihned. K audioknize se obvykle zobrazuje jen limitovaná množina doporučení (řádově nižší desítky), a tak může trvat, než audiokniha dosáhne počtu prodejů, který ji do tohoto seznamu dostane.

Nová audiokniha také začíná bez hodnocení a zákazníci ji začínají hodnotit až když si ji koupí a poslechnou.

Pokud bychom porovnávali zákazníky na základě podobnosti při hodnocení audioknih, tato novinka se opět nedostane na seznam až tak brzo – málo prodejů znamená i málo hodnocení.

Nový zákazník

Druhý problém se týká nových zákazníků.

Pokud je zákazník nový, nemá patřičnou historii. Zřejmě si toho u nás ještě moc nekoupil (jestli vůbec), mnoho audioknih nehodnotil (možná žádnou), nebo ještě zkrátka neprovedl žádnou akci, na jejímž základě zákazníky systém porovnává.

Bez historie tak k němu budeme jen těžko hledat někoho podobného. Pokud ho i tak najdeme, podobnost nemusí být přesná. Právě naopak.

Může se stát, že k nám zákazník došel a úplně první nákup udělal na jiném typu audioknihy, než které běžně poslouchá. Například si koupil Proč spíme (literaturu osobního rozvoje), přičemž ale drtivá většina audioknih, o něž má zájem, spadá do kategorie detektivek.

Tak nám vzniká předpojatost a doporučovat mu budeme osobně-rozvojové tituly, o které reálně nemá zájem. Situace se zlepší až ve chvíli, kdy bude jeho historie bohatší (koupí si pár detektivek).

Existuje ale vůbec systém, který problémem studeného startu netrpí?

Inu, existuje.

A u knih a audioknih bude fungovat přímo úžasně. Čímž se pomalu dostáváme k tomu, jak souvisí Hra o trůny se Zaklínačem a Dán s Olsenem.

Já vím, odpověď na tuto otázku čekáte už od samého začátku článku. Ale být na vašem místě, rychle si skočím pro kávičku, protože nejsme ani zdaleka na konci. Slíbit ale můžu to, že se k tomu pomalu dostáváme. Jedině, že by to tak nebylo. No, nechte se překvapit.

Když počítač rozumí textu

Představte si, že jste v poslední době přečetli 8 knih. Polovina z nich byly detektivky, ve dvou z nich byl stejný hrdina, další tři se zase odehrávaly na stejném místě, v jiných byl vrahem zahradník.

Jak to, že to víte tak přesně? Jednak si je pamatujete, ale hlavně jste porozuměli textu. Což je u knih a audioknih logické, protože pokud byste textu nebo jazyku nerozuměli, asi byste si našli lepší hobby…

Pokud jste porozuměli textu, pochopili jste i obsah. A umíte najít jeho společné rysy.

Logické, ne?

Co to ale znamená, že jste “porozuměli textu”? To znamená, že rozumíte významu slov. A ze slov se skládají věty, z vět odstavce, z odstavců kapitoly a z kapitol knihy.

Je jedno, jestli se snažíte porozumět článku, fejetonu, povídce nebo celé knize. Váš úspěch je založený na tom, že rozumíte slovům. U nich celá vaše snaha začíná.

No a nebylo by to krásné, kdyby slovům rozuměly i počítače?

Počítače dnes textu samozřejmě nerozumějí. Ale výbornou zprávou je, že se to umějí naučit. A nejen to, klidně se naučí rozumět libovolnému jazyku. Dokonce i vymyšlenému!

Možné to je díky tzv. zpracování přirozeného jazyka (Natural Language Processing; NLP) a díky strojovému učení (Machine Learning; ML).

Nebudeme zabíhat do technických detailů, ale pro hrubý přehled si představte, že dáte počítači přečíst velké množství vět (klidně i miliony nebo miliardy) a on se díky nim bude přirozeně a sám učit porozumět jednotlivým slovům jazyka. Čím více vět, čím více slov, tím lépe jim bude rozumět.

A pokud by vás přeci jen zajímaly ty detaily a nevadí vám ani trochu techničtější vysvětlení toho, jak se počítač dokáže naučit rozumět textu, dejte mi vědět v komentářích. Když se vás alespoň pár nasbírá, napíšu o tom článek.

Od pochopení textu k doporučením

Hned jak se nám podaří počítač naučit rozumět jazyku a tím i rozumět textu v něm napsaném, dáme mu “přečíst” všechny audioknihy, které máme v prodeji. Nebo alespoň jejich shrnutí, nemusí to nutně být celé knihy. Čím více textu však dostane, tím lépe.

Počítač, který má na rozdíl od člověka bezchybnou paměť a nemýlí se, bude mít přečtenou každou (audio)knihu. Bude přesně vědět, o čem je (protože jí porozuměl) a bude schopný (na rozdíl od člověka) všechny audioknihy mezi sebou porovnat.
Podobnost nebude umět vyjádřit slovy, ale číslem. Což nám nijak nepřekáží.

Jakým číslem?

Například procenty – od 0 % (což znamená, že audioknihy si nejsou vůbec podobné) po 100 % (jsou v zásadě identické). Čím bude procento vyšší a blíže hodnotě 100, tím podobnější si audioknihy jsou.

Jak to využít při doporučeních?

Opět si představte, že jste tím počítačem. Právě jste přečetli 5000 audioknih (všechny audioknihy, které aktuálně existují). Každou si pamatujete. Každou si porovnáte s každou a přiřadíte porovnání hodnotu od 0 do 100. Udělali jste tedy 5000 krát 5000 (25 milionů) porovnání.

Pokud teď chcete někomu doporučit audioknihu na základě jiné, stačí si projít všechna porovnání této audioknihy s každou další. Projít si tedy “pouhých” 5000 porovnání (jedna audiokniha s každou další).

Potom je seřadíte podle podobnosti sestupně, tj. podle té číselné podobnosti od největšího čísla po nejmenší. A vyberete z nich řekněme prvních 20 – to budou audioknihy, které se nejvíce podobají té, k níž chcete zákazníkovi něco doporučit.

A funguje to? Opravdu takto dokáže počítač doporučit podobné audioknihy?

Funguje. A funguje to tím lépe, čím lépe se nám podaří počítač naučit význam slov. Což sice není lehký úkol, ale dnes už není nemožný.

Podobností jednotlivých knih to však nekončí.

Díky porozumění textu a možnosti zjištění podobnosti dvou “textů” se nám otevírají úplně nové možnosti…

Jsme to, co čteme

Už jste někdy slyšeli, že jste tím, co čtete? A souhlasíte s tím? Něco na tom rozhodně bude.

Vezměme si už tolikrát zmiňované Dánovky. Pokud si přečtete tři Dánovky, neznamená to sice, že jste Dominik Dán, ale hodně to o vás napoví.

Ať už si to uvědomíte nebo ne, ty Dánovky budou mít v zásadě stejný styl psaní (napsal je přeci jen jeden autor) a hlavně budou obsahovat podobná slova.

Bez ohledu na to, jak je náš rodný jazyk na slova bohatý, každý z nás používá některá slova častěji, jiná méně často a další vůbec.

Vrátíme-li se k Dánovkám – ano, příběh bude odlišný, ale když se na ně podíváte z pohledu obsažených slov, dá se říct, že “v průměru” budou hodně, hodně podobné. Když se na ně podívá počítač, podobné se budou zdát i jemu. Což pořád není to nejzajímavější.

Počítač si rád “přečte” jakoukoli knihu, kterou mu dáte. Nebude hodnotit její obsah. Bude se na ni dívat jako na množinu slov.

A teď si představte něco, co by bylo na první pohled pro člověka divné, nepřirozené a asi i nesmyslné.

Představte si, že by vám někdo dal tři Dánovky spojedné do jedné. Přesně tak, jeden příběh za druhým. A tvářil by se, že se jedná o jednu knihu. Divné?

Jenže počítači to divné nepřijde, počítači je to úplně jedno.

Pro něj je to jen text, sada slov – a tak k tomuto textu i přistupuje. Takže klidně vezme takovou “knihu” (ve skutečnosti tři knihy) a porovná ji s ostatními, s každou každičkou. Pro každou takovou “knihu” umí zase zjistit podobnost a bude tak umět doporučit ty, které se jí nejvíce podobají.

Je už jasné, kam tím mířím?

Pomaličku se vracím k tomu, že jste tím, co čtete. Jste množinou knih. Jste množinou slov.

Pro počítač se tak můžete stát jediným textem. Textem, který ve skutečnosti bude složený ze všech knih, které jste kdy přečetli.

A pokud jste jeden text, jedna “kniha”, počítači nedělá sebemenší problém vás porovnat se všemi knihami, které zná. A zjistit, kterým se nejvíce podobáte. Se kterými toho máte nejvíc společného. A toto jsou knihy, které vám doporučí.

Hloupost? Že to nebude dobře fungovat?

No, možná budete překvapení, ale funguje to. Dokonce výborně.

Pokud jste přečetli hodně detektivek, bude vám pravděpodobně doporučovat další detektivky, možná s přesahem do thrillerů…. Trefí vás velmi přesně. Aniž by počítač věděl o knihách cokoli jiného.

Když tedy počítač rozumí textu, nepotřebuje vědět (a obvykle ani nic neví) o dalších atributech. Netuší, kdo je autorem, kdo interpretem a dokonce nezná ani žánr. Podobnost opravdu zjišťuje jen na základě podobnosti textu.

Bez problémů studeného startu, ale…

Výbornou zprávou je, že tento systém netrpí problémem studeného startu.

Nová audiokniha? Pohoda, stačí ji nechat počítač přečíst a hned jak ji přečte, umí ji okamžitě porovnávat s ostatními.

Nová audiokniha se tak může hned začít zobrazovat jako doporučení k jiným a naopak. Bez čekání, bez nutnosti sbírání dodatečných informací. Všechno, co tento systém potřebuje (text audioknihy), má hned k dispozici.

A co nový zákazník?

Pokud o něm netušíme absolutně nic, nepomůže nám sebelepší systém. Ale v momentě, kdy o zákazníkovi začneme získávat první informace (signály), můžeme si ho začít představovat jako “text”, jako jednu knihu.

Ať už od momentu první zakoupené audioknihy (ve smyslu “jsi tím, co čteš”), přidání první audioknihy na seznam přání (ve smyslu trochu upraveného, ale stále rozumného “jsi tím, co si přeješ číst”) nebo hodnocení první audioknihy (“jsi tím, co kladně hodnotíš”).

Některé signály budou fungovat lépe, jiné hůř.

Vždy záleží na obchodě. Ten se s tím popasuje a vyladí systém tak, aby byl pro zákazníky opravdu užitečný.

Úžasné, ale…

Ano, každý systém má nějaké “ale”. Žádný systém není dokonalý.

Tento systém například trpí, pokud správně nerozumí slovům. Pokud jsme ho nenaučili správně rozumět danému jazyku.

Stejně problematické je, když chceme porovnávat audioknihy v různých jazycích. Pro spoustu lidí je jednoduché a běžné číst knihy ve více jazycích. Pro počítač je to bohužel stále komplikované. Ne neřešitelné, ale náročné.

Abychom taky nezapomněli, pamatujete, jak jsem říkal, že při 5000 audioknihách musí počítač vypočítat přesně 25 milionů podobností? A co když je těch audioknih víc, třeba 10000? Přesně, dvakrát víc audioknih znamená nutnost vypočítat čtyřikrát víc podobností (ano, 100 milionů). A to si žádá čas.

Takže tento doporučovací systém funguje výborně, ale zase ne rychle. Aby byl rychlý, musí se toho hodně udít. To jsou ale zase technické detaily, které tu rozebírat nemusíme.

Až se příště uvidíme

Až se příště stavíte na Audiolibrixu, všimněte si, že na různých místech najdete různá doporučení.

Které systémy používáme?

No, to je naše tajemství. Ale zvu vás k tomu, abyste se při doporučeních zastavili a zamysleli.

Pokud jste pozorně dočetli až sem, zamyslet se můžete nejen nad tím, jestli dostáváte zajímavá a relevantní doporučení (což umíte zhodnotit subjektivně). Ale i nad tím, jaký systém je asi na doporučení použitý – teď když už jednotlivé systémy znáte, některé byste mohli zvládnout lehce identifikovat.

A zároveň, když půjdete do nějakého jiného obchodu (je jedno, jaké zboží prodává), zkuste se zamyslet i nad ním. Zkuste zhodnotit, jak moc se obchod snaží, aby vám pomohl. A pokud vám nedává dobrá doporučení, zkuste si říct proč – jestli jen nezvolili dobrý systém, nebo ho zkrátka postavit nedokážou. Uvidíte, bude to zábava!

Doufám, že odteď už budete na doporučení hledět jinýma očima a pokud i ne, tak doufám, že vás článek zaujal. Klidně ho doporučte kamarádům, potěšíte je i mě.

A mimochodem, doporučení od kamarádů bývají těmi z nejlepších. Jenže to už za vás žádný systém, počítač ani obchod sám neudělá. To musíte udělat sami.

A co že má tedy Hra o trůny společného se Zaklínačem?

No, z pohledu zmiňovaných atributů a systémů doporučení nic moc. K oběma audioknihám bychom našli lepší doporučení, než je doporučovat jednu k druhé. Ale stoprocentně mají společné aspoň to, že byl na jejich základě natočený seriál. To je ale téma na úplně jiný článek.