Upload
pancho
View
40
Download
0
Embed Size (px)
DESCRIPTION
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, - PowerPoint PPT Presentation
Citation preview
Algoritamski Aspekti razvoja i implementacije Web pretrazivača
Diplomski rad iz predmetaPretraživanje i istraživanje podataka na Internetu
RI5PIP
student: Aleksandar Bradić, [email protected]: prof. dr. Veljko Milutinović, [email protected]
Elektrotehnički Fakultet,Univerzitet u Beogradu,
Mart 2007.
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
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 !
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
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
randomNode clustering search enginePredloženo rešenje :
Arhitektura :
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 konekcija1 x AMD Opteron 2.4 Ghz, 768 MB RAM
250Gb HDD14 radnih dana
Oekivani rezultati : ~1 milion stranica
Analiza i detalji rešenja
0
500
1000
1500
2000
2500
1 5 9 13 17 21 25 29 33 37 41 45 49
broj iteracije
efik
asn
ost
[kb
/min
]
Rezultati crawl procedure :Run time ~ 12 danaVeličina indeksa : 883868 URL-ova
(629974 fetched, 152142 unfetched)Veličina na disku : 16.6 Gb
Rezultati su nešto niži od ocekivanihObjaš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 !
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
Analiza i detalji rešenja
Realizacija :
Analiza i detalji rešenja
randomNode.search : Web frontend
Analiza i detalji rešenja
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.
randomNode.clustering
Analiza i detalji rešenja Posmatramo Web graf G(V,E)
|V| = n – broj stranica u indeksu |E| = k - broj linkova izmedju stranica
Indukovani Podgraf S(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.
010000
2000030000
4000050000
6000070000
8000090000
100000
out S(P,L)
in S(P,L)
Značajan deo linkova“ostaje” unutar indukovanogpodgrafa
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
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
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 se u 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
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
Analiza i detalji rešenja
Analiza i detalji rešenja
Primer rada algoritma :
(1) Ulazni graf (2) Slučajno odabiranje početnih čvorova svakog walk-a
Analiza i detalji rešenja
(3) WALK faza (4) Skup potencijalnih cluster-a
Analiza i detalji rešenja
4
4
1
1
CUT
(4) MERGE faza
RETAIN
3
2
2
2
2
2
JOIN
Analiza i detalji rešenja
1
JOIN
(4) MERGE faza
1
(5) konačan skup cluster-a
Analiza i detalji rešenja
1
1
1
1
1
1
1
1 11
11
ovaj čvor učestvuje sa frekvencijom 1 u svakom od dobijenih walk-ova=> vršimo join operaciju
join
Analiza join operacije :
Join operacija omogućava clustering nekih od karakterističnih grafova, na kojima random walk ne konvergira !
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
Implementacija
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.
http://www.randomnode.com