27
Algoritamski Aspekti razvoja i implementacije Web pretrazivača Diplomski rad iz predmeta Pretraživanje i istraživanje podataka na Internetu RI5PIP student: Aleksandar Bradić, [email protected] mentor: prof. dr. Veljko Milutinović, [email protected] Elektrotehnički Fakultet, Univerzitet u Beogradu, Mart 2007.

Algoritamski Aspekti razvoja i implementacije Web pretraziva č a

  • 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

Page 1: Algoritamski Aspekti razvoja i implementacije Web pretraziva č a

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.

Page 2: Algoritamski Aspekti razvoja i implementacije Web pretraziva č a

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

Page 3: Algoritamski Aspekti razvoja i implementacije Web pretraziva č a

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 !

Page 4: Algoritamski Aspekti razvoja i implementacije Web pretraziva č a

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

Page 5: Algoritamski Aspekti razvoja i implementacije Web pretraziva č a

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

Page 6: Algoritamski Aspekti razvoja i implementacije Web pretraziva č a

randomNode clustering search enginePredloženo rešenje :

Arhitektura :

Page 7: Algoritamski Aspekti razvoja i implementacije Web pretraziva č a

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

Page 8: Algoritamski Aspekti razvoja i implementacije Web pretraziva č a

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 !

Page 9: Algoritamski Aspekti razvoja i implementacije Web pretraziva č a

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

Page 10: Algoritamski Aspekti razvoja i implementacije Web pretraziva č a

Analiza i detalji rešenja

Realizacija :

Page 11: Algoritamski Aspekti razvoja i implementacije Web pretraziva č a

Analiza i detalji rešenja

randomNode.search : Web frontend

Page 12: Algoritamski Aspekti razvoja i implementacije Web pretraziva č a

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

Page 13: Algoritamski Aspekti razvoja i implementacije Web pretraziva č a

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

Page 14: Algoritamski Aspekti razvoja i implementacije Web pretraziva č a

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

Page 15: Algoritamski Aspekti razvoja i implementacije Web pretraziva č a

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

Page 16: Algoritamski Aspekti razvoja i implementacije Web pretraziva č a

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

Page 17: Algoritamski Aspekti razvoja i implementacije Web pretraziva č 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

Page 18: Algoritamski Aspekti razvoja i implementacije Web pretraziva č a

Analiza i detalji rešenja

Page 19: Algoritamski Aspekti razvoja i implementacije Web pretraziva č a

Analiza i detalji rešenja

Primer rada algoritma :

(1) Ulazni graf (2) Slučajno odabiranje početnih čvorova svakog walk-a

Page 20: Algoritamski Aspekti razvoja i implementacije Web pretraziva č a

Analiza i detalji rešenja

(3) WALK faza (4) Skup potencijalnih cluster-a

Page 21: Algoritamski Aspekti razvoja i implementacije Web pretraziva č a

Analiza i detalji rešenja

4

4

1

1

CUT

(4) MERGE faza

RETAIN

3

2

2

2

2

2

JOIN

Page 22: Algoritamski Aspekti razvoja i implementacije Web pretraziva č a

Analiza i detalji rešenja

1

JOIN

(4) MERGE faza

1

(5) konačan skup cluster-a

Page 23: Algoritamski Aspekti razvoja i implementacije Web pretraziva č 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 !

Page 24: Algoritamski Aspekti razvoja i implementacije Web pretraziva č a

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

Page 25: Algoritamski Aspekti razvoja i implementacije Web pretraziva č a

Implementacija

Page 26: Algoritamski Aspekti razvoja i implementacije Web pretraziva č a

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.

Page 27: Algoritamski Aspekti razvoja i implementacije Web pretraziva č a

http://www.randomnode.com