Znáte to – zadáte dotaz do vyhledávacího pole a voilà, kýžený výsledek na vás vyskočí. Lehké jako facka. Jak ale poznáme, které výsledky vás zajímají a které zobrazit? Pojďte se podívat, jak v Seznamu pracujeme s relevancí Vyhledávání.
Vezměte si třeba dotaz [Zámek Blatná]. Zajímá dotyčného recenze na zámek? Nebo plánuje výlet a chce vidět mapu, kudy k zámku vyrazit? Chce jen zjistit něco o jeho historii nebo ho zajímá obrázek, jak zámek vypadá? Byl třeba před lety na nějakém takovém zámku a nemůže si vzpomenout na jeho jméno?
Cílem vyhledávače je vždy poskytnout odkazy na relevantní stránky, kde lidé najdou, co hledali. Je těžké uhodnout, co zrovna mysleli, když dotaz zadávali, ale je jasné, čeho se konkrétní dotaz týká. Většina stránek, které se vyskytnou ve výsledcích vyhledávače, bude kompletně o Zámku Blatná. Lišit se budou jenom typy stránek ve výsledcích.
Dalším druhem dotazů jsou dlouhé dotazy zadané v přirozeném jazyce, například [jak se starat o kopyta]. Hledající pravděpodobně vlastní koně nebo dobytek a potřebuje praktické rady. Většinou ale neexistují stránky, které by se celé týkaly daného problému. Přesto dokážeme najít užitečné odpovědi: stránky o péči o koně mohou mít odstavec o koňských kopytech, případně diskuzní fóra mohou obsahovat příspěvek s osobní zkušeností s péčí o koňská kopyta. Těmto dotazům říkáme „neentitní“ a musí se řešit jiným přístupem vyhledávání.
Prvnímu přístupu, kdy lidé hledají informace o nějaké entitě – například zámku, říkáme „entitní“. A právě jemu se v dnešním povídání budeme věnovat.
Co potřebujeme vědět?
Výsledky dotazů mířící na entity jsou řazeny strojově učeným modelem. Ten se naučí na ručních hodnoceních užitečnosti výsledku na daný dotaz. V případě relevance model určuje, jak dobrou dává webová stránka odpověď na daný dotaz. Model tedy má k dispozici data o dotazu (zda je to film, jméno hudební skupiny, název produktu aj.) a data o webové stránce (titulek stránky, počet slov na stránce, kolik je na stránce obrázků aj.). Abychom ho mohli „naučit“, tzn. určit kvalitu webové stránky na dotaz, potřebujeme zjistit, jaký výsledek je dobrý a jaký špatný.
Hodnocení relevance webových stránek na dotaz provádí naši spolupracovníci, anotátoři. Protože data anotátorů jsou nejdůležitější součást strojového modelu, dáváme si velmi záležet, aby byla kvalitní.
Máme pečlivě sestavená anotační pravidla, anotátory školíme a sbíráme od nich zpětnou vazbu, kterou používáme na další iterační úpravu pravidel.
Pro samotné trénování modelu využíváme open-source knihovnu catboost od společnosti Yandex. V minulém roce jsme úspěšně přidali významné tzv. vektorové signály, které umožňují spojit dotaz s webovými stránkami, které jsou pro něj relevantní, ač na stránce není zmíněn.
V průběhu let jsme zjistili, že je výhodné si typy vyhledávání rozdělit na kategorie, které se navzájem liší:
hledání, kde lidé chtějí přejít na konkrétní webovou stránku
hledání konkrétního zboží, které si chtějí koupit
hledání informace (rozsáhlé či konkrétní)
Máme tedy několik různých kategorií entitního hledání, které nám umožňují se zaměřit konkrétněji na jednotlivé problémy a změřit je. Na entitní dotazy tedy vyhledávač reaguje různě podle toho, zda hledající chtěl nakupovat nebo zjišťovat informace.
Měření kvality vyhledávání děláme několika způsoby. Jednak opět s pomocí anotací: anotátoři hodnotí užitečnost webových stránek na dotaz. A jednak tzv. A/B testy: malé skupině lidí ukážeme připravovanou verzi hledání. Statisticky u nich pak změříme, zda byla nová verze úspěšná.
A co nás ještě čeká?
V budoucnu plánujeme pokračovat v naší snaze rozdělit jednotlivá hledání na jemnější segmenty a adresovat jejich konkrétní problémy. Dále budeme zkoumat složitější typy uživatelského chování: které akce znamenají, že byli lidé s výsledky hledání spokojeni. Je to zajímavá úloha – někdy jim stačí dodat jediný výsledek, někdy si potřebují prohlédnout více stránek, aby získali komplexní informaci, a někdy dostanou odpověď už v samotné stránce s výsledky vyhledávání.
V entitním hledání relevance budeme tedy pracovat na kvalitě sbíraných dat, porozumění konkrétních problémů, které se vyskytují v modelech strojového učení relevance, a hlubší znalosti uživatelského chování.
Před rokem jsme do našeho Vyhledávání poprvé nasadili Featured snippety neboli Vybrané úryvky. Od té doby je vylepšujeme tak, aby hledající vždy našli rychlou a co nejpřesnější odpověď. Jaké výhody mohou přinést stránkám, ze kterých čerpají?
Jednou z funkcí, kterou jsme v uplynulém roce vylepšili pomocí jazykových modelů, byla detekce času v dotazu. Pojďme se podívat na to, proč bychom to měli umět, jaká to má úskalí a jak jsme si s tím poradili.
V prosinci všichni řešili Vánoce, cukroví nebo třeba blížící se prezidentské volby. Ale někteří analytici měli navíc ještě jedno zpestření – výzvu od seznamáckého Vyhledávání. Všem, kteří se zapojili, děkujeme! A teď je čas zjistit, kdo ve výzvě zabodoval.
Zpracování osobních údajů
Za účelem využití služby „Newsletter Seznam.cz” dostupné na internetové adrese (URL) https://blog.seznam.cz (dále jen „Služba“) uživatelem Služby (dále jen „Uživatel“) je společnost Seznam.cz, a.s., IČO 261 68 685, se sídlem Radlická 3294/10, 150 00 Praha 5, provozovatel Služby (dále jen “Provozovatel”) oprávněna zpracovávat osobní údaje Uživatelů (zejména adresné a popisné údaje v rozsahu níže uvedeném), které tito Uživatelé poskytnou Provozovateli v rámci užívání Služby.
Osobní údaje Uživatele budou zpracovány Provozovatelem v nezbytném rozsahu za účelem poskytování Služby, a to zejména za těmito účely:
za účelem zařazení kontaktních údajů do databáze Provozovatelem a za účelem zasílání obchodních nabídek Uživateli ze strany Provozovatele;
za účelem zařazení kontaktních údajů do kontaktů Provozovatele za účelem vzájemné budoucí komunikace Provozovatele a Uživatele.
Takové zpracování osobních údajů je zákonné, jelikož je nezbytné pro splnění smlouvy, na jejímž základě Uživatel užívá Službu, a jejíchž smluvní stranou je Uživatel, jako subjekt osobních údajů.
Provozovatel postupuje při zpracování osobních údajů v souladu s nařízením Evropského parlamentu a Rady (EU) č. 2016/679 o ochraně fyzických osob v souvislosti se zpracováním osobních údajů a o volném pohybu těchto údajů (obecné nařízení o ochraně osobních údajů, dále jen „nařízení“), zákonem č. 110/2019 Sb., o zpracování osobních údajů, zákonem č. 111/2019 Sb., kterým se mění některé zákony s přijetím zákona o zpracování osobních údajů, zákonem č. 480/2004 Sb., o některých službách informační společnosti, zákonem č. 127/2005 Sb., o elektronických komunikacích a dalšími právními předpisy upravující ochranu osobních údajů.
Podrobnější informace o nakládání s osobními údaji jsou uvedeny na internetových stránkách Provozovatele, a to v příslušné sekci.