Co se skrývá pod kapotou Seznamu? Významové vektory

Některé updaty jen projdou kolem, jiné zcela mění pravidla SEO. Nasazení významových vektorů patřila k těm druhým. Seznam se v ten moment mnohem více přiblížil chápání významu v intencích sémantického vyhledávání.

Seznam.cz logo

Detailní, technicky zaměřená analýza významových vektorů vyšla původně na Instaluj.cz 4. února 2021:

Vyhledávání Seznamu ovlivní významové vektory

Seznam implementoval největší změnu do vyhledávání za posledních deset let. Jde o hledání pomocí významových vektorů. Díky vektorové reprezentaci slov by tak měl najít i odpověď i na těch webech, na nichž konkrétní slova z vyhledávacího dotazu chybí. Co všechno významové vektory ovlivní?

Jak Seznam vyhledával doposud?

Základ toho, jak funguje strojové zpracovávání vyhledávacích dotazů přibližuje Tomáš Mikolov, výzkumník strojového učení a autor knihoven word2vec a fastText pro strojové zpracování jazyka:

„počítač vidí slova tak, že si nejdříve spočítá slovník a každé slovo se převede na číslo, což je pozice v tom slovníku. Tím pádem je věta zakódovaná jako sekvence čísel a každé slovo je vlastně unikátní. Stačí udělat jeden překlep a počítač slovo vidí jako naprosto jiné slovo…

Pokud jsou slova podobná, tak to tento slovníkový přístup nedokáže zohlednit a systém si zpětně musí dohledat, že třeba „český“ a „česká“ jsou si podobná slova a že by se tam měly sdílet parametry.“

A právě takto základní slovník dosud rozšiřoval i Seznam pomocí lemmatizace a latentního sémantického indexování. Konkrétně to přibližuje Martina Pomikálková, šéfka týmů zpracování dotazu a vektorového hledání:

„dotaz od uživatele jsme opravili, analyzovali a přidali k němu další slova, která by mohla pomoci najít to, co uživatel hledal. Takovými slovy mohly být skloňované tvary zadaných slov, synonyma, rozvinuté zkratky apod. Tato slova jsme pak hledali v zaindexovaných webových stránkách, nalezené stránky řadili a předkládali uživatelům.

Vždy tedy zatím bylo potřeba na webové stránce (nebo ve zpětných odkazech) najít nějaký textový ekvivalent toho, co uživatel napsal do dotazu.“

Vyhledávání Seznamu se takto dostalo do úzkých, kdy na něj uživatelé zkoušeli mluvit přirozeným jazykem – nebo když použili příliš mnoho slov v dotazu. Vyhledávač se pak marně snažil vyhledat odpověď, která by obsahovala všechna slova dotazu – a to i ta, která se vyskytují jen v přirozeném jazyce, nikoliv však v odpovědích na ně. 

SERP Seznam.cz: ukázka hledání křestního jméno klavíristky Jirečkové

Pomikálková uvádí příklady takových dotazů:

  1. jméno klavíristka jirečková – Záměr uživatele je zřejmý, chtěl znát křestní jméno klavíristky (asi do křížovky), jenže na stránkách, kde se o Noemi Jirečkové píše, přirozeně chybí slovo ‚jméno‘.
  2. Jak se nazýval dokument z roku 1212, který mj. zaručoval českým panovníkům dědičný královský titul? – Taková otázka se možná hodí do písemky nebo AZ-kvízu, ale nalezení wikipedické stránky Zlatá bula sicilská brání to, že na ní nenajdeme nic jako ‚nazýval‘, ‚mj.‘ ani ‚zaručoval‘.

Ani předlouhé otázky by Seznam.cz už neměl odbývat lakonickým Bohužel jsem nic nenašel.

SERP Seznam.cz: ukázka pro dlouhý vyhledávací dotaz

V čem spočívá implementace významových vektorů?

Implementaci významových vektorů trochu popisuje Pomikálková kapku nespecificky:

Ke stávajícím výsledkům jsme přidali vyhledávání pomocí významových vektorů. Z dotazů i webových stránek vyrábíme sadu vektorů, které reprezentují, co daný kus textu znamená. Vektory počítáme embeddingovým modelem, který je naučený přiřazovat podobné vektory textům, které se obvykle vyskytují v podobných kontextech. K vektorům dotazu pak hledáme nejpodobnější vektory stránek v mnohorozměrném vektorovém prostoru.

To ovšem neodpovídá na zásadní otázku:

Co je významový vektor?

Významový vektor se liší od diskrétního slovníkového slova s přesně vymezenou pozicí v rámci slovníku. Jde o spojitý vektor, jehož orientace je schopna vyjádřit, že slova dobrýskvělý a vynikající mají stejnou významovou orientaci. Že patří téhož významového vektoru.

vektorová reprezentace slov nestaví jen na jednoduchých vektorech, jako je ten uvedený v příkladu. Je schopna navektorovat i celý kus textu dotazu a stejně tak do těchto vektorů dosadit z naindexovaných výsledků. Těch tak masivně přibude a opět se ukáže důležitost rankingu – algoritmu, který upřednostňuje odpovědi relevantní dotazu. 

Co významové vektory udělají s vyhledáváním a řazením výsledků?

Díky vektorové reprezentaci dotazu bude vyhledávání Seznamu schopno poskytnout celou řadu výsledků i tam, kde dříve jen konstatoval Bohužel jsem nic nenašel. To dokládají i slova Pomikálkové: Navenek se změna projeví tím, že teď pro téměř každý dotaz vydáme SERP plný výsledků. I pro hodně těžké a nesmyslné dotazy… V první řadě řešíme, aby uživatel i na těžké dotazy našel, co hledal. Až později budeme chtít omezit to, co nehledal.

Významové vektory ovšem neovlivní jen množství odpovědí na dotaz, ale i jejich řazení. Podobnost významových vektorů je současně důležitým signálem pro řazení výsledků. Vedle nalezení nových stránek tak dojde i ke změnám pozic těch stávajících, upřesňuje Pomikálková.

Aby nebylo srandy dost, ani tým Vyhledávání Seznamu netuší, s čím vším významové vektory zamíchají: Po této změně je i pro nás vyhledávání zase o krok větším blackboxem. Bude teď ještě těžší přijít na to, proč se která webová stránka ve vyhledávání objevila nebo neobjevila. Všechna měření před nasazením však slibují takové zlepšení přirozeného hledání, že nám to stojí za to.


Od algoritmů k výsledkům

Pochopení toho, jak Seznam přemýšlí, není jen akademickým cvičením. Je to názorná ukázka fundamentálního posunu, kterým prošly všechny vyhledávače – přechodu od klíčových slov k pochopení uživatelského záměru. Principy sémantického vyhledávání jsou dnes páteří obsahové strategie, založené na všech ostatních principech a disciplínách SEO.


Zdroje

  • Blog Seznam.cz: Vyhledávání pomocí významových vektorů
  • Lupa.cz

Co najdete v textu?