1 / 27

Algoritamski Aspekti razvoja i implementacije Web pretraziva č a

Algoritamski Aspekti razvoja i implementacije Web pretraziva č a. Diplomski rad iz predmeta Pretra ž ivanje i istra ž ivanje podataka na Internetu RI5PIP s tudent: Aleksandar Bradi ć, alek.br @ gmail.com m entor: prof. dr. Veljko Milutinovi ć, vm @ etf.bg.ac.yu. Elektrotehnički Fakultet,

pancho
Download Presentation

Algoritamski Aspekti razvoja i implementacije Web pretraziva č a

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Algoritamski Aspekti razvoja i implementacije Web pretrazivača Diplomski rad iz predmeta Pretraživanje i istraživanje podataka na Internetu RI5PIP student: Aleksandar Bradić, alek.br@gmail.com mentor: prof. dr. Veljko Milutinović, vm@etf.bg.ac.yu Elektrotehnički Fakultet, Univerzitet u Beogradu, Mart 2007.

  2. Uvod • Cilj : razvoj kompletnog Web pretrazivača, baziranog na open source platformi • Motiv: • Postojeća tehnologija omogućava kreiranje “ih-house” pretraživača, koji bi efikasno pretraživao značajan deo Web-a • Dobijeni dataset možemo procesirati neograničeno i na načine na koje nije moguće korišćenjem komercijalnih pretraživaca • Obezbeđena je privatnost načina na koji se informacije procesiraju • Kreirana platforma se može koristiti za dalji razvoj i implementaciju inovativnih algoritama za obradu i istraživanje podataka na Web-u

  3. Postavka problema • Potrebno je: • Realizovati proof-of-concept pretraživač, sa indeksom značajne veličine, koji bi implementirao sve osnovne funkcionalnosti standardnog Web pretraživača • Realizovati primer algoritma koji bi omogućio procesiranje podataka na način koji ne omogućavaju mainstream pretraživači • Kreirati platformu za dalji razvoj i analizu Web algoritama Zadatak : Kreiramo pretraživač koji omogućava pretraživanje značajnog dela .yu domena, uz mogućnost grupisanja (clustering) rezultata pretraživanja !

  4. Postojeća rešenja • Danas postoji veliki broj Web pretraživača koji omogućuju efikasan full text search (Google, Yahoo, Ask …..) • Postoji i određen broj pretraživača koji omogućavaju clustering rezultata pretraživanja (Clusty, Alexa, WebClust) Nedostaci : • Iako pružaju rezultate vrhunskog kvaliteta, sa minimalnim vremenom odziva, komercijalni full text pretraživači : • Limitiraju način na koji se može obrađivati njihov korpus dokumenata (ograničeno na standardne information-retrieval upite) • Ne obezbeđuju privatnost pri pretraživanju

  5. Predloženo rešenje • Koristimo : Open source Web search biblioteke : • Lucene – full-text search & indexing library • Nutch – web crawl & store library • Razvijamo : • Algoritam koji omogućuje grupisanje rezultata pretraživanja, na osnovu informacija o njihovoj međusobnoj povezanosti • RPC Servis, koji vrši pretraživanje Lucene indeksa i grupisanje rezultata na osnovu navedenog algoritma • Web frontend aplikaciju koja opslužuje upite korisnika i komunicira sa search servisom

  6. Predloženo rešenje : randomNode clustering search engine • Arhitektura :

  7. Pretpostavke i ograničenja • Obavljamo single-shot crawl, počevši od stranice : http://www.etf.bg.ac.yu • Crawl je limitiran na na url-ove iz .yu domena • Crawl do dubine 50, max. 50000 stranica po nivou • Resursi : • 256/64 Home ADSL konekcija • 1 x AMD Opteron 2.4 Ghz, 768 MB RAM 250Gb HDD • 14 radnih dana • Oekivani rezultati : • ~1 milion stranica

  8. Analiza i detalji rešenja • Rezultati crawl procedure : • Run time ~ 12 dana • Veličina indeksa : 883868URL-ova (629974fetched, 152142 unfetched) • Veličina na disku : 16.6 Gb • Rezultati su nešto niži od ocekivanih • Objašnjenje : Efikasnost crawl procedure opada za nivoe dubine > 20 ! • Rešenje : Veći broj crawl-ova (počevši od različitih url-ova), dubine < 20 !

  9. Analiza i detalji rešenja • Search aplikacija • Ideja : prikazivanje što većeg broja rezultata (~100) na jednoj stranici, uključujući i informacije o hiperlinkovima između rezutata • Razvijena je search aplikacija, na jeziku Java: • AJAX front-end (koristeći GWT kompajler) • Interaktivno okruženje, asinhrono osvežavanje sadržaja na ekranu • RPC Servis (servlet na Tomcat 5.5 container-u) • Pretraživanje Lucene indeksa i komunikacija sa front-end aplikacijom

  10. Analiza i detalji rešenja • Realizacija :

  11. Analiza i detalji rešenja randomNode.search: Web frontend

  12. Analiza i detalji rešenja randomNode.clustering • Ideja: obezbediti grupisanje rezultata pretraživanja, koristeći informacije o vezama među stranicama (link analysis) • Standardni clustering pretraživači koriste machine learning/information retrieval tehnike za određivanje sličnosti izmedju stranica i njihovo klasifikovanje • Clustering hipoteza: stranice vezane za istu temu formiraju strukturalni cluster (koji se može predstaviti kao jako povezana komponenta u grafu) • Problem grupisanja rezultata pretrazivanja predstavljamo kao problem određivanja jako povezanih komponenti u link grafu.

  13. Analiza i detalji rešenja • Posmatramo Web grafG(V,E) • |V| = n – broj stranica u indeksu • |E| = k - broj linkova izmedju stranica • Indukovani PodgrafS(P,L) : • P = poskup čvorova koji odgovaraju zadatom upitu q • L = skup grana između čvorova u P • Ideja : Indukovani Podgraf sadrži dovoljno informacija da je moguće obaviti grupisanje rezultata, posmatrajući samo njegovu link strukturu. Značajan deo linkova “ostaje” unutar indukovanog podgrafa

  14. Analiza i detalji rešenja • Formulacija problema : • Problem grupisanja rezultata predstavljamo kao problem efikasnog određivanja svih prirodnih grupačvorova u S(P,L) (graph clustering problem) • Postojeći pristupi : • Max-flow min-cut • Graph partitioning • Markov Clustering • Iterative Conductance Cutting • Predlažemo randomizovani algoritam za particionisanje indukovanog podgrafa, sa performansama poredivim sa poznatim algoritmima, uz znatno nižu kompleksnost

  15. Analiza i detalji rešenja • Algoritam : • Ideja : Random walk na grafu, ima tendenciju da ostaje unutar jako povezanih komponenti • Posmatramo slučajni proces na usmerenom grafu, koji podrazumeva random walk i jump operacije • Kada se random walk, nadje u čvoru koji nema izlazne linkove, vrsi se jump na slučajno odabrani čvor na grafu • Ulaz : matrica povezanosti usmerenog grafa A, dimenzija n x n (n – broj čvorova u grafu) • Izlaz : clustering map : niz parova (čvor, cluster) • Sastoji se od dve faze : WALK i MERGE

  16. Analiza i detalji rešenja • WALK faza : • Obavljamo K random walk-ova na grafu, od koji svaki počinje u slučajno odabranom čvoru grafa, pri čemu beležimo čvorove koji su poseceni u okviru svakog walk-a, kao i odgovarajuću frekvenciju posećivanja • Vrednost K predstavlja minimalnu vrednost potrebnu za pokrivanje svih čvorova grafa i kreće seu opsegu (N/logN, N). Zavisi od strukture grafa i diktira kompleksnost WALK faze algoritma (O(N),O(N^2)) • Dobijamo vektor W koji predstavlja skup potencijalnih cluster-a

  17. Analiza i detalji rešenja • MERGE faza : • Svaki čvor se moze nalaziti samo u jednom cluster-u => vršimo operacije izbacivanja (cut) i spajanja (join) čvorova u potencijalnim cluster-ima • Ukoliko se čvor nalazi u vise walk-ova : • Ukoliko postoji walk u kome se dati čvor javlja sa većom frekvecijom => zadržava se u tom walk-u, dok se iz ostalih izbacuje (CUT) • Ukoliko se dati čvor javlja u vise walk-ova sa jednakom frekvencijom => vršimo spajanje walk-ova po datom čvoru (JOIN) • Konačan skup svih preostalih walk-ova, predstavlja skup cluster-a u posmatranom grafu

  18. Analiza i detalji rešenja

  19. Analiza i detalji rešenja Primer rada algoritma : (2) Slučajno odabiranje početnih čvorova svakog walk-a (1) Ulazni graf

  20. Analiza i detalji rešenja (3) WALK faza (4) Skup potencijalnih cluster-a

  21. Analiza i detalji rešenja RETAIN 4 4 3 2 1 2 2 1 JOIN 2 2 CUT (4) MERGE faza

  22. Analiza i detalji rešenja 1 1 JOIN (5) konačan skup cluster-a (4) MERGE faza

  23. Analiza i detalji rešenja Analiza join operacije : 1 1 1 1 1 1 1 1 1 join 1 1 1 ovaj čvor učestvuje sa frekvencijom 1 u svakom od dobijenih walk-ova => vršimo join operaciju Join operacija omogućava clustering nekih od karakterističnih grafova, na kojima random walk ne konvergira !

  24. Implementacija • Implementacija : • Algoritam je implementiran u randomNode pretraživaču (u okviru RPC servisa) : • Na osnovu zadatog upita, kreira indukovani graf, koristeći informacije o inlink-ovima iz LinkDb • Korišćenjem opisanog algoritma, vrši clustering rezultata • Frontend aplikaciji, zajedno sa rezultatima, vraća i informormaciju o cluster-u kome svaki od rezultata pripada • Web frontend aplikacija : • Na osnovu dobijenih informacija, vrši grupisanje rezultata, određivanje optimalnog rasporeda i njihovo prikazivanje

  25. Implementacija

  26. Zaključak • Opisani algoritam, predstavlja pogodno rešenje za implementaciju clustering funkcionalnosti, u pretraživacima sa ograničenim resursima • Proces slucajnog lutanja sa skokovima, predstavlja dobar model za dalju analizu i razvoj clustering algoritama. • Razvijena softverska platforma (zasnovana na Nutch/Lucene paketima), predstavlja dobru osnovu na kojoj se mogu razvijati, kako algoritmi za obradu podataka, tako i konkretne aplikacije, koje uključuju Web search kao jednu od komponenti.

  27. http://www.randomnode.com

More Related