🔍 BI-VWM – Vyhledávání na webu a v multimediálních databázích

Státnicové poznámky · Bakalářské státní zkoušky · FIT ČVUT

BI-WI.21-21 · BI-WI.21-22 prof. Tomáš Skopal Information Retrieval Metric Indexing
Okruh 1 · BI-WI.21-21

Techniky vyhledávání textových, webových a multimediálních dokumentů: modely, algoritmy, aplikace. Optimalizace webových stránek pro vyhledávače.

Pokrývá základy information retrieval (IR) – od předzpracování textu přes Booleovský, vektorový a LSI model až po analýzu odkazů (PageRank, HITS), agregaci rankingů a SEO techniky.

📚 Základy Information Retrieval (IR)

Information Retrieval (IR) – disciplína zabývající se metodami pro vyhledávání relevantních dokumentů z kolekce na základě uživatelského dotazu. Starší než web (od 60. let), původně pro digitální archivy a knihovny.

IR je základ každého fulltext vyhledávače. Klíčový problém: jak efektivně najít relevantní dokumenty v obrovských kolekcích?

Základní pojmy

  • Dokument – entita obsahující fulltext (nebo fulltext anotaci jiné entity)
  • Kolekce – množina dokumentů
  • Term – slovo nebo fráze vyskytující se v dokumentu
  • Slovník (Vocabulary) – množina všech unikátních termů v kolekci

Předzpracování textu (Text Preprocessing)

Bez předzpracování by slovník byl příliš velký (stovky tisíc termů). Cílem je ho zmenšit na ~20 % původní velikosti, čímž se zlepší jak kompaktnost, tak efektivita vyhledávání.

  • Stop slova – velmi časté, neinformativní termy se odstraní (a, the, for, are, be, have, …). Mohou být i čísla, jména atp.
  • Stemming / lemmatizace – redukce slov na jejich kořen/základní tvar: go, goes, went, going → go. Hledání pak propojí různé tvary téhož slova.

Měření kvality vyhledávání – Precision & Recall

Precision (P) = pravděpodobnost, že dokument ve výsledku je relevantní = |RelAns| / |Ans|
Recall (R) = pravděpodobnost, že relevantní dokument je ve výsledku = |RelAns| / |Rel|
  • False alarm (false hit) – dokument je ve výsledku, ale neměl by být → snižuje precision
  • False dismissal (false drop) – dokument měl být ve výsledku, ale není → snižuje recall
  • Precision a recall jsou v přirozeném napětí: rozšíření výsledku zvyšuje recall, ale snižuje precision
  • Precision-recall křivka – komplexní charakteristika systému; vyhodnocuje se na 11 standardních úrovních recallu
Proč to tak je?
Precision a recall jsou duálními pohledy na totéž: čím více dokumentů vrátíme (vyšší recall), tím více nevhodných se mezi ně dostane (nižší precision). Neexistuje ideální systém – vždy jde o kompromis.

🔲 Booleovský model a invertovaný index

Booleovský model – klasický IR model postavený na teorii množin a Booleově algebře. Dokument je buď relevantní, nebo není – žádné pořadí.

Datový model

  • Dokument = množina termů → reprezentován jako binární vektor dimenze m (přítomnost/nepřítomnost termu)
  • Term = množina dokumentů, ve kterých se vyskytuje → binární vektor dimenze n
  • Výsledkem je řídká binární term-by-document matice (typicky 99 % nul)

Dotazování

  • Dotaz = Booleovský výraz nad termy: AND, OR, NOT
  • Příklad: q = Brutus AND Caesar AND NOT Calpurnia
  • Evaluace = bitové operace nad vektory termů

Invertovaný index – implementace

Kompaktní reprezentace řídké matice. Každý term má tzv. inverted list – seřazený seznam ID dokumentů, ve kterých se vyskytuje.

  • Zpracování dotazu probíhá ve stylu merge-sort: kurzory v jednotlivých listech se zarovnávají na stejná ID
  • AND = průnik množin ID, OR = sjednocení, NOT = doplněk
  • Optimalizace: termy se zpracovávají v pořadí od nejmenší frekvence (nejmenší listy) → nejmenší mezivýsledky
  • Frekvence termů uložena → optimalizace pořadí zpracování AND výrazů
Nevýhody Booleovského modelu
  • Příliš hrubý model – výsledek je buď prázdný, nebo příliš velký
  • Žádné pořadí dokumentů – všechny výsledky jsou "stejně relevantní"
  • Vyžaduje přesnou znalost hledaného → nevhodné pro běžné uživatele
  • Spammeři mohou skrýt text a oklamat model

Pros

  • Jednoduchý, intuitivní model
  • Efektivní implementace (bitové operace)
  • Oblíbený v profesionálním vyhledávání (právníci, lékaři)

📐 Rozšířený Booleovský model a Vektorový model (Vector Space Model)

Rozšířený Booleovský model

Navržen Saltonem et al. (1983). Kombinuje Booleovu algebru s vektorovým modelem: termy mají váhy (wk,j) → částečné shody, pořadí výsledků.
  • Výsledek = celá kolekce seřazená dle klesající relevance
  • Relevance q = k1 AND k2: vzdálenost vektoru dokumentu od bodu (1,1) v 2D prostoru
  • Relevance q = k1 OR k2: vzdálenost od bodu (0,0)
  • P-normy: generalizace s parametrem p ≥ 1 umožňuje ladit efektivitu systému
  • Pros: stejný jazyk dotazů jako Booleovský, ale s rankingem
  • Cons: výpočetně náročnější (p-mocniny a p-odmocniny)

Vektorový model (Bag of Words, BoW)

Vektorový model – dokument i dotaz jsou reprezentovány jako vektory v m-dimenzionálním prostoru termů. Relevance = podobnost vektorů. Kognitivní model: lidé hledají podobné věci.
  • Dokument = "bag of terms" (multi-množina termů)
  • Slovník m termů → každý dokument dj je vektor dimenze m
  • Dimenze prostoru jsou obvykle m > 10 000 (pro angličtinu)
  • Dotaz = vektor stejné dimenze jako dokument (pár klíčových slov nebo celý dokument)

Vážení termů: TF-IDF

Ručním vážením by vznikly nekonzistence. Proto se používá automatické vážení na základě statistik frekvencí.

  • TF (term frequency): tfᵢⱼ = fᵢⱼ / maxᵢ{fᵢⱼ} – normalizovaná frekvence termu tᵢ v dokumentu dⱼ (0..1)
  • IDF (inverse document frequency): idfᵢ = log₂(n / dfᵢ) – termy vyskytující se v mnoha dokumentech mají nízké IDF
  • TF-IDF: wᵢⱼ = tfᵢⱼ · log₂(n / dfᵢ) → experimentálně nejlepší w.r.t. precision/recall
Příklad TF-IDF
Dokument: mountain(3), forest(2), nature(1); kolekce 10 000 dokumentů; df: mountain=50, forest=1300, nature=250
mountain: tf=1, idf=log₂(200)=7.6, tf-idf=7.6
forest: tf=0.67, idf=log₂(7.7)=2.9, tf-idf=2.0
nature: tf=0.33, idf=log₂(40)=5.3, tf-idf=1.8

Kosinusová podobnost – proč ne Euklid?

  • Euklid není robustní w.r.t. násobení vah: dokument d2 zkonkatenovaný se sebou (d3) by byl vzdálenější od d1 než d2, ačkoli text je totožný
  • Kosinusová podobnost porovnává směry vektorů (úhly), ne pozice:
    CosSim(dⱼ, q) = (dⱼ · q) / (|dⱼ| · |q|) = cos(θ)
  • Vysoká hodnota = vysoká podobnost; ArCos dá úhlovou vzdálenost
  • Proč ne Euklid v invertovaném indexu? Při Euklidu by nás zajímaly i dimenze s nulovými váhami v dotazu → nemůžeme přeskočit listy → ztráta efektivity

Implementace vektorového modelu invertovaným indexem

  • Stejná struktura jako u Booleovského modelu, ale navíc každé ID dokumentu nese váhu: DocID(weight)
  • Zpracování: merge-sort stylem, ale počítáme součet součinů (inner product/CosSim) místo Booleovských operací
  • Výhoda: nulové váhy (99 % matice) přeskočeny → jen listy termů z dotazu

Relevance Feedback

  • Uživatel označí relevantní / nerelevantní dokumenty
  • Dotazový vektor q se posune: přidají se vektory relevantních dokumentů, odečtou nerelevantní
  • Iterativní zpřesňování výsledku

Pros/Cons vektorového modelu

  • ✅ Jednoduchý, geometrický model; query-by-example; ranking; efektivní
  • ❌ Absence expresivní síly Booleovského dotazu; předpoklad nezávislosti termů (neřeší synonymii a homonymii)

🧠 Latentní sémantická indexace (LSI) a Word2Vec

Motivace pro LSI

  • Vektorový model předpokládá nezávislé nízkoúrovňové termy – ale termy nezávislé nejsou!
  • Problémy: synonymie (street, road, path → stejný koncept), homonymie (bank = banka / břeh)
  • Dokumenty "more people look for jobs" a "unemployment is on rise" by měly být podobné, ale vektorový model je tak neohodnotí
LSI (Latent Semantic Indexing) – rozšíření vektorového modelu o preprocessing term-by-document matice A pomocí SVD (Singular Value Decomposition). Výsledek: dokument modelován koncepty, ne termy.

SVD a dimenzionální redukce

  • A = U · Σ · Vᵀ (matice U = bazové koncepty, Σ = singulární hodnoty = významnost konceptů, Vᵀ = concept-by-document matice)
  • Koncepty jsou lineární kombinace termů; statisticky signifikantní (latentní sémantika)
  • Zachováme pouze k nejvýznamnějších konceptů → dimenzionální redukce z 10⁴–10⁵ termů na 10¹–10³ konceptů
  • Dotaz se projektuje do prostoru konceptů a porovnává kosinusovou podobností
Proč dimenzionální redukce funguje?
Singulární hodnoty (= wichtigkeit konceptů) rychle klesají. Prvních 50–200 konceptů zachytí většinu sémantiky kolekce. Méně významné koncepty jsou statistický šum.

Pros/Cons LSI

  • ✅ Odhaluje "latentní sémantiku"; částečně řeší synonymii a homonymii; dimenzionální redukce
  • ❌ Koncepty nejsou lingvisticky definované (jen statisticky); hustá matice → invertovaný index nevhodný (potřeba metrické metody); SVD má složitost O(n² + m³)

Word2Vec (Mikolov 2013)

Word2Vec – machine learning přístup k distribuovaným reprezentacím slov. 3-vrstvá backpropagation neuronová síť trénovaná na textovém korpusu (bez supervize).
  • Dva algoritmy: CBOW (kontinuální bag of words – z kontextu predikuje střední slovo) a Skip-gram (z středního slova predikuje kontext)
  • N-gram kontextové okno pro každé (centrální) slovo
  • Výsledek: vektorová aritmetika pro NLP: vec("king") – vec("man") + vec("woman") ≈ vec("queen")
  • Výhody oproti SVD: mnohem rychlejší, lépe škáluje, paralelně zpracovatelné; okno kontextu > celý dokument

🕸️ Webový graf, analýza odkazů, PageRank a HITS

Webový graf a motivace

  • Web = orientovaný graf: uzly = webové stránky, hrany = URL odkazy
  • Inlink: odkaz z pohledu odkazované stránky (těžko zjistitelný)
  • Outlink: odkaz z pohledu odkazující stránky (v HTML kódu)
  • Od 1998: samotné fulltext IR modely nestačí – spammeři zneužívají skrytý text. Strukturální informace v odkazech je sémanticky bohatší (jeden odkaz vs. spoustu textu)

Klíčové pojmy webového grafu

  • Hub – stránka s mnoha outlinky (rozcestník)
  • Authority – stránka s mnoha inlinky (autoritativní zdroj)
  • Bipartitní graf – webová komunita; co-citation; in-tree; out-tree; 2-connected component; cycle (web ring)

PageRank (Brin & Page, 1998)

Teze PageRanku: "Webová stránka je důležitá, pokud na ni odkazují jiné důležité stránky." Rank = nezáporné reálné číslo, query-independent, počítaný pouze ze struktury grafu.

Iterativní vzorec:

  • Inicializace: r₀(Pᵢ) = 1/n pro všechny stránky
  • Aktualizace: rₖ₊₁(Pᵢ) = Σ rₖ(Pⱼ) / |Pⱼ| pro Pⱼ ∈ BPᵢ (stránky odkazující na Pᵢ)
  • Stránka Pᵢ dostává rovnoměrný díl ranku každé stránky, která na ni odkazuje

Problémy původního vzorce a Google matice

  • Rank sinks: stránky bez outlinků (dangling nodes) absorbují rank bez jeho redistribuce → rank se ztrácí
  • Cykly: iterativní proces nemusí konvergovat (rank flipping)

Řešení – transformace matice H → Google matice G:

  1. Dangling nodes: řádky s nulami nahradíme 1/n → stochastická matice S
  2. Google matice: G = αS + (1–α)E, kde E = (1/n)·eeᵀ (matice jedniček dělená n)
  3. Parametr α ≈ 0.85 (empiricky nejlepší): pravděpodobnost "následování odkazu" vs. "teleportace"
Intuice: Náhodný surfer
Surfer navštěvuje stránky buď přes outlinky (pravděpodobnost α), nebo se teleportuje na náhodnou stránku (1–α). Dangling node má outlinky na všechny stránky. PageRank = stacionární distribuce tohoto Markovova řetězce.

Vlastnosti Google matice a výpočet

  • G je primitivní, ireducibilní, aperiodická → garantovaná konvergence do jediného PageRank vektoru
  • Power method: π^(k+1)T = αP^(k)TH + (αP^(k)Ta + 1–α)eᵀ/n
  • H je velmi řídká (~10 nenulových prvků na řádek) → každá iterace O(n)
  • Stačí ~50 iterací pro 2–3 cifry přesnosti
  • Google matice G je hustá → nemůže být materiálizována; používají se matrix-free metody

HITS (Hyperlink-Induced Topic Search, Kleinberg)

Teze HITS: "Stránka je dobrý hub, pokud odkazuje na dobré autority; stránka je dobrá autorita, pokud na ni odkazují dobré huby."
  • Dva ranky: hub rank a authority rank
  • Iterativní výpočet: auth(Pᵢ) = Σ hub(Pⱼ) pro Pⱼ odkazující na Pᵢ; hub(Pᵢ) = Σ auth(Pⱼ) pro Pⱼ odkazované z Pᵢ
  • Používán ve vyhledávači Teoma

Aplikace rankingu v search engines – tři kroky

  1. Ranking dle obsahu (vektorový model, kosinusová podobnost)
  2. Získání PageRank skóre pro vrácené stránky
  3. Re-ranking agregací content score a PageRank

🏆 Agregace rankingů – Fagin algoritmus a Threshold algoritmus

Top-k operátor – evaluace agregační funkce f (monotónní, např. Min, Max, Avg) na všech objektech s jejich parciálními ranky a vrácení k objektů s nejvyšším agregátním rankem.

Fagin algoritmus (FA)

  1. Čteme záznamy ze seřazených listů paralelně, dokud k objektů nemá přečteny všechny m ranků (z každého listu alespoň jeden)
  2. Pro zbylé objekty doplníme chybějící ranky náhodným přístupem (cross links)
  3. Spočteme agregace na všech přečtených objektech
  4. Vrátíme k objektů s nejvyšším agregátním rankem

Threshold algoritmus (TA)

  1. Paralelně čteme ze seřazených listů; po každém kroku zjistíme všechny ranky náhodným přístupem
  2. Udržujeme buffer top-k kandidátů a threshold T = f(aktuální hodnoty na čelech listů) = horní mez agregátního ranku nepřečtených objektů
  3. Pokud T ≤ rank k-tého kandidáta → zastavíme → výsledek je správný
TA vs. FA – klíčové rozdíly
  • TA čte méně objektů než FA (zastaví se dříve)
  • TA může provést více náhodných přístupů než FA
  • TA potřebuje jen ohraničenou paměť (k míst), FA neohraničenou
  • Správnost obou algoritmů zaručena díky monotonicitě f

One-step vs. Multi-step ranking

  • One-step: globální agregační funkce přes všechny parciální ranky najednou → drahé, ale přesné
  • Multi-step (re-ranking): postupné zužování kandidátů:
    1. Seřaď dle r1
    2. Vezmi prefix, seřaď dle r2
    3. Opakuj pro r3, …
    Příklad: 1) content similarity → prefix → 2) page rank → prefix → 3) layout similarity

🕷️ Webový crawling, indexování a architektury vyhledávačů

Složky webového vyhledávacího procesu

  • Crawling – stahování obsahu (webových stránek) pomocí robotů/spiderů/botů
  • Indexing – zpracování obsahu do formy vhodné pro vyhledávání
  • Searching – vyhledávání relevantního obsahu pomocí dotazu

Crawler

  • Krátký program řídící spidery – jak a které stránky stahovat
  • Omezení: velikost webu, bandwidth → opakované návštěvy, prioritizace, optimální strategie
  • Robot exclusion protocol – soubor robots.txt říká crawlerům, které stránky indexovat nesmí
  • Etické crawlování = dodržování robots.txt

Typy indexů

  • Content index – fulltext vyhledávání (invertovaný index)
  • Structure/citation index – pro rankování stránek (PageRank)
  • Special purpose index – pro content-based multimediální vyhledávání

Druhy dotazů

  • Keyword query – malá sada termů (slov, frází)
  • Full-text query – textový soubor parsovaný do keyword dotazu
  • Content-based query – upload souboru, URL, nebo skica (pro multimediální vyhledávání)

Browsing a Filtering

  • Browsing: iterativní navigace v databázi (neumíme formulovat dotaz) – explicitní nebo virtuální graf
  • Filtering (doporučování): fixní nebo implicitní zájem uživatele; RSS, subscription, collaborative filtering

⚙️ Optimalizace pro vyhledávače (SEO)

SEO (Search Engine Optimization) – metodika tvorby webových stránek s ohledem na technologii vyhledávačů. Cíl: dobrý ranking = dobrá viditelnost = efektivní marketing.
Teze SEO
Obsah webové stránky dobrý pro člověka nestačí – musí být "dobrý" i pro stroj (vyhledávač). Každá jednotlivá stránka (ne web jako celek) musí být optimalizována.

On-page SEO elementy

  • Název souboru (URL) – relevantní k obsahu; pomlčky = mezery; co nejkratší
  • <title> tag – nejdůležitější ranking faktor; max 64 znaků; stručné shrnutí obsahu
  • Header tagy (<h1>–<h6>) – hierarchická důležitost; <h1> = největší vizuální i sémantická váha
  • <meta description> – text zobrazovaný ve výsledcích vyhledávání (ne vždy u Google, ale stále důležitý pro uživatele)
  • <meta keywords> – dnes nevýznamné (zneužití spammery)
  • <meta robots> – kontrola crawlerů (nahrazeno robots.txt)
  • Text modifiers (<strong>, <em>, <b>, <i>) – vizuální i sémantická důležitost pro vyhledávače
  • Alt text obrázků – vyhledávače nečtou obsah obrázků; alt text = popis relevantní k obrázku (ne spam)
  • Interní odkazová struktura – descriptivní anchor text; menu v horní části; nepoužívat obrázky jako linky

Klíčová slova (Keyword generation)

  • Nejdůležitější část SEO procesu
  • Head terms (generic keywords): 1–2 slova, velký traffic, vysoká konkurence (např. "racing")
  • Tail terms (specific keywords): 2–3 slova, menší traffic, cílenější vyhledávání (např. "old cars racing")
  • Strategie: head terms na hlavní stránce, tail terms na podstránkách
  • Keyword density: opakuj cílová KW, neopakuj necílová (propojení s vektorovým modelem – TF-IDF)
  • Latentní sémantika: použij sémanticky příbuzná KW → prevence penalizace za over-optimization

Obsah stránek

  • Pišme primárně pro lidi, ne pro vyhledávač
  • Vyhněme se duplicitnímu obsahu (penalizace vyhledávači)
  • Pravidelně aktualizujme obsah (fresh content = reward)
  • User-generated content (testimonials, fóra, recenze)
  • Optimalizujme i non-HTML dokumenty (PDF, Office) – čitelný text, ne bitmapy

Technická struktura webu

  • Sitemap – HTML/XML soubor pomáhající robotům navigovat webem
  • robots.txt – říká spiderům, které stránky (ne)indexovat; v root adresáři serveru
  • .htaccess – konfigurace Apache serveru; password protection, banning botů
  • Stránka "O firmě" a Privacy Policy zvyšují kredibilitu (spammeři je nemají)

Off-page SEO – budování odkazů

  • Jeden kvalitní odkaz > stovky nekvalitních (propojení s PageRankem!)
  • Hodnotit partnerské domény: věk domény, .edu/.gov domény, PageRank, původní obsah
  • Jednosměrné (one-way) odkazy cennější než reciproční
  • Komunitní participace: blogy, fóra (PageRank > 4, tematicky relevantní)
  • Social Media Optimization (SMO): Facebook fan pages, Twitter, LinkedIn, YouTube
  • Placené linky: text-link-ads.com ($10–$1000/měsíc), ale Google je kritizuje

Neetické SEO (Black Hat SEO)

  • Skrytý text/header pro spam klíčových slov
  • Zneužití meta tagů pro keyword spam
  • Mass-submitting odkazů automatizovanými nástroji
  • Link farms – umělé sítě odkazů
  • TrustRank (Yahoo) – semi-automatické oddělení užitečných stránek od spamu
  • Krátkodobý efekt; vyhledávače odhalí a penalizují/zabanují stránku

🌐 Sémantický web, RDF, OWL, Linked Data

Sémantický web – rozšíření webu, kde informace mají strojově čitelný, dobře definovaný smysl. Myšlenka Tim Berners-Lee (2001): počítače a lidé v kooperaci.

Problém syntaktického webu

  • Vyhledávače pracují s nízkoúrovňovými koncepty (klíčová slova), bez porozumění
  • HTML = jazyk pro prezentaci, ne pro strojové porozumění
  • Těžké dotazy: "Najdi hotel blízko pláže a levný" – vyžaduje zázemní znalosti

XML jako základ

  • XML = eXtensible Markup Language; popis labeled stromové struktury
  • Libovolné názvy elementů → nutnost globální dohody (namespace)
  • XML namespace: identifikuje XML slovník pomocí URI
  • Samotný XML sémantiku neurčuje – potřeba ontologií

RDF (Resource Description Framework)

RDF triplet: <subjekt, predikát, objekt> – základní stavební kámen sémantického webu. Každá komponenta identifikována URI.
  • Příklad: <"Webová stránka", "has title", "Tony Benn">
  • Množina RDF tripletů = labeled orientovaný multigraf = knowledge base
  • RDFS (RDF Schema): definice aplikačně-specifických tříd a vztahů
  • SPARQL: dotazovací jazyk pro RDF; SELECT, CONSTRUCT, ASK, DESCRIBE

OWL (Web Ontology Language)

  • Rodina jazyků pro tvorbu ontologií (OWL Lite, OWL DL, OWL Full)
  • OWL DL: based on description logic → možnost inference (odvozování)
  • FOAF (Friend of a Friend): první aplikace Social Semantic Webu – popisuje osoby, vztahy

Linked Data

  • Best practices pro publikaci strukturovaných dat na webu pomocí SW technologií
  • 4 principy (Berners-Lee): 1) URI jako jména věcí; 2) HTTP URI; 3) poskytuj RDF info; 4) zahrň linky na jiné URI
  • Globální distribuovaný datový prostor (DBpedia, EuroStat, data.gov.uk…)

Shrnutí okruhu 1 a kontrolní otázky

Shrnutí (5 klíčových bodů)

  • IR využívá tři základní modely: Booleovský (přesná shoda, bez rankingu), Vektorový (TF-IDF váhy, kosinusová podobnost, ranking) a LSI (konceptový prostor via SVD)
  • Invertovaný index = klíčová datová struktura pro efektivní implementaci obou modelů
  • PageRank: iterativní výpočet důležitosti stránek z linkové struktury; Google matice G = αS + (1–α)E zaručuje konvergenci; α≈0.85
  • Top-k agregace (Fagin/TA): efektivní výběr k nejlepších dokumentů z více seřazených listů; TA je efektivnější díky threshold podmínce
  • SEO = metodika tvorby stránek s ohledem na vyhledávače; propojeno s IR modely (TF-IDF, latentní sémantika, PageRank)

Kontrolní otázky a odpovědi

❓ Co je precision a recall? Jak spolu souvisí?
Precision = podíl relevantních dokumentů ve výsledku (|RelAns|/|Ans|). Recall = podíl relevantních dokumentů, které jsou ve výsledku (|RelAns|/|Rel|). Jsou v napětí: zvyšování recallu (vracíme více) obvykle snižuje precision (více nerelevantních). False alarm snižuje precision, false dismissal snižuje recall.
❓ Proč se v vektorovém modelu používá kosinusová podobnost místo Euklidovy vzdálenosti?
Euklid není robustní – dokument d3 = d2 zkonkatenovaný se sebou by byl vzdálenější od d1 než d2, přestože text v d3 je totožný s d2. Kosinusová podobnost porovnává úhly vektorů (směry), nikoliv jejich délky, čímž je invariantní vůči škálování. Navíc Euklid nefunguje efektivně s invertovaným indexem (nemůžeme přeskočit nulové dimenze).
❓ Co je TF-IDF a proč se používá?
TF (term frequency) = jak často se term vyskytuje v dokumentu (normalizováno). IDF (inverse document frequency) = log(n/df) – termy v mnoha dokumentech mají nízké IDF (podobné stop slovům). TF-IDF = kombinace obou: vysoké pro termy, které jsou důležité v dokumentu, ale vzácné v kolekci. Experimentálně nejlepší váhové schéma.
❓ Jak funguje PageRank a jak se řeší problém rank sinks?
PageRank iterativně přiřazuje rank stránkám dle toho, kdo na ně odkazuje – každá stránka rozdělí svůj rank rovnoměrně mezi stránky, na které odkazuje. Rank sinks (dangling nodes bez outlinků) absorbují rank. Řeší se Google maticí: G = αS + (1–α)E, kde S nahrazuje dangling nodes rovnoměrným odkazem na vše, E zajišťuje "teleportaci" (pravděpodobnost 1–α). α ≈ 0.85.
❓ Jak Threshold algoritmus funguje a proč je efektivnější než Fagin?
TA čte ze seřazených listů paralelně + okamžitě zjišťuje chybějící ranky náhodným přístupem. Udržuje buffer k kandidátů a threshold T (horní mez ranku nepřečtených). Zastaví se, jakmile T ≤ rank k-tého kandidáta. FA zastaví až když k objektů má přečteny všechny ranky ze všech listů – TA zastaví dříve (T podmínka je přísnější). TA potřebuje jen O(k) paměti.
❓ Jaký je princip LSI a co řeší oproti vektorovému modelu?
LSI aplikuje SVD na term-by-document matici A: A = U·Σ·Vᵀ. Ponecháme jen k nejvýznamnějších konceptů → dimenzionální redukce. Dokument je reprezentován v prostoru konceptů (lineárních kombinací termů), nikoliv v prostoru termů. Řeší synonymii (různá slova, stejný koncept) a homonymii (stejné slovo, různé koncepty) – vektorový model s tím neumí.
❓ Co je SEO a jak souvisí s IR modely?
SEO = metodika optimalizace webových stránek pro dobré umístění ve vyhledávačích. Přímé propojení: keyword density = TF v TF-IDF (opakování KW boostuje dimenze vektoru), latentní sémantika (používejme příbuzná KW = jako LSI), budování kvalitních odkazů = PageRank optimalizace. SEO říká: pišme přirozeně pro lidi, ale buďme si vědomi těchto mechanismů.
Okruh 2 · BI-WI.21-22

Vyhledávání v multimediálních databázích, podobnostní vyhledávání podle obsahu, podobnostní dotazování, agregační operátory, indexování metrické podobnosti, aproximativní vyhledávání.

Pokrývá content-based similarity search: feature extraction, vzdálenostní funkce, range/kNN dotazy, metrický model, metrické přístupové metody (MAM) jako LAESA, M-tree, D-index, PM-tree, M-index, aproximativní vyhledávání a multimodální dotazování.

🖼️ Základy multimediálního vyhledávání

Motivace a kontext

  • >99 % webového prostoru tvoří multimediální obsah (fotky, videa, audio)
  • Instagram: 100M fotek/videí/den; Facebook: 350M fotek/den; YouTube: 500 h videa/min
  • Tradiční IR (fulltext) nestačí – jak hledat "podobný obrázek"?

Kontext vs. Obsah

Kontext (annotation) – vysokoúrovňová sémantika: klíčová slova, full text, URL, GPS, tagy, sociální síť
Obsah (content) – raw data: pixely, audio waveform, atd.
  • Kontextové vyhledávání: snadná implementace (fulltext index), ale vyžaduje lidskou anotaci – subjektivní, neúplná
  • Content-based search (CBIR): automatická extrakce vlastností z obsahu, bez potřeby anotace
  • Semantic gap: nízkoúrovňové features vs. vysokoúrovňová sémantika (deep learning tuto mezeru zmenšuje)

Relační vs. Fulltext vs. Multimediální databáze

TypStrukturaSémantikaDotazování
RelačníSilná (typy, schéma)Silná (uživatel zná atributy)SQL
FulltextSlabá (sled slov)Silná (dotaz sdílí model)IR modely
MultimediálníSlabá (digitalizovaný signál)Slabá (jak dotazovat přes pixely?)Podobnostní dotazy

📊 Formalizovaný model podobnostního vyhledávání

Feature extraction (extrakce příznaků): e: X → U – transformuje multimediální objekt z databázového univerza X do deskriptoru v univerzu deskriptorů U
Similarity function (distance): d: U × U → ℝ – míra (ne)podobnosti; blízko = podobné
Query-by-example: dotaz = příkladový objekt; deskriptor porovnán s databází

Deskriptory – typy struktur

  • Vektor – pro histogramy vlastností: x = <0.1, 0.4, 0.3, …>
  • Množina (signature) – vážené centroidy: x = {<c₁,w₁>, <c₂,w₂>, …}
  • Uspořádaná množina – pro časové řady, sekvence: x = <t₁, t₂, …, tₖ>

Typy podobnostních dotazů

  • Range query (q, r): vrátí všechny objekty x ∈ S, kde d(q, x) ≤ r → "koule" v prostoru vzdáleností
  • k Nearest Neighbor (kNN) query (q, k): vrátí k nejbližších objektů k q → "koule" s dynamickým poloměrem
  • Range: vhodný, když uživatel zná sémantiku r (např. edit distance – počet editací). kNN: vhodný pro většinu případů, kdy r není znám.
  • k Reverse Nearest Neighbors (kRNN): vrátí objekty xᵢ, pro které q ∈ kNN(xᵢ, k) → identifikace nejbližšího sousedství; využití v GIS (antény)
  • Similarity join: spojení deskriptorů databáze A a B na základě range nebo kNN predikátu; self-join = detekce duplicit
  • k closest pairs: k dvojic <x,y> ∈ A × B s nejmenší vzdáleností d(x,y)
Proč ne SQL pro multimediální vyhledávání?
Skrytá struktura deskriptorů neumožňuje použití dotazovacího jazyka jako SQL. Jediné dostupné nástroje jsou feature extraction + similarity function. Proto query-by-example paradigma.

📏 Vzdálenostní funkce pro různé typy dat

Vektorové vzdálenosti (pro histogramy, obecné vektory)

  • Minkowski Lₚ vzdálenosti: Lₚ(q, d) = (Σ|wᵢⱼ – wᵢq|ᵖ)^(1/p)
  • L₁ (Manhattan), L₂ (Euklid), L∞ (Chebyshev) = max rozdíl dimenzí
  • Kosinusová vzdálenost – vhodná pro text (úhel důležitý, ne délka)
  • Quadratic form distance – pro histogramy; zohledňuje podobnost binů (perceptuálně podobné barvy)

Adaptivní vzdálenosti (pro signature, obecné množiny)

  • Signature Quadratic Form Distance (SQFD)
  • Earth Mover's Distance (EMD) – "přepravní problém"; jak přetvořit jeden histogram na druhý; drahá O(2ⁿ) v obecném případě
  • Hausdorff distance – max(max_min) vzdálenost; vhodná pro množiny bodů

Sekvenční vzdálenosti (řetězce, časové řady)

  • Edit distance (Levenshtein) – min počet editací (insert, delete, replace) pro transformaci jedné sekvence na druhou
  • Dynamic Time Warping (DTW) – elastické zarovnání časových řad; nedbá na lineární časové posuny
  • Longest Common Subsequence (LCSS)

Výpočetní složitost vzdáleností

SložitostFunkce
O(n)Lₚ, cosine, Hamming
O(n²)Quadratic form, edit distance, DTW, LCSS, Hausdorff, Jaccard
O(nᵏ)Tree edit distance
O(2ⁿ)Obecná Earth Mover's Distance

Příklady deskriptorů pro různá média

  • Obrázky – globální features: Scalable Color (MPEG7) – HSV histogram 256 binů → Haar transform → 16–128D; Color Structure (MPEG7) – pohyblivý strukturovací element; L1 vzdálenost
  • Obrázky – lokální features: SIFT/SURF – interest points/bloby; 128D SIFT vektor = gradient orientation histogramy; signature z vážených centroidů; SQFD nebo Hausdorff distance
  • Obrázky – deep learning: globální vysokodimenzionální vektory; lokální detekce (bounding boxes + třídy)
  • Tvary: centroid-to-contour time series; DTW nebo LCSS
  • Audio: Diskrétní Fourierova transformace → power spectrum; Audio Spectrum Envelope (MPEG7) – lokální feature → spectrogram; vzdálenost pro multidimenzionální časové řady
  • Melodie: noty → 2D body (pitch + timing); Earth Mover's Distance nebo Proportional Transportation Distance

🔺 Metrický prostor a metrické přístupové metody (MAM)

Metrické postuláty

Vzdálenost d: U × U → ℝ je metrika, pokud splňuje:
  • Reflexivita: d(x, x) = 0 – objekt je maximálně podobný sám sobě
  • Nezápornost: d(x, y) ≥ 0; d(x, y) = 0 ⇔ x = y
  • Symetrie: d(x, y) = d(y, x)
  • Trojúhelníková nerovnost: d(x, z) ≤ d(x, y) + d(y, z) – klíčový postulát pro efektivní vyhledávání!

Dolní meze a filtrování (Lower Bounding)

Lower bound: levně spočítaná hodnota d_LB(q, x) ≤ d(q, x). Pokud d_LB(q, x) > r, pak x nemůže být ve výsledku range query (q, r) → x filtrujeme bez výpočtu d(q, x).
  • Pivot p: statický objekt z databáze; předpočítáme d(x, p) pro všechny x ∈ S
  • Trojúhelníkovou nerovností: |d(q, p) – d(p, x)| ≤ d(q, x) → dolní mez z pivotu
  • Čím těsnější dolní mez, tím více objektů filtrujeme → efektivnější vyhledávání
  • Dolní mez nulová = zbytečná (nic nefiltruje)

Filtrování oblastí

  • Kulové oblasti: dvě koule (Oᵢ, r_Oᵢ) a (q, r_q) se nepřekrývají, pokud d(Oᵢ, q) > r_Oᵢ + r_q
  • Hyperplanové oblasti: objekt na jedné straně hyperplány – pokud d(Oᵢ, q) – r_q > d(Oⱼ, q) + r_q, první oblast se nepřekrývá s dotazem

Co je MAM?

Metrická přístupová metoda (MAM, Metric Access Method) – databázová metoda pro rychlé podobnostní vyhledávání v metrickém prostoru. Indexuje databázi S pomocí dolních mezí; předpokládá pouze vzdálenosti (ne obsah objektů).
  • Předpoklad: d je metrika (trojúhelníková nerovnost nutná)
  • Výsledek: pouze část databáze musí být prohledána → efektivní

📋 Pivot tabulky – AESA a LAESA

Základní myšlenka

  • Mapování databázových objektů do "pivot space" – každý objekt x → vektor vzdáleností k pivotům
  • L∞ vzdálenost v pivot space je dolní mez originální vzdálenosti d
  • Výsledek: distance matrix (tabulka vzdáleností objekt × pivot)

AESA (Approximating and Eliminating Search Algorithm)

  • Každý databázový objekt = pivot → čtvercová matice O(|S|²)
  • Empiricky O(1) distance computations pro kNN – extrémně efektivní
  • Problém: kvadratická konstrukce (příliš drahá pro velké databáze)

LAESA (Linear AESA)

  • Pouze k vybraných objektů jako pivoté → matice O(|S|) = lineární
  • Two-phase algoritmus:
    1. Zpracování distance matrix, filtrování objektů pomocí dolních mezí
    2. Nefiltrovaní kandidáti ověřeni výpočtem d(q, oᵢ) v originálním prostoru (refinement)
  • Výběr dobrých pivotů klíčový pro efektivitu

🌳 Hierarchické metrické indexy – GNAT a M-tree

Obecný princip hierarchických MAM

  • Partitioning metrického prostoru → hierarchie metrických oblastí
  • Blízké objekty ve stejné oblasti (přímé dělení)
  • Rekurzivní dělení stejným způsobem jako celá databáze
  • Lokální pivoté (kontext-dependentní, z objektů podstromu)
  • Problémy: velký objem oblastí, překryvy mezi sourozeneckými oblastmi, tvar oblastí

GNAT (Geometric Near-neighbor Access Tree)

  • Hyperplanové dělení prostoru
  • Generalizace gh-tree do n-ary stromu (více pivotů v každém uzlu)
  • Zpracování range query: test překryvu všech oblastí; rekurzivně prohledáváme překrývající se podstromy
  • Filtrování podstromu: pokud nejbližší možný objekt uvnitř oblasti (w.r.t. jednomu pivotu) je vzdálenější než nejbližší w.r.t. ostatním pivotům → filtruj

M-tree (Metric Tree)

M-tree – hierarchie vnořených kulových oblastí; vyvážený, stránkovaný, dynamický index. Inspirace R-stromem generalizovaná na metrické prostory.
  • Hierarchie nested balls (vnořené koule); vyvážená stránkovaná struktura – vhodná pro sekundární uložiště
  • Kompaktní hierarchie nutná – překryvy koulí vedou k neefektivnímu zpracování dotazů
  • Zpracování query: traversal hierarchie, přístup jen k překrývajícím uzlům/podstromům
  • Mnoho potomků: M*-tree, PM-tree, Slim-tree, …

Exact kNN algoritmus pro M-tree

  • Branch-and-bound přístup s priority queue PR (uzly seřazené dle dolní-meze vzdálenosti k q)
  • NN array: k kandidátů + jejich vzdálenosti (k-tý = dynamický query radius rq)
  • Inicializace: rq = ∞, PR = {root}, NN prázdné
  • Traversal: fetchujeme uzel z PR, vkládáme překrývající poduzel do PR, kandidáty do NN
  • NN[k] se zmenšuje → uzly v PR mohou být prunovány dříve než jsou fetchnuty

🗂️ Hashové a hybridní metrické indexy: D-index, PM-tree, M-index

D-index (Hash-based index)

Využívá ball-partitioning split funkci (bps): pro pivot p, medián vzdáleností dₘ a parametr r přiřadí objektu oᵢ: 0 (uvnitř malé koule), 1 (vně velké koule), 2 (v prstenci = exclusion set).
  • Kombinace více bps funkcí → binární kód oblasti (pokud není 2 v kódu)
  • Exclusion set: objekty s 2 v kódu; rekurzivně hashováno dalšími bps → víceúrovňový D-index
  • Výhody: pro malý query radius ≤ jeden bucket na úroveň; pokud celý dotaz leží v oblasti → jen ten bucket
  • Nevýhody: volba parametrů r, dₘ obtížná; nevyvážený index; vhodný jen pro malé query poloměry

PM-tree (Pivot M-tree)

  • M-tree + sada p globálních pivotů
  • Každá kulová oblast dále redukována p prstenci kolem pivotů
  • Menší objem oblastí → lepší filtrování → rychlejší vyhledávání
  • Synergie: M-tree ball partitioning + pivot table filtering

M-index (Metric Index)

  • Kombinuje všechny principy: pivot tables, hyperplane partitioning, ball partitioning, hashing (order-preserving)
  • Inspirace iDistance – mapování do 1D reálné osy
  • n pivotů → n intervalů na reálné ose; každý objekt mapován k nejbližšímu pivotu + vzdálenost jako desetinná část klíče
  • Range query = sada intervalů na reálné ose
  • Víceúrovňový M-index: rekurzivní dělení jako GNAT
  • Implementovatelný jakoukoliv strukturou udržující lineární pořadí (B⁺-strom)

⏱️ Výkonnost MAM – míry nákladů a srovnání

Míry logického nákladu

  • DC (Distance Computations) – počet výpočtů d(*, *); dominantní, když je d drahá (O(n²) a více) nebo databáze fits in RAM
  • I/O cost (disk access) – počet přístupů na disk; dominantní pro velké databáze na HDD/SSD
  • Internal cost – overhead interních datových struktur a algoritmů

Fyzický náklad

  • Realtime (wall clock time) – jediná objektivní míra v reálné aplikaci; ale platform-dependent

I/O analýza: HDD vs. SSD

Příklad: 100 MB index, 4 kB stránky → 25 600 stránek
  • HDD 1990: hierarchický MAM s 1 % přístupů = 18.2 s vs. sekvenční scan 167 s → 9× zrychlení ✅
  • HDD 2020: hierarchický MAM = 1.51 s vs. scan 1 s → MAM pomalejší! ❌ (seek time dominuje)
  • SSD 2020: hierarchický MAM = 0.85 ms vs. scan 45 ms → 52× zrychlení ✅ (SSD random I/O je rychlé)
Závěr: hierarchické indexy dávají smysl na SSD a RAM; na moderním HDD mohou být horší než sekvenční scan.

Internal overhead MAM

  • Složitější MAM → větší interní overhead: pomocné struktury, overhead data v indexu
  • Příklad: inkrementální kNN (Hjaltason&Samet) – optimální v DC, ale velký overhead heap management
  • LAESA s 128 pivoté: zpracování distance matrix = stejně nebo hůře než sekvenční vyhledávání

Aproximativní vyhledávání – motivace a metody

Proč aproximovat?

  • Přesné vyhledávání může být příliš pomalé i s indexováním
  • Multimediální vzdálenostní funkce stejně nedokonale modeluje lidskou sémantickou podobnost → i sekvenční scan je subjektivně přibližný
  • Cíl: výrazné zrychlení za cenu malé ztráty kvality (řád rychlosti, jednotky % ztráty)

Indexovatelnost – Intrinsic Dimensionality

Intrinsic dimensionality: δ(S, d) = μ² / (2σ²), kde μ je střední hodnota a σ² je rozptyl distribuce vzdáleností v S
  • Nízká δ (pod ~10): dataset je dobře strukturovaný, existují tight clustery → MAM efektivní
  • Vysoká δ: dataset špatně strukturovaný, objekty téměř stejně vzdálené → jakýkoliv MAM stejně efektivní jako sekvenční scan!
  • Intrinsicky vysokodimenzionální dataset = "curse of dimensionality"

Typy záruk aproximace

  • Bounded guarantee: každý vrácený výsledek je relevantní do určité míry (nejsilnější)
  • Probabilistic estimate: výsledky relevantní s určitou pravděpodobností (průměrně)
  • No guarantee: jen empirické pozorování ze vzorků (nejslabší)

Aproximativní kNN heuristiky v M-tree

Přesný kNN algoritmus lze upravit pro rychlejší přibližné vyhledávání:

  1. Slowdown of improvements: sledujeme, jak rychle se mění NN[k](čas); pokud první derivativa klesne pod κ → zastavíme
  2. Approximately correct search (ε-kNN): relaxace na (1+ε)kNN; uzly z PR filtrovány agresivněji: rq' = rq/(1+ε)
  3. Good fraction approximation: pro query (q, NN[k]) odhadneme podíl databáze F(r) = Pr{d(x,y) ≤ r} pomocí kumulativního histogramu vzdáleností; pokud F(rq) * |S| ≥ κ → zastavíme
  4. PAC queries (Probably Approximately Correct): kombinace pravděpodobnostního a ε-správného přístupu; garantuje s pravděpodobností κ, že výsledky jsou (1+ε)-NN

Aproximativní vyhledávání v pivot tabulkách

  • Přesné: kontrola všech objektů uvnitř prstenců z pivotů a range query
  • Aproximativní: "zúžení" prstenců parametrem β; garantuje správnost s pravděpodobností δ
  • β = f(počet pivotů p, rozptyl σ² distribuce vzdáleností)

Mapovací techniky (FastMap)

FastMap – předpokládá libovolný metrický prostor jako "neznámý" Euklidovský; souřadnice "obnoveny" pomocí párů pivotů (každý pár = jedna osa) a cosinova zákona.
  1. Vyber k (dimenzí target prostoru)
  2. Pro každou dimenzi: najdi vzdálený pár pivotů (p1, p2) = nová osa
  3. Pro každý objekt x: cₓ = (d(p1,x)² + d(p1,p2)² - d(p2,x)²) / (2·d(p1,p2)) [cosine law]
  4. Aktualizuj d(*,*) na "kolmou" složku (Pythagorova věta) a goto 2
  • Výsledek: přibližná Euklidovská reprezentace → rychlé L₂ dotazy v target prostoru

Permutační indexy

  • Místo ukládání vzdáleností pivotů uložíme jen pořadí pivotů (permutaci) pro každý objekt
  • Kompaktnější: k·n·log₂(k) bitů vs. 32·k·n bitů v pivot table
  • Podobnost permutací: Spearman Rho nebo Spearman Footrule (pozice pivotů v permutaci)
  • Aproximativní dotazy: seřadíme objekty dle permutační podobnosti + volitelný refinement krok

🔀 Multimodální vyhledávání, fúze výsledků a dotazovací jazyky

Popis objektů více modalitami

  • Uživatel specifikuje dotaz více modalitami: klíčová slova + obrázek, více obrázků, obrázek + audio + relační data, atd.
  • Early fusion: všechny modality agregovány v jednom podobnostním modelu → jeden deskriptor na objekt
  • Late fusion: každá modalita reprezentována a dotazována samostatně → N modelů, nutný fúzní krok

Early Fusion – Multi-metric přístup

  • Deskriptor složen z více sub-deskriptorů, každý se svým metrickým prostorem
  • Multi-metric vzdálenost: D(q, x) = Σ wᵢ · dᵢ(q, x) kde wᵢ jsou váhy zadané uživatelem při dotazu
  • Příklad: 3D model → depth buffer descriptor + silhouette descriptor; váhy W zadány při query time

Late Fusion – Skyline operátor

Skyline (Pareto set): podmnožina prvků z S, které nejsou dominovány žádným jiným prvkem v žádném atributu (pro nás: podobnostní pořadí dle různých query příkladů).
  • Problém: velikost skyline neomezena; korelovaná data → malý skyline (a); anti-korelovaná → velký (b)
  • V multimodálním vyhledávání: atributy = similarity orderings dle různých query příkladů → dynamic schema
  • Multi-example similarity skyline query: vrátí objekty, které jsou kompromisem vůči více query příkladům

Late Fusion – Top-k operátor (viz okruh 1)

  • Agregace parciálních rankingů z různých modalit pomocí monotónní funkce f (Min, Max, Avg)
  • Implementace: Fagin nebo Threshold algoritmus
  • Re-ranking: multi-phase querying – postupné zužování kandidátů různými modely

Dotazovací jazyky pro podobnostní vyhledávání

  • Množinové operace nad výsledky podobnostních dotazů (sjednocení, průnik, …)
  • Rozšíření SQL: similarity predicates pro BLOB atributy:
    • range(example.MMattribute, table.MMattribute, r)
    • kNN(example.MMattribute, table.MMattribute, k)
  • Příklad: SELECT Id FROM BioData WHERE range(JohnSmith.Fingerprint, BioData.FingerPrint, 0.01)
  • Similarity join: SELECT Criminal.Id, Citizen.Id FROM Criminal SIMILARITY JOIN Citizen ON range(Criminal.FingerPrint, Citizen.FingerPrint, 0.01)

Doporučovací systémy (Recommender Systems)

  • Collaborative filtering (CF): doporučení na základě podobnosti uživatelů; user-based nebo item-based k-NN; problém sparsity dat, studený start
  • Content-based: matching features položek s preferencemi uživatele; BoW, metrické vzdálenosti (Dice/Jaccard koeficient pro množiny)
  • Knowledge-based: constraint-based nebo case-based; pro specializované domény (drahé zboží, profesionální nástroje)
  • Social PageRank: tweeter je důvěryhodný/populární, pokud ho retweetují jiní populární tweeters
  • Dimenzionální redukce v CF: SVD a PCA pro latentní vkusy/kategorie

Shrnutí okruhu 2 a kontrolní otázky

Shrnutí (5 klíčových bodů)

  • Multimediální vyhledávání = feature extraction (e: X→U) + distance function (d: U×U→ℝ) + query-by-example (range nebo kNN dotaz)
  • Metrický model a trojúhelníková nerovnost umožňuje efektivní filtrování přes pivot-based lower bounds – základ všech MAM
  • MAM typy: flat pivot tables (LAESA), hierarchické (GNAT, M-tree), hashové (D-index), hybridní (PM-tree, M-index) – každý má jiné trade-offs
  • Aproximativní vyhledávání je nutné pro vysokodimenzionální data (curse of dimensionality); heuristiky v M-tree, permutační indexy, FastMap
  • Multimodální vyhledávání: early fusion (multi-metric) vs. late fusion (skyline, top-k, re-ranking); rozšíření SQL o similarity predicates

Kontrolní otázky a odpovědi

❓ Vysvětleme si range query a kNN query. Kdy použít které?
Range query (q, r): vrátí všechny x, kde d(q, x) ≤ r. Vhodné, když uživatel zná sémantiku r (např. edit distance s r=2 = "slova vzdálená max 2 editacemi"). kNN query (q, k): vrátí k nejbližších objektů k q (dynamický poloměr). Vhodné pro většinu případů, kdy r není znám – uživatel nezná sémantiku vzdálenostní funkce.
❓ Jak funguje lower bounding pomocí pivotů v metrickém prostoru?
Vybrán pivot p. Předpočítáme d(x, p) pro všechny x ∈ S. Pro dotaz q: spočítáme d(q, p). Třúhelníkovou nerovností: d(q, x) ≥ |d(q, p) – d(p, x)|. Pokud tato dolní mez > r (query radius), x nelze být ve výsledku range query → x filtrujeme BEZ výpočtu d(q, x). Efektivita závisí na těsnosti dolní meze.
❓ Popišme si M-tree a kNN algoritmus v M-tree.
M-tree: hierarchie vnořených kulových oblastí; vyvážený, stránkovaný (vhodný pro disk). Analogie R-stromu pro metrické prostory. kNN algoritmus: branch-and-bound; priority queue PR (uzly dle LB vzdálenosti k q); NN array (k kandidátů, k-tý = dynamický rq). Traversal: fetchujeme uzel z PR, rozšiřujeme PR o překrývající se poduzly, vkládáme objekty do NN. rq se zmenšuje → agresivnější pruning. Konec: PR prázdný.
❓ Co je intrinsic dimensionality a proč omezuje efektivitu MAM?
Intrinsic dimensionality δ = μ²/(2σ²), kde μ = střední vzdálenost, σ² = rozptyl vzdáleností v databázi. Nízká δ → těsné clustery → dolní meze těsné → velká část databáze filtrována → MAM efektivní. Vysoká δ → objekty téměř stejně vzdáleny → dolní meze blízko skutečné vzdálenosti → téměř nic není filtrováno → MAM stejně neefektivní jako sekvenční scan (curse of dimensionality).
❓ Jaký je rozdíl mezi early a late fusion v multimodálním vyhledávání?
Early fusion: všechny modality sloučeny do jednoho deskriptoru a jednoho index (multi-metric přístup, váhy W zadány při dotazu). Late fusion: každá modalita indexována a dotazována samostatně, výsledky fúzovány: skyline (Pareto set – kompromis dle všech modalit), top-k (Fagin/TA – monotónní agregace), re-ranking (multi-phase). Early: efektivní, 1 index; Late: flexibilnější, N indexů.
❓ Jaké jsou typy aproximativního vyhledávání v M-tree a jaké záruky poskytují?
1) Slowdown of improvements: žádná formální záruka, empirická heuristika. 2) ε-kNN (approximately correct): každý vrácený neighbor je max (1+ε)× dál než skutečný → bounded guarantee na vzdálenost. 3) Good fraction approximation: zastaví se když odhadnutá frakce databáze v query ball ≥ κ → probabilistic estimate. 4) PAC queries: s pravděpodobností κ budou výsledky (1+ε)-NN → kombinace probabilistic + bounded.
❓ Co je MPEG7 a jak se liší globální a lokální features pro obrázky?
MPEG7 (ISO/IEC 15938): standard pro definici vizuálních, audio a pohybových deskriptorů. Globální features: popisují celý obrázek najednou (Scalable Color – HSV histogram + Haar; Color Structure – pohyblivý element). Výhody: rychlé, kompaktní. Nevýhody: neodolné vůči posunutí, rotaci. Lokální features: popisují lokální záchytné body (SIFT/SURF – 128D gradient histogramy v interest points). Výhody: robustnost vůči transformacím, okluzi. Nevýhody: dražší, složitější indexování (signature → Hausdorff/SQFD).