Web Communities and their identificaton Giorgio Zoppi [email protected] 1-25 Mining Dati Web Web...

29
Web Communities and their identificaton Giorgio Zoppi [email protected] 1-25 Mining Dati We Web Communities

Transcript of Web Communities and their identificaton Giorgio Zoppi [email protected] 1-25 Mining Dati Web Web...

Page 1: Web Communities and their identificaton Giorgio Zoppi zoppi@cli.di.unipi.it 1-25 Mining Dati Web Web Communities.

Web Communities and their identificaton

Giorgio Zoppi

[email protected]

1-25 Mining Dati WebWeb Communities

Page 2: Web Communities and their identificaton Giorgio Zoppi zoppi@cli.di.unipi.it 1-25 Mining Dati Web Web Communities.

2-25 Mining Dati WebWeb Communities

Problema con le ricerche sul web!Problema con le ricerche sul web!I motori di ricerca odierni (Yahoo!, AltaVista, Google)

restituiscono piu informazioni di quelle richieste.

Per esempio se cercate Wassily Kandinsky otterrete 1.320.000 di pagine Web da Google, circa 681.000 da Yahoo!...come restringere i risultati?

Page 3: Web Communities and their identificaton Giorgio Zoppi zoppi@cli.di.unipi.it 1-25 Mining Dati Web Web Communities.

2-25 Mining Dati WebWeb Communities

Problema con le ricerche sul web!Problema con le ricerche sul web!

I motori di ricerca odierni (Yahoo!, AltaVista, Google) restituiscono piu informazioni di quelle ricieste.

Per esempio se cercate Wassily Kandinsky otterrete 1.320.000 di pagine Web da Google, circa 681.000 da Yahoo!...come restringere i risultati?

Agli utenti interessa solo un sottoinsieme rilevante dei risultati della ricerca.

Page 4: Web Communities and their identificaton Giorgio Zoppi zoppi@cli.di.unipi.it 1-25 Mining Dati Web Web Communities.

2-25 Mining Dati WebWeb Communities

Problema con le ricerche sul web!Problema con le ricerche sul web! I motori di ricerca odierni (Yahoo!, AltaVista, Google) restituiscono

piu informazioni di quelle richieste.

Per esempio se cercate Wassily Kandinsky otterrete 1.320.000 di pagine Web da Google, circa 681.000 da Yahoo!...come restringere i risultati?

Agli utenti interessa solo un sottoinsieme rilevante dei risultati della ricerca.

Occorre ottenere un buon bilanciamento tra la precision e la recall dei risultati di una query.

I motori tendono a fornire alta recall (quanti rilevanti su tutti quelli rilevanti?) e bassa precision ( quanti rilevanti su tutti?) perche' fanno il rank dei risultati.

Page 5: Web Communities and their identificaton Giorgio Zoppi zoppi@cli.di.unipi.it 1-25 Mining Dati Web Web Communities.

2-25 Mining Dati WebWeb Communities

Problema con le ricerche sul web!Problema con le ricerche sul web! I motori di ricerca odierni (Yahoo!, AltaVista, Google)

restituiscono piu informazioni di quelle richieste.

Per esempio se cercate Wassily Kandinsky otterrete 1.320.000 di pagine Web da Google, circa 681.000 da Yahoo!...come restringere i risultati?

Agli utenti interessa solo un sottoinsieme rilevante dei risultati della ricerca.

Occorre ottenere un buon bilanciamento tra la precision e la recall dei risultati di una query. I motori tendono a fornire alta recall alle spese della precision

I motori di ricerca non possono comprire tutto il web, e hanno risultati non aggiornati date le dimensioni

Risulta necessario costruire web communities.

Page 6: Web Communities and their identificaton Giorgio Zoppi zoppi@cli.di.unipi.it 1-25 Mining Dati Web Web Communities.

3-25 Mining Dati WebWeb Communities

Che cosa è una web community?Che cosa è una web community?

Definizione: A community consiste di membri che hanno più link all'interno della community che fuori dalla community.

Esempio: Un sito su Molierè è tale che collega o è collegato da più siti che parlano di Moliere rispetto a siti web che non parlano di Moliere.

L'identificazione di una community cosi definita è un problema NP-completo, perche rientra nei problemi di ripartizionamento dei grafi.

balanced-minimum-cut graph partition:balanced-minimum-cut graph partition: rimuovi un insieme di archi in maniera tale che il numero rimosso sia minimale, assicurando che i due sottografi disconnessi rimanenti abbiano almeno m vertici ciascuno

Page 7: Web Communities and their identificaton Giorgio Zoppi zoppi@cli.di.unipi.it 1-25 Mining Dati Web Web Communities.

4-25 Mining Dati WebWeb Communities

E allora come le trovo?E allora come le trovo?

Proviamo a rilassare il problema come:

Assumiamo l'esistenza di semi (sicuri rappresentanti di una community) che possono trovati mediante HITS.

Sfruttiamo le regolarita del grafo web (bow-tie).

Usando questo due ipotesi possiamo riformulare il problema come un problema di flusso massimo. Vedremo il perche.....:)

Page 8: Web Communities and their identificaton Giorgio Zoppi zoppi@cli.di.unipi.it 1-25 Mining Dati Web Web Communities.

5-25 Mining Dati WebWeb Communities

Definizione formaleDefinizione formale

Definizione: Sia G=<V,E> un grafo orientato

con |V| = n nodi e |E| = m archi, tale che: • Ogni vertice corrisponde ad una pagina web e ciascun arco orientato corrisponde ad un hyperlink.

• Ogni arco e = (u,v) ha un peso w(e) = w(u,v)

Una web community è un insieme di nodi C⊂V tale che:

vu,w>vu,w

CVvCv

\

Page 9: Web Communities and their identificaton Giorgio Zoppi zoppi@cli.di.unipi.it 1-25 Mining Dati Web Web Communities.

6-25 Mining Dati WebWeb Communities

Trovare le communities: Teorema.Trovare le communities: Teorema.

Dato un grafo orientato G = (V,E), C⊂V :

Siano #(s) il numero di archi da s ad ogni altro nodo in C \ {s}.

Siamo #(t) il numero di archi da t ad ogni atro nodo V \ C \ {s}

Una community puo essere identificata calcolando il minimo taglio T di G tra s e t tale che #(s) > | T | e #(s) > | T |

La condizione su #s non funziona sul web ( causa rumore): uso semi multipli collegati ad una sorgente virtuale.Per scegliere il pozzo, scelgo un sito tale che siagenericamente collegato all'intero web. Loro hanno usato Yahoo!.

Page 10: Web Communities and their identificaton Giorgio Zoppi zoppi@cli.di.unipi.it 1-25 Mining Dati Web Web Communities.

7-25 Mining Dati WebWeb Communities

s-t Flusso Massimos-t Flusso Massimo

Dato un grafo orientato pesato G = (V,E) e dati due nodi s (sorgente) e t(pozzo) trovare il flusso massimo che puo' essere instradato dalla sorgente s al pozzo t:

Intuizione: pensate ad un acquedotto

Flusso massimo = Taglio di capacita minima

Possibili soluzioni:

Algoritmo sui Preflussi: e' la soluzione piu efficiente ma non e' addattabile al nostro caso perche' non conosco la topologia

Cammini Aumentanti: Trovo il cammino minimo tra sorgente e pozzo ed aumento la capacita'

Page 11: Web Communities and their identificaton Giorgio Zoppi zoppi@cli.di.unipi.it 1-25 Mining Dati Web Web Communities.

Communities con Flusso MassimoCommunities con Flusso Massimo

8-25Web Communities Mining di dati Web

Page 12: Web Communities and their identificaton Giorgio Zoppi zoppi@cli.di.unipi.it 1-25 Mining Dati Web Web Communities.

Come calcolare le Come calcolare le communities:communities:

Tutti i metodi richiedono un insieme di siti semi:

• Esatto: Prendere una sito al centro del grafo web come pozzo (es. Yahoo!) e svolgere il flusso massimo sull'intero web.

• Approssimato: Usare un sottografo con una dimensione fissata di profondita del crawl.

• Iterato (EM): Trovare una comunita approssimata e utilizzare i risultati per migliorare l'iterazione successiva.

9-25Web Communities Mining di dati Web

Page 13: Web Communities and their identificaton Giorgio Zoppi zoppi@cli.di.unipi.it 1-25 Mining Dati Web Web Communities.

Exact Flow communitiesExact Flow communities

10-25Web Communities Mining di dati Web

"" Let G = (V,E), S is a subset of V Let G = (V,E), S is a subset of V ""

def exact_flow(G, S, k):

"" create artificial vertices, s and t, and add to Vcreate artificial vertices, s and t, and add to V ""

foreach v in S:

add(s,v) in E with c(s, v) = infinite

foreach (u,v) in E:

c(u,v) = k

if (v,u) is not in E:

add(u,v) in E with c(u,v) = k

ExtendedS = add(S,s,t)

foreach v in V, v is not in ExtendedS:

add(v,t) in E with c(v,t) = 1

Cut = AugmentedMax-Flow(G,s,t) # Cut are all v in V connected to S

return Cut

Page 14: Web Communities and their identificaton Giorgio Zoppi zoppi@cli.di.unipi.it 1-25 Mining Dati Web Web Communities.

Approximate Flow Approximate Flow communitiescommunities

11-25Web Communities Mining di dati Web

"" Let G = (V,E), S is a subset of V, d depth of the crawl Let G = (V,E), S is a subset of V, d depth of the crawl ""

def approximate_flow(S, k):

"" h max iterationsh max iterations ""

while i<=h:

"" crawl the web until depth d ""

G = crawl_web(S,d)

k=|S|

C=exact_flow(G, S, k)

"" rank all v in c by number of edges in C""

rankedSet = rank(C)

add(Highest_Rank_NotSeed(rankSet),S)

return C

Page 15: Web Communities and their identificaton Giorgio Zoppi zoppi@cli.di.unipi.it 1-25 Mining Dati Web Web Communities.

Max Flow Focused Crawler

Sorgente

Siti semi

+1 +2 Pozzo

12-25Web Communities Mining di dati Web

Page 16: Web Communities and their identificaton Giorgio Zoppi zoppi@cli.di.unipi.it 1-25 Mining Dati Web Web Communities.

Espansione del grafoEspansione del grafo Usa un pozzo artificiale che e' connesso a tutti i

vertici molto distanti dalla sorgente, perche'?

Supponiamo di poter trovare il seguente taglio usando il centro del grafo:

Obiettivo: approssimare il taglio non Obiettivo: approssimare il taglio non conoscendo il centro del grafoconoscendo il centro del grafo

13-25Web Communities Mining Dati Web

Page 17: Web Communities and their identificaton Giorgio Zoppi zoppi@cli.di.unipi.it 1-25 Mining Dati Web Web Communities.

Espansione del grafoEspansione del grafo

Per approssimare il taglio: Il pozzo virtuale t e' connesso con tutti i nodi in V, eccetto i semi S e se stesso con capacita 1Moltiplico tutte le capacita degli archi per un fattore k.

Sotto quali condizioni riesco a produrre lo stesso partizionamento?

Obiettivo: approssimare il taglio non Obiettivo: approssimare il taglio non conoscendo il centro del grafoconoscendo il centro del grafo

14-25Web Communities Mining Dati Web

Page 18: Web Communities and their identificaton Giorgio Zoppi zoppi@cli.di.unipi.it 1-25 Mining Dati Web Web Communities.

Teorema approssimazione del taglioTeorema approssimazione del taglioIl taglio approssimato e' identico a quello

ideale anche quando il centro del grafo non e' noto, se vale la seguente condizione: 1<k<Nt/c

outside of the community

graph center

community

source

cut set

virtual sink

15-25Web Communities Mining Dati Web

Page 19: Web Communities and their identificaton Giorgio Zoppi zoppi@cli.di.unipi.it 1-25 Mining Dati Web Web Communities.

Espansione del grafoEspansione del grafo

Per approssimare il taglio: Il pozzo virtuale t e' connesso con tutti i nodi in V, eccetto i semi S e se stesso con capacita 1Moltiplico tutte le capacita degli archi per un fattore k.

Sotto quali condizioni riesco a produrre lo stesso partizionamento?

Obiettivo: approssimare il taglio non Obiettivo: approssimare il taglio non conoscendo il centro del grafoconoscendo il centro del grafo

16-25Web Communities Mining Dati Web

Page 20: Web Communities and their identificaton Giorgio Zoppi zoppi@cli.di.unipi.it 1-25 Mining Dati Web Web Communities.

Expect Maximization ( Iterated Flow)Expect Maximization ( Iterated Flow)Problema: Con un numero limitato di

semi, solo un limitato sottoinsieme della community puo' essere trovato, per le limitazioni poste nel trovare il taglio.

Abbiamo bisogno di un metodo per trovare nuovi semi.

ExpectExpect : Uso l'algoritmo di flusso massimo per trovare un sottoinsieme della community.

MaximizationMaximization: Quelli che hanno outdegree massimo diventano i nuovi semi. Ripeto l'algoritmo approssimato con questi nuovi semi. 17-25Web Communities Mining Dati Web

Page 21: Web Communities and their identificaton Giorgio Zoppi zoppi@cli.di.unipi.it 1-25 Mining Dati Web Web Communities.

Seeds: SVM community

18-25Web Communities Mining Dati Web

Page 22: Web Communities and their identificaton Giorgio Zoppi zoppi@cli.di.unipi.it 1-25 Mining Dati Web Web Communities.

Results: SVM community

19-25Web Communities Mining Dati Web

Page 23: Web Communities and their identificaton Giorgio Zoppi zoppi@cli.di.unipi.it 1-25 Mining Dati Web Web Communities.

Seeds: Internet Archive community

20-25Web Communities Mining Dati Web

Page 24: Web Communities and their identificaton Giorgio Zoppi zoppi@cli.di.unipi.it 1-25 Mining Dati Web Web Communities.

Results: Internet Archive community

21-25Web Communities Mining Dati Web

Page 25: Web Communities and their identificaton Giorgio Zoppi zoppi@cli.di.unipi.it 1-25 Mining Dati Web Web Communities.

Problema: come determino le capacita degli archi?

Le capacita degli archi sono importanti e loro non dicono come determinarlese sono impostate tutte allo stesso valore: non riesco in alcuni casi a determinare nuovi membri perche' anche un link valido per estendere la community diventa un arco di taglio per l'algoritmo di flusso massimo.

Altri (Kitsuregawa,Imafujii) hanno dimostrato alcune proprieta' sulle capacita degli archi: Aumentare la capacita degli archi puo' aumentarare la dimensione della community introducendo rumore. E' difficile determinare una adeguata capacita degli archi, loro hanno comunque notato un punto fisso detto quantum jump point:.

Quando la capacita degli archi e' minore del quantum jump point, la web community, basata su un insieme di nodi e' troppo piccola.. Quando la capacita degli archi e' maggiore o uguale al quantum jump, l'intero grafo sara la web community.

22-25Web Communities Mining Dati Web

Page 26: Web Communities and their identificaton Giorgio Zoppi zoppi@cli.di.unipi.it 1-25 Mining Dati Web Web Communities.

Stimo il quantum jump point q

Siano tutti gli archi con capacita' q-1. Considera un nodo v tale che abbia il grado piu grande d, allora:

1 2sd V V V Allora:

1 1s

Vq

V

1( 1) 1s sq V V q V

23-25Web Communities Mining Dati Web

Page 27: Web Communities and their identificaton Giorgio Zoppi zoppi@cli.di.unipi.it 1-25 Mining Dati Web Web Communities.

Come assegno le capacita' agli archi?Come assegno le capacita' agli archi?

Uso HITS per trovare i punteggi di authority e hub.

avl e hvk sono rispettivamente i punteggi di

hub e autority.

rh =max(avk)/max(hvl).

ra =q.

Test hanno dimostrato che usando questo modo, si riduce il rumore.

( )2

i jh v a v

i j

r h r ac v v

24-25Web Communities Mining Dati Web

Page 28: Web Communities and their identificaton Giorgio Zoppi zoppi@cli.di.unipi.it 1-25 Mining Dati Web Web Communities.

Conclusioni

Abbiamo definito un nuovo tipo di web community.Abbiamo usato il flusso massimo per calcolarlo.Abbiamo usato il focused crawler per approssimare le community.Abbiamo notato che impostare le capacita del grafo aumentato usando gli score di HITS, riduce il rumore 25-25Web Communities Mining Dati Web

Page 29: Web Communities and their identificaton Giorgio Zoppi zoppi@cli.di.unipi.it 1-25 Mining Dati Web Web Communities.

Reference

Efficient Identification of Web Communities Gary William Flake, Steve Lawrence, C. Lee Giles

Self-Organization and Identification of Web Communities (2002)  Gary William Flake, Steve Lawrence, C. Lee Giles, Frans M. Coetzee

Finding a web community by maximum flow algorithm with HITS score based capacity

N.Imafuji, M.Kitsuregawa