Információ Visszakeresés

Slides:



Advertisements
Hasonló előadás
A Floyd-Warshall algoritmus
Advertisements

Keresés a számítógépes katalógusokban
A Savaria Egyetemi Könyvtár Katalógusa Böngészés Keresés Találatok megjelenítése Adatbázis választás Olvasói tranzakciók.
Készítette: Kosztyán Zsolt Tibor
Nevezetes algoritmusok
Miskolci Egyetem Informatikai Intézet Általános Informatikai Tanszé k Pance Miklós Adatstruktúrák, algoritmusok előadásvázlat Miskolc, 2004 Technikai közreműködő:
Programozási tételek, és „négyzetes” rendezések
Orbán Éva SZIE Állatorvos-tudományi Könyvtár Hagyományos és új terápiás eljárások az információhiány kezelésére Tanulságos esetek az Állatorvos-tudományi.
 A Web, kezdeti időszakában csak a szöveges file-okat kezelte.  Ma teljes körű multimédia szolgáltatásokat nyújt  Filmet,  Zenét,  Képeket nézhet.
Hatékonyságvizsgálat, dokumentálás
SZENT ISTVÁN EGYETEM GAZDASÁG- ÉS TÁRSADALOMTUDOMÁNYI KAR TUDOMÁNYOS DIÁKKÖRI KONFERENCIA NOVEMBER 25. AUTO-SZŰRŐ FEJLESZTÉSE OLAP JELENTÉSEK UTÓLAGOS,
Többfelhasználós és internetes térkép kezelés, megjelenítés.
Az adatábrázolás, adattárolás módja a számítógépekben
Készítette: Mester Tamás METRABI.ELTE.  Egy bemeneten kapott szöveg(karakter sorozat) méretét csökkenteni, minél kisebb méretűre minél hatékonyabb algoritmussal.
MI 2003/ A következőkben más megközelítés: nem közvetlenül az eloszlásokból indulunk ki, hanem a diszkriminancia függvényeket keressük. Legegyszerűbb:
Műveletek logaritmussal
Számítástudományi módszerek a webes szolgáltatásokban Rácz Balázs október 20.
4. VÉGES HALMAZOK 4.1 Alaptulajdonságok
Hatékony gyorsítótár használata legrövidebb utak kereséséhez Bodnár István, Fodor Krisztián, Gyimesi Gábor Jeppe Rishede Thomsen, Man Lung Yiu, Christian.
Információ kezelés Az információ visszakeresésének lehetőségei.
Adatbázis-kezelés.
7. előadás (2005. április 12.) Láncolt lista File kezelés 1.
4. előadás (2005. március 8.) Pointerek Pointer aritmetika
Bayes hálók október 20. Farkas Richárd
Szöveg- és Webbányászat
Rangsorolás tanulása ápr. 24..
Papp Róbert, Blaskovics Viktor, Hantos Norbert
A digitális számítás elmélete
ADATBÁZISOK
Huffman Kódolás.
Prímrekord, 2005 Csajbók Tímea, Kasza János Komputeralgebra Tanszék ELTE IK január
Regresszióanalízis 10. gyakorlat.
Aki keres, az talál? Igen, talál. Ki ezt, ki azt, de egy szót beütve a google keresőbe (pl.) mindig ugyanazt, hacsak nem kerültek fel új honlapok az adott.
Miskolci Egyetem Informatikai Intézet Általános Informatikai Tanszé k Pance Miklós Adatstruktúrák, algoritmusok előadásvázlat Miskolc, 2004 Technikai közreműködő:
Lineáris egyenletrendszerek (Az evolúciótól a megoldáshalmaz szerkezetéig) dr. Szalkai István Pannon Egyetem, Veszprém /' /
Operációs Rendszerek II.
Szemantikus keresők.
Összetett adattípusok
Matematika feladatlap a 8. évfolyamosok számára
1 AAO folytatás ++ Csink László. 2 Rekurzív bináris keresés (rendezett tömbben) public static int binker(int[] tomb, int value, int low, int high) public.
3.3 Forgatónyomaték.
Belső állapotú bolyongások által meglátogatott pontok száma Nándori Péter (V.) Témavezető: Dr. Szász Domokos (BME MI)
Lineáris algebra.
Adatbázis alapfogalmak
Algoritmizálás, adatmodellezés tanítása 8. előadás.
Alapfogalmak, módszerek, szoftverek
Az internetes keresési módszerek
HTML ÉS PHP (Nagyon) rövid áttekintés. ADATBÁZISRENDSZEREK MŰKÖDÉSI SÉMÁJA Felh. interakció DB Connector MySQL ? A gyakorlaton:
Nagy Szilvia 13. Konvolúciós kódolás
Ismerkedjünk tovább a számítógéppel
Gráfok ábrázolása teljesen láncoltan
Valószínűségszámítás II.
Hibajavító kódok.
Bevezetés a szemantikus technológiákba. Szemantikus technológiák  Rendszerelemek – jelentés – logikai formula  Elvárások – logikai formula  Az elvárások.
Gombos GergőKorszerű Adatbázis 2012/13 tavasz 2 Kik használják?
Csoportkeresési eljárások Vassy Zsolt. Tematika Girvan Newman klaszterezés Diszkrét Markov lánc: CpG szigetek Rejtett Markov lánc ADIOS.
Struktúra predikció Struktúra lehet Felügyelt tanulási probléma
Algoritmusok és adatszerkezetek
ifin811/ea1 C Programozás: Hardver alapok áttekintése
Memóriakezelés feladatok Feladat: 12 bites címtartomány. 0 ~ 2047 legyen mindig.
Fájlszervezés Adatbázisok tervezése, megvalósítása és menedzselése.
Adatkeresés az interneten
Google Scholar Wolfram Alpha Scirus Készítette: Varga Ádám.
Táblázatkezelés Képletek és függvények. Képletek A képletek olyan egyenletek, amelyek a munkalapon szereplő értékekkel számításokat hajtanak végre. A.
Bevezetés Adatbázisok használata. Mi is az adatbázis? Az adatbázisok ma már az élet számos területén alapvető fontossággal bírnak (Google, Amazon, Flickr,
Készítette: Kiss András
Az információ.
Adatbázis-kezelés 2. Relációs adatbázisok.
Algoritmusok és Adatszerkezetek I.
Cache példák 2019 (IMSC).
Előadás másolata:

Információ Visszakeresés A diák nagyban támaszkodnak a Stanford Egyetem „Information Retrieval and Web-mining” kurzusának anyagára: http://www-csli.stanford.edu/~schuetze/information-retrieval-book.html

Áttekintés Mi az IR? Indexelés Rangsorolás Google röviden Egyszerű index Invertált index, Gamma-kódolás Rangsorolás TF-IDF rangsor PageRank Google röviden Architektúra További rangsorolási szempontok (amiket nem veszünk részletesen)

Információ Visszakeresés IR alapprobléma Adott egy korpusz (dokumentumok halmaza, internet) Felhasználó az információigényét leginkább kielégítő dokumentumokat keresi Lekérdezést fogalmaz meg Cél a lekérdezésnek megfelelő dokumentumok listája

Egy IR rendszer legfontosabb jellemzői Indexelés sebessége (nem fontos) Lekérdezés sebessége Lekérdező nyelv kifejezőereje (mit kérdezhetünk meg és mit nem?) Pontosság (a legfontosabb, de a mérése összetett feladat)

Egy keresőmotor sémája

Indexelés vs. Adatbázis Szövegek kollekciója feletti keresést támogat De nem adatbázis! Sok minden nem kell amit egy adatbázisszerver elvégez Tranzakciók Adatvesztés A szöveget (az adatot) nem tároljuk, csak indexet Optimalizálás szöveges lekérdezésre, nem pl. SQL-re

Egyszerű index Szó-dokumentum mátrix (Di,j : i. szó szerepel-e a j-edik dokumentumban)

Egyszerű indexelés Gyors Az élet nem ilyen szép Kivitelezhetetlen 1 millió dokumentum, ~1000 token/dok, ~6byte/token ~6GB korpusz Legyen 500K különböző szóalak 500K x 1M mátrix ~60 GB index!

Invertált index A szó-dokumentum mátrixban ~1 milliárd egyes van csak! (azaz rendkívül ritka) Egyszerűbb, és jobb reprezentáció, ha csak az 1-esek pozícióit tároljuk ekkor invertált indexről beszélünk

Invertált index Minden T tokenre, tároljuk a T-t tartalmazó dokumentumok listáját. Miben tároljuk? tömb Brutus 2 4 8 16 32 64 128 Calpurnia 1 2 3 5 8 13 21 34 Caesar 13 16 Mi van akkor ha a Caesar szó bekerül a 14-es dokumentumba?

Listás megvalósítás jobb Dinamikus helyfoglalás (különböző gyakoriságú szavak!!!)  Könnyű beszúrás  Pointerek extra helyfoglalás  2 4 8 16 32 64 128 Szótár Brutus Calpurnia Caesar 1 2 3 5 8 13 21 34 13 16 Napló Dokumentum ID szerint rendezve!

Invertált index létrehozása Dokumentumok Friends, Romans, countrymen. Tokenizáló Token stream Friends Romans Countrymen Nyelvi modulok Normalizált tokenek friend roman countryman Indexelő Invertált index friend roman countryman 2 4 13 16 1

Az index használata Hogyan dolgozunk fel 1 lekérdezést? Milyen jellegű lekérdezéseket kezelünk? Mit indexelünk? Mindent, vagy csak fontos szavakat? (Mi fontos?) Stopword lista: a leggyakoribb szavak elhagyhatók az indexből (sok hely, kevés haszon) pl., the, a, an, of, to … Nyelvfüggő elem, minden nyelvre kell stopword lista.

Lekérdezés (naplólisták egyesítése) Párhuzamosan megyünk végig a két naplólistán, időigény így arányos a listák összhosszával 2 34 128 2 4 8 16 32 64 1 3 5 13 21 4 8 16 32 64 128 Brutus Caesar 2 8 1 2 3 5 8 13 21 34 Ha a két lista hossza m és n, az összefésülés időigénye O(m+n) Fontos: a listák dokID szerint rendezve legyenek!!

Mit kapunk, milyen áron? Logikai (igen/nem) keresésre Csak pontos egyezést ad vissza Nincs rangsorolás Sokáig ez volt az uralkodó technológia Becslés a méretre? Vegyük az előző példát: 1M dokumentum, átl. 1000 token hossz, átl. 6 byte/szó, ~500K különböző token

Becslés az invertált index méretére Két különálló tényező szabja meg a méretet Szótár mérete Naplók mérete Különböző dolgok jönnek szóba a méret optimalizálásakor Szótárnál: pl. szótövezés (magyarban különösen fontos!) Naplónál: dokID-ket tárolunk, tömörítés!

Napló tárolása Tároljuk rendezve a dokumentum ID listát! Ekkor elegendő csak az ID-k különbségeit tárolni („lyukak”) ezek várhatóan átlagosan sokkal kisebb számok Brutus: 33, 47, 154, 159, 202, … Brutus: 33, 14, 107, 5, 43, … Használjunk változó kódhosszúságú kódolást! Calpurnia szó átlag minden egymilliomodik dokumentumban fordul elő, akkor azt log2 1M = ~20 biten szeretnénk tárolni az szó szinte minden dokumentumban benne van, ezt az infot jó lenne ~1 bit helyen tárolni

γ kódolás K számot egy <hossz, eltolás> párral írjuk le hossz érték unáris kódolású (a számot leíró kód (eltolás) hosszát adja meg) az eltolás bináris kódolású (megadja magát a számot) K kódja bites unáris kód bites bináris kód ahol:

γ kódolás Példák: A kód egy kettes szorzó mellett optimális! 9 = <1110,001> (7 bit) 23 = <11110, 0111> (9 bit) 1040 = <11111111110,0000010000> (21 bit) A kód egy kettes szorzó mellett optimális! Ennél számottevően jobb tömörítést csak úgy érhetünk el, ha rendelkezünk információval a számok eloszlásáról

Zipf törvénye A k-adik leggyakoribb szó gyakorisága nagyságrendileg ~1/k

Becslés Zipf törvénye alapján A leggyakoribb szó N dokumentumban fordul elő (minden lyuk 1-es) 2. leggyakoribb N/2 dokumentumban (lyukak átlagosan 2 nagyságúak) … k-adik leggyakoribb N/k dokumentumban (átlagos lyuk nagyság N/k), bit tárolásra Összegezve k = 1 … 500 ezerig Összegzést végezzük úgy, hogy k darab csoportot tekintünk: az i-edik csoportra , elemű, egyenként max . N = 1 millió, i = 1 … 19-re szummázva kb 340 millió bit, azaz ~45 MB az index Napló részének mérete.

Szótár mérete, első gondolat Fix hosszú bejegyzések tömbje 500K token; 28 byte/token = ~14MB. 20 bytes 4 bytes each

A fix méret pazarló! Angolra: Átlagos szóhossz írott szövegben: 4,5 byte Átlagos hossza az angol szavaknak: 8 karakter Ráadásul a fix méret amúgy is problémás lehet! „megszentségteleníthetetlenségeskedéseitekért”

Szótár tömörítése A szótár egyetlen karakterlánc Teljes hossz = Pointer a szó kezdetére Köv. pointer mutatja a szó végét ….systilesyzygeticsyzygialsyzygyszaibelyiteszczecinszomo…. Teljes hossz = 500KB x 8 = 4MB Pointerek 4M pozícióra log24M = 22bits = 3bytes Binary search these pointers

Index mérete Napló Szótár Index Kb 45 MB 4 byte gyakoriságra 4 byte a Napló pointer 3 byte a szó pointer Átl. 8 byte szavanként a szóláncban 500K token  ~9.5MB Index ~55 MB

Indexméret Szótövezés / kis-nagybetűs alak Stopwords Tokenek számát ~40%-al Pointerek számát 10-20%-al Méretet ~30%-al Stopwords 30-as szabály: ~30 szó tesz ki ~30%-ot az írott szövegekben! A leggyakoribb szavak kivágása ~25% helyspórolást hozhat

Pár szó a lekérdezés sebességéről Napló-listák lineáris időben egyesíthetők Optimalizálás: Célszerű a rövid listákkal kezdeni a műveletek elvégzését Ugrólisták használata (index mérete növekszik így)

Feldolgozás ugrólistákkal 16 128 128 2 4 8 16 32 64 8 31 31 1 2 3 5 8 17 21

Invertált index vége Célszerű tárolni a dokumentumban a szóalak helyét Kifejezés alapú lekérdezés támogatására Ezzel az előbb nem törődtünk Nagyobb index, de ezt használják a gyakorlatban Alternatívája a bi- trigram alapú indexelés

Rangsorolás Általában jó sok dokumentum illeszkedik 1-1 lekérdezésre Több milliárdos korpuszból milliós nagyságrendű találat Fontos, hogy a dokumentumokat rangsoroljuk, relevancia szerint!

tf-idf rangsorolás Szavak súlya a tf, és idf szorzata: Index készítésekor legyártható a súlyozás „Ezt tároljuk el a szó-dokumentum mátrixban” A lekérdezést is egy mini dokumentumra nézve a 2 vektor koszinusza adja a hasonlóságot:

PageRank Ki a legbefolyásosabb ember? Az Egyesült Államok elnöke Az arab liga elnöke A világbank elnöke Ha én mind a hármat jól ismerem? Egy adott ember fontossága függ az ismerősei befolyásától is! Ez a web-gráfra is igaz A jó lapokra sok (jó) lap mutat rá linkekkel!

Véletlen szörföző heurisztika Egy robot véletlen bolyongást végez a weben Linkek mentén lép tovább Beragadást elkerülendő kis eséllyel (p) véletlen lapra lép tovább Hosszú idő után az egyes lapok látogatottsága beáll egy stabil értékre, ami nagyon jól használható a lap fontosáságának mérésére

Bolyongás A véletlen bolyongások Markov láncokkal modellezhetők Az egyes állapotok közti átmenetek valószínűségeit sorsztochasztikus mátrixszal írhatjuk le

Az általunk leírt esetben Minden állapotból mindegyikbe vezet él Minden lépésben bármely állapotban >0 valószínűséggel lehetünk éppen Irredúcibilis Markov lánc A pontok hosszú távú látogatottsága egyértelműen definiált Mindegy honnét indultunk

PageRank Az oldalak rangja legyen a hosszú távú látogatottsági rátájuk! Ez pontosan a web-gráfot leíró átmeneti mátrix sajátvektora lesz Lekérdezésfüggetlen rangsor Nehéz spammelni A rangsorolást visszavezettük a sajátérték-sajátvektor problémára Kiszámítható!

PageRank vektor számítása Legyen a = (a1, … an) a legnagyobb sajátértékhez tartozó sajátvektor (PageRank) Ha az aktuális pozíció a, akkor a következő lépésben aP a helyzetünket leíró vektor Ha a az egyensúlyi állapot, akkor a=aP Megoldva a mátrixegyenletet kapjuk a-t Tehát a a P mátrix baloldali sajátvektora (mely épp a legnagyobb sajátértékhez tartozik)

Hatványiteráció Ismert algebrai módszer Véletlen vektorból indulva minden iterációban a vektorunkat szorozzuk az átmeneti mátrixszal Megállunk ha a vektor már alig változik (stabil) Bárhonnan indulunk, a bolyongást leíró vektor a-hoz tart Tehát induljunk egy egy weblapról (mondjuk x=(10…0)). Egy lépés után xP írja le az helyzetünket (valószínűségek) Két lépés után xP2 , utána xP3 … Kellően nagy k-ra, xPk = a. Algoritmus: szorozzuk x-et a P mátrixszal amíg a szorzat kellően nem stabilizálódik

PageRank értékelése A lekérdezéstől független a lapok sorrendje Nehéz spammelni Nagyon sikeresnek bizonyult Nem önmagában, hanem sok már heurisztikával karöltve használják

Adatbázisuk ~25-30 milliárd indexelt dokumentumot tartalmaz A rendszert egyszerű PCk szolgálják ki Tízezres nagyságrendű géppark ~5PB RAM Tárolják az indexelt dokumentumokat (offline feldolgozás) Tömörítő (ZIP) algoritmus optimalizálása /sebesség-tömörítési ráta/ Biztonság: szándékos redundancia (minden dokumentum 3-6 példányban) Saját linux rendszer Sikerük: Testreszabott hardversturktúra Nagyon jó rangsor

Google index További, rangsorolásra használt elemek Kiemelt helyen lévő előfordulás (pl. cím, hivatkozó szöveg /anchor-text/, …) Query/Hit relevancia (milyen gyakran választják az adott találatot) Hubs/authorities (hub – forrás; authority – szakértő) a gráfstruktúrát használja, de másképp mint a PageRank Stb. a kulcs a visszafejthetetlenség a jó rangsor optimalizálás

Hubs-Authorities Hub pontszám h(x) – Attól függ milyen jó szakértőket linkelek Authority pontszám a(x) – Attól függ mennyi, milyen jó forrás mutat rám  Iteratív módszer

Here is a great picture of a tiger Anchor text elemzés A hivatkozó szöveg a linkelt dologra nézve reprezentatív! Here is a great picture of a tiger Cool tiger webpage