460 likes | 670 Views
Ontologie Jaroslav Ciml. Cíle a motivace (1). Chceme model pro vyhledávání nejen textových dokumentů, ale i audia a videa Chceme vysokou přesnost i úplnost
E N D
Cíle a motivace (1) • Chceme model pro vyhledávání nejen textových dokumentů, ale i audia a videa • Chceme vysokou přesnost i úplnost • Chceme vyhledávání, které není jen založené na shodě termů, ale zohledňuje také sémantiku (zvýšení přesnosti) – mnoho dokumentů může obsahovat hledané slovo, ale dokument sémanticky neodpovídá dotazu uživatele • Pokud při klasickém vyhledávání automaticky rozšiřujeme dotaz o nové termy, snižuje se přesnost
Cíle a motivace (2) • Chceme kvalitní řešení pro krátké dotazy – dotaz obsahuje průměrně 2.2 termy – špatné výsledky vektorového modelu • Celkem nás zajímají 3 typy dotazů • neurčité (obecné) dotazy • konkrétní (specifické dotazy) • Kontextové dotazy • Provedeme srovnání s vektorovým modelem pomocí F score – veličina zohledňující přesnost i úplnost
Idea • Budeme indexovat dokumenty podle jejich obsahu, nikoli podle klíčových slov, která se v nich vyskytují • Indexem bude grafová struktura – ontologie - obsahující tzv. koncepty • Koncepty tvoří vrcholy orientovaného grafu, hrany jsou různé typy vztahů mezi koncepty • Ontologie může být obecná nebo zaměřená na nějakou konkrétní oblast (doménová ontologie)
Další program • Algoritmus pro konverzi slov na jejich význam pro přiřazení konceptu dokumentům a dotazům uživatele • Algoritmus pro odstranění nejednoznačností – vyřazuje nerelevantní koncepty • Algoritmus, který se znalostí ontologie, přeloží dotaz (v přirozeném jazyce) na SQL dotaz • Experimentální výsledky – srovnání přesnosti a úplnosti s vektorovým modelem • Závěr, možnosti a další vývoj této metody
Historie • Ontologie jsou obecně používány k zvýšení přesnosti a úplnosti • Řeší typicky dva problémy • rozšíření dotazu o sémanticky podobné termy • měření vzdáleností mezi koncepty • Příklad: obecná ontologie WordNet • vytvořená především pro zvýšení úplnosti • dosahuje lepších výsledků pouze pro krátké dotazy • Neobsahuje dostatek informací – někdy nekvalitní výsledky
Ontologie (1) • Ontologie představuje zjednodušený pohled na jistou oblast zájmu, kterou chceme modelovat • V ontologii definujeme reprezentativní termy – koncepty • Mezi koncepty existuje několik typů vztahů • Jako příklad pro další výklad použijeme ontologii zaměřenou na oblast sportu
Ontologie (2) • Nevýhody obecných ontologií • vytváří model světa v příliš hrubé zrnitosti • Příliš mnoho konceptů vede k problémům s rozpoznáváním řeči
Ontologie (3) • Ontologie je reprezentována orientovaným acyklickým grafem • Každému vrcholu grafu odpovídá koncept • jednoznačné pojmenování v rámci celé ontologie • konceptu je přiřazen seznam synonym • Některá slova mohou patřit do více seznamů synonym (např.: 'Bryant Kobe', 'Bryant Mark', 'Reeves Bryant') – s tímto spojené problémy řeší algoritmus pro odstranění nejednoznačnosti
Vztahy • Hrany v grafu reprezentují vztahy mezi koncepty • Rozlišujeme tři typy vztahů • Generalizace / specializace (IS-A) • „býti instancí“ (Instance Of) • „býti komponentou“ (Part-Of) • Analogie s objektově orientovaným programováním
IS-A (1) • př.: 'NFL' – 'profesionální' (NFL je speciální případ profesionální ligy) • Pro naše účely rozlišujeme dva typy generalizace • úplná (obecnější koncept lze chápat jako sjednocení konkrétnějších konceptů), př.: 'profesionální' – 'NBA', 'ABL', 'CBA' • částečná
IS-A (2) • Úplná generalizace je důležitá pro algoritmus generující SQL dotazy – koncepty, pro které existuje úplný výčet speciálních konceptů (značíme je NPC – nonparticipant concept), se nestávají přímo součástí SQL dotazu
Instance, komponenty • Instance (Instance-Of) • př.: všechny vztahy 'hráč' – konkrétní jméno hráče ('Wayne Gretzky'), všechny vztahy 'tým' – konkrétní název týmu ('NY Rangers') • Komponenty (Part-Of) • př.: 'NFL' je část konceptu 'fotbal', 'Wayne Gretzky' je část konceptu 'NY Rangers'
Disjunktní koncepty (1) • Požadujeme, aby koncepty mající stejného předka v hierarchii IS-A vztahů byly sémanticky disjunktní (mohou obsahovat stejná slova v seznamech synonym) • Tato vlastnost pomáhá odstranit nejednoznačnost při převodu dotazu uživatele na koncepty (snadno rozlišíme např. koncepty 'Professional', 'Non Professional')
Disjunktní koncepty (2) • Každému dokumentu budeme přiřazovat jeden či více konceptů, ale vždy jen jeden z množiny konceptů, které jsou navzájem disjunktní • Pro zbývající dva typy vztahů toto omezení neexistuje, ale snaha o jeho dodržení může vést k lepší přesnosti • Př.: hráč hrající ve více ligách (vztah Part-Of) • reprezentace hráče více koncepty – problém s modifikacemi ontologie (použito v experimentální implementaci) • hráč má jediný koncept – porušení disjunktnosti
Vytvoření ontologie • Ontologie je (zatím) vytvářena manuálně • Experimentální ontologie se sportovní tematikou byla částečně převzata z Yahoo (rozsáhlejší obecnější struktura), část konceptů (zejména z vrcholu hierarchie) byla vytvořena ručně • Testování úplnosti ontologie – 90.5% testovaných audio objektů se podařilo asociovat s alespoň jedním konceptem
Přiřazení konceptů k dokumentu (1) • Každému audio objektu je přiřazena množina klíčových slov • Výběr konceptů je založen na porovnání těchto slov se seznamem synonym, který je přiřazen ke konceptu • Každému vybranému konceptu přiřadíme skóre podle úplné nebo částečné shody • Jedno slovo může být asociováno s více koncepty, každému dokumentu lze přiřadit více konceptů – potřeba odstranit nejednoznačnost
Přiřazení konceptů k dokumentu (2) • K odstranění nejednoznačností využijeme • kontext klíčových slov (např. slova 'base', 'bat', 'glove' mají více významů, ale pohromadě se téměř jistě týkají baseballu) • vzdálenost jednotlivých konceptů • Pokud se mezi kandidáty na popis audio objektu, vyskytnou koncepty ve vztahu předek potomek (IS-A), lze si zapamatovat • pouze obecný koncept – ztráta přesnosti • pouze specifický koncept – ztráta úplnosti (v našem případě použita tato možnost)
Uložení audio objektů V relační databázi Audio(Id, Začátek, Konec, Popis, Data) Meta(Id, Označení)
Dotazování • Předpokládejme, že dotazy jsou vyjádřeny přirozeným jazykem • Z dotazu uživatele se odstraní nevýznamová slova (stop words) a zbylá se porovnávají se seznamy synonym jednotlivých konceptů • K takto vybraným konceptům přidáme další pomocí prohledávání grafu ontologie do hloubky nebo do šířky • Takto vybrané koncepty označme QC (Query Concepts)
Odstranění nejednoznačnostíaneb prořezání seznamu konceptů • Myšlenka • dvě fáze: přiřazení skóre jednotlivým konceptům, prořezání seznamu konceptů • koncepty, které jsou blízké (ve smyslu vzdálenosti v grafu ontologie) vzájemně posilují svá skóre • čím nižší skóre, tím větší šance na vyřazení v závěrečném prořezávání
Příklad Dotaz: 'Řekni mi o týmu Lakers' QC: 'tým', 'Los Angeles Lakers' (tým v NBA), 'Tim Laker' (hráč Pittsburgh Pirates) nejednoznačnost: 'Los Angeles Lakers', 'Tim Laker' 'Los Angeles Lakers' je instance konceptu 'tým', ale 'Tim Laker' nemá přímou vazbu s ostatními dvěma koncepty koncept 'Los Angeles Lakers' bude v seznamu ponechán, 'Tim Laker' bude vyřazen
Formální popis (1) S každým konceptem je spjat seznam synonym (l1,...,lj,...ln) každý prvek seznamu může být • jedno slovo ('tým') • více slov ('Tim Laker') mějme pevně daný dotaz uživatele pro každé QCi a každé lj spočteme veličinu
Formální popis (2) Pro každý koncept QCi uvažujme pouze největší hodnotu Escore a označme ji jako Scorei toto skóre se ještě zvýší propagací skóre z blízkých konceptů sémantickou vzdáleností konceptů QCi, QCj rozumíme nejkratší orientovanou cestu mezi těmito koncepty (nezáleží, zda vede od i-tého konceptu k j-tému či naopak), značíme SD(QCi, QCj)
Propagace skóre Celkové skóre konceptu QCi dostaneme jako
Příklad Dotaz: 'Řekni mi o týmu Lakers' QC: 'tým', 'Los Angeles Lakers', 'Tim Laker' koncepty získají následující skóre: • 'tým' 1.75 = 1.0 + 0.5 / 1 + 0.5 / 2 • 'Los Angeles Lakers' 1.5 = 0.5 + 1.0 / 1 • 'Tim Laker' 1.0 = 0.5 + 1.0 / 2
Prořezávání – algoritmus • Pro každý koncept QCi spočti Si • Setřiď koncepty podle Si sestupně • Najdi všechny skupiny nejednoznačných konceptů ('Los Angeles Lakers', 'Tim Laker') a z každé skupiny zachovej pouze koncept s nejvyšším skóre Si • Zachovej pouze specifické koncepty a odstraň všechny odpovídající koncepty obecné • Generuj SQL dotaz
Generování SQL dotazu Koncepty se mapují na selekce Pro každý koncept QCi se provedou následující akce Jestliže QCi není typu NPC (NPC = koncept mající úplný rozklad pomocí IS-A vztahů), přidej označení konceptu QCi do disjunkce v klauzuli WHERE Prohledáváním do hloubky či šířky najdi všechny dostupné (po cestě z libovolných hran) koncepty, které nebyly dosud zpracovány a na každý zavolej tento algoritmus rekurzivně
Příklad Dotaz: 'Řekni mi o Kobe Bryantovi' Před generováním SQL dotazu zůstal jediný koncept 'Kobe Bryant' (má označení 'NBAHráč9'), který je navíc v ontologii listem SELECT Začátek, Konec FROM Audio a, Meta m WHERE a.Id = m.Id AND Označení = 'NBAHráč9'
Příklad Dotaz: 'Řekni mi o Los Angeles Lakers' Po prořezání zůstane jediný koncept 'Los Angeles Lakers' Rekurze v generování SQL dotazu způsobí přidání všech hráčů Lakers do klauzule WHERE SELECT Začátek, Konec FROM Audio a, Meta m WHERE a.Id = m.Id AND (Označení = 'NBATým11' OR Označení = 'NBAHráč9' OR Označení = 'NBAHráč10'...)
Příliš dlouhé disjunkce Pro dotazy nad obecnými koncepty může v důsledku rekurze vzniknout velmi dlouhá disjunkce za WHERE Dotaz 'Řekni mi o NBA' vygeneruje 421 konceptů Řešením může být volba vhodných označení jednotlivých konceptů – např.: 'NBATým11', 'NBAHráč9',... SELECT Začátek, Konec FROM Audio a, Meta m WHERE a.Id = m.Id AND Označení LIKE '%NBA%'
Konjunkce v dotazech • Zatím všechny vybrané koncepty vytvářely v klauzuli WHERE disjunkci • Pokud jeden koncept upřesňuje druhý ('profesionální fotbal') je přirozenější uvést koncepty ve tvaru konjunkce • Lze využít informace o disjunktnosti některých konceptů k zjednodušení dotazu
Zpracování audia • Chceme k audio objektu přiřadit množinu klíčových slov • Tento proces probíhá ve dvou fázích • rozdělení záznamu na segmenty • podle odmlky v řeči • podle změny mluvčího • rozpoznání slov pro jednotlivé segmenty • Každý segment představuje řádek v tabulce Audio(Id, Začátek, Konec, Popis, Data)
Experimentální implementace • Ontologie z oblasti sportu • Srovnání s vektorovým modelem • Databáze obsahuje 2481 audio objektů (formát wav, ram) a 7000 konceptů • Průměrná délka záznamu – více než 5 minut • Jednotlivým záznamům přiřazeno v průměru 25 klíčových slov, podle nichž se vytvářely asociace s koncepty • Zlepšení výkonu • udržování obecných konceptů v hlavní paměti • hašování
Vektorový model • K určení váhy jednotlivých termů se použila frekvence termu (TF) a inverzní frekvence termu v dokumentech (IDF) • Podobnost vektorů byla stanovena pomocí kosinové míry
Analytické výsledky (1) Předpokládejme, že dotaz uživatele obsahuje jediné slovo W1 pro vektorový model dostáváme
Analytické výsledky (2) V modelu založeném na ontologii dotaz expanduje na koncepty C1,...,Cn a dostaneme vztah
Analytické výsledky (3) • Úplnost je zřejmě lepší v modelu s ontologií • Přesnost je stejná v nejlepším případě (tj. koncepty C1,...,Cn vydají na výstup jen relevantní dokumenty) • V nejhorším případě (všechny dokumenty získané pomocí C2,...,Cn jsou irelevantní) je přesnost modelu s ontologií výrazně horší • Analogicky F score vychází lépe pro ontologie v nejlepším případě a lépe pro vektorový model v nejhorším případě • V praxi se dokážeme přiblížit nejlepšímu případu
Empirické výsledky (1) • Srovnáváno je pouze 9 dotazů, které vycházejí nejhůře pro model s ontologií • 9 dotazů je po třech rozděleno do kategorií • obecné dotazy ('Řekni mi o basketbalu') • specifické dotazy ('Řekni mi o Los Angeles Lakers') • kontextové dotazy ('Řekni mi o týmu Lakers') • Srovnávají se přesnost, úplnost a F score
Empirické výsledky (5) • Model založený na ontologiích dosahuje výrazně lepší • úplnosti pro obecné dotazy, protože při rekurzi je dotaz obohacen o potomky obecného konceptu • přesnosti pro kontextové dotazy, protože pomocí kontextu je schopen vybrat správný význam víceznačných slov
Další cíle • Nastavitelnost generování metadat pro audio objekty • Automatické generování ontologií • Jednoduchá modifikovatelnost ontologie (přestup hráče do jiného týmu znamená odstranění a vytvoření nové vazby) • Získávání přesnějších metadat pro audio záznamy – např. podle intenzity hlasu • Uživatelské profily