webgraph: algoritmos e métodos luciana salete buriol instituto de informática, universidade...

Post on 18-Apr-2015

104 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Webgraph: algoritmos e métodos

Luciana Salete BuriolInstituto de Informática,

Universidade Federal do Rio Grande do Sul (UFRGS)

Slides de Luciana Buriol, Viviane Orengo e Leandro Wives

2/60

Webgraph

O Webgraph é o grafo direcionado gerado a partir da estrutura de links das páginas web.

cada página web é um vértice

cada hyperlink entre páginas é um arco direcionado.

É um grafo de grande dimensão, esparso e desconexo

3/60

SumárioMotivação e objetivosRecuperação de InformaçõesExtração, armazenamento e compactação do webgraphCaracterísticas topológicas e propriedades do webgraphAlgoritmos de classificaçãoAlgoritmos de aproximação para cálculo de propriedades do webgraphConclusões

4/60

Motivações

Grande dimensão: atualmente possui mais de 24 bilhões de vértices e cerca de 500 bilhões de arcos

1998: 24 milhões de páginas1999: 200 milhões2003: 3.5 bilhões de páginas2005: 11.5 bilhões de páginas2006: 24 bilhões de páginas

5/60

Motivações

É a fonte de dados utilizada por ferramentas de busca para organização e classificação das páginas web

Não se assemelha a outras redes

Diversidade de tópicos, estilos e línguas

Insere uma série de desafios para a área de computação, possibilitando o surgimento de novas pesquisas e novas soluções

6/60

Web Crawling

Coleta das páginas web

7/60

Coleta de páginas

A coleta das páginas é realizada por uma máquina de busca (web crawler)Faz a busca a partir de um conjunto inicial de páginasApós extrair a página, identifica seus links

Página web

8/60

Coleta das páginas

É preciso possuir links entrantes para ser coletada

Uma máquina de busca de grande dimensão deve:Identificar eficientemente páginas já extraídas

Processar em paralelo

Usar banda de rede limitada

Usar a política da “boa educação”

9/60

Estrutura de um crawler

bag “seed” while bag {}

pick p bagdownload pif p is seen continueparse pfor each q outlinks(p) do

if q is new thenbag bag {q}

end ifend forstore p

end while

10/60

Estrutura de um crawlerbag “seed” while bag {}

pick p bagdownload pif p is seen continueparse pfor each q outlinks(p) do

if q is new thenbag bag {q}

end ifend forstore p

end while

11/60

Coleta das páginas

Problemas práticos:Tempo x espaço. Ex: 42 milhões de páginas html do domínio italiano, tendo em média 10 KB por página.

Espaço

400 GB: 1.33 discos de 300GB

24 bilhões de páginas: mais de 200 discos?

Tempo

Banda disponível: 2 Mbps

3 pontos de coleta

5.5 milhões de páginas por dia

8 dias executando

12/60

Coleta das páginas

Algumas máquinas de busca:WIRE: Universidade do Chile

UbiCrawler: Universidade Estadual de Milão;

Nutch (www.nutch.org): USA, implementado em Java, fácil instalação e utilização, opções para usuário

Maiores detalhes em http://www.dis.uniroma1.it/buriol/Query.ppt

As máquinas de busca comerciais, como Google, Yahoo, Alta Vista, TodoBR, não são de domínio público

13/60

Armazenamento do dados

Armazenamento do webgrafo e/ou conteúdo das páginas?

páginas de diversos formatos: html, txt, doc, pdf, ps, ppt, etc

Uma página web sem figuras, tem tamanho médio de 10 a 14 Kb

14/60

Recuperação de Informações na Web

Trata da representação, armazenamento, organização e acesso à informação referente às páginas web

R. Baeza-Yates e B. Ribeiro-Neto, Modern Information Retrieval, 1999, www2.dcc.ufmg.br/livros/irbook

15/60

Diferenças entre IR e Data Retrieval

IR

Documentos – pouca estrutura

Consultas vagas e ambíguas expressas por meio de palavras-chave

Consultas não recuperam todos os itens relevantes e nem todos os recuperados são relevantes.

Documentos apresentados em ordem decrescente de relevância

Data Retrieval

Tabelas – dados estruturados

Consultas claras e precisas expressas em uma linguagem (SQL)

Consultas recuperam todas as tuplas relevantes e todas as tuplas recuperadas são relevantes

Todas as tuplas recuperadas são igualmente relevantes à consulta

16/60

O processo de IR

O usuário tipicamente precisa traduzir sua necessidade de informações em forma de uma consulta (keywords).

Exemplo:Necessidade de Informação: “Quais as vinícolas do RS que produzem vinho com a uva Melot?”

Palavras-chave: vinícola RS merlot

17/60

Índice invertido

t1

t2

t3

.

.

.tn

Índice(dicionário)

Lista de postings

Normalmente em disco

Em memória, se possível

17

18/60

Dicionário de Termos: observações

Cerca de 100 milhões de palavras! Uma estimativa de Grossman e Frieder (2004), 2 milhões de

termos ocupam menos de 32MB (sem compressão) Busca binária, com complexidade relativamente baixa:

O (log n); ou Funções hash com lista de colisão

Em coleções dinâmicas, usar outras estruturas (TRIE, PAT, PATRICIA, B-TREES)

18

19/60

Componentes de um sistema de IR

Query

Results

DocumentCollection

Process Text

Search Index File

Retrieve Documents

Produce ranked list of matches

Tokenization, Stop Word Removal,

Stemming & Term Weighting

Inverted File

Ranking Algorithm

Tokenization, Stop Word Removal,

Stemming & Term Weighting

20/60

Formato do Webgraph

os nós recebem identificadores

Representação do grafo no formato IPS: lista de adjacência forward and backward

Dividido em vários arquivos

Tamanho para um conjunto de 200 milhões de páginas: 15 GB (21 arquivos)

21/60

Link Analysis

Identificação da estrutura topológica do grafo

Cálculo de diversas propriedades do grafo

classificação das páginas web

22/60

Medidas ElementaresDistribuição do indegree e outdegree

É referente ao número de páginas que possuem grau di, para i=1,2…maxd;

Em geral a distribuição para o webgraph se apresenta como uma power law: a probabilidade de um nó possuir degree d é proporcional a para algum >1

αd

1

23/60

Distribuição do grau das páginas

24/60

Indegree Distribution

25/60

Outdegree Distribution

26/60

Pagerank Distribution

27/60

Estrutura Macroscópica do Webgraph

Graph structure in the Web, Broder et al, 2000

28/60

Identificando tentáculos e tubos

29/60

Ilhas: nós restantes

30/60

Medidas da estrutura bow-tie para wikigraphs

31/60

Biblioteca de Algoritmos para Análise de grafos de grande dimensão

Desenvolvida no Dipartimento di Informatica e Sistemistica della Universita’ La Sapienza, Roma, Itália.

Disponível gratuitamente em: http://www.dis.uniroma1.it/~cosin/html_pages/COSIN-Tools.htm

Documentação em: http://www.dis.uniroma1.it/~cosin/publications/deliverableD13.pdf

32/60

Estrutura da Biblioteca

Generators

Measures

Search algorithms

Bow-tie discovering

File converters

Miscellaneous

33/60

Pagerank

As páginas web são apresentadas em ordem decrescente de seu pagerankPageRank (PR) é um valor numérico que representa o quão importante uma página éSimula o procedimento de um internauta!

Selecione uma página ao acaso (aleatória)Repita até convergir:com probabilidade visita uma página vizinhacom probabilidade 1-visita uma página vizinha

Em geral

PageRank algorithm [BP 97]

Um nível de propagaçãoBoas paginas devem ser apontadas por boas paginas!

ij:j jD

jPRε+

Nε=iPR 1

1

1/3

1/3

1/3

35/60

PageRank: propagação do ranking

Algoritmo HITS (Kleinberg)

Define:Autority: páginas com muitos links de entradaHub: páginas com muitos links de saída

Inicialize todos pesos com valor 1

Repita ate convergir– Os hubs recebem os pesos dos authorities– Os authorities recebem os pesos dos hubs

Normalize os pesos

ji:j

ji a=h ij:j

ji h=a

Pagerand and HITS Algorithms

ambos são algoritmos iterativos;

cálculo através de um processo algébrico

convergem para o principal autovetor da matriz de links da do webgraph (matriz de transição de uma cadeia de Markov)

38/60

Algoritmos de Classificação

Outros alg. de classificação: Salsa, ExpertRank, etc.Avaliação:

Classificação adequadaCálculo rápidoEstabilidadeMenos susceptível a link spamming

39/60

Algoritmos de memória secundária

O grafo não pode ser carregado em memória principal, mas armazenado em memória secundária

Algoritmos de memória secundária buscam minimizar o acesso a disco

Tratando-se de grafos de grande dimensão, quase na totalidade os algoritmos não são executados em memória principal

Algoritmos de memória principal, semi-externos e de memória secundária

40/60

Webgraph do domínio .br

Um novo retrato da web brasileira, M. Modesto, A. Pereira, N. Ziviani, C. Castillos, R. Baeza-Yates, 2005 (Brasil + Chile)

domínio .br

7.7 milhões de páginas e 126 milhões de links (média de 16 links por página)

41/60

Webgraph do domínio .br

Média de 14,4 Kb por página. Anteriormente era de 9 Kb (Um retrato da web brasileira, Veloso et al, 2000)

6.4% das páginas são duplicadas

41.7% das páginas são dinâmicas

42/60

Webgraph do domínio .br

Idioma: português 88,6% inglês 11,2% e espanhol 1,16%

Domínio: 91.1% com.br 2.7% org.br0,3% edu.br

Extensão: html: 97.92%pdf: 0.88 %doc: 0.48%

43/60

Propriedades Avançadas

Cálculo do número de triângulos do grafo

Cálculo do número de cliques bipartidos de pequena dimensão

Cálculo do coeficiente de clustering

44/60

Comunidades Web emergentes

Identifique todos cliques bipartidos de dimensão 3 ≤ i ≤ 10

45/60

Bases de Dados Alternativas

Wikipedia www.wikipedia.org: maior enciclopédia online do mundo

Cada artigo é um nó e cada hyperlink entre artigos é um arco do grafo

Poucos links externos

Um grafo pode ser gerado para cada língua

Língua Inglesa: 1.250.000 nós (15 arcos por nó)

Possui informação temporal

46/60

Algoritmos de Data Stream

algoritmos de aproximação baseados em probabilidadeusam memória limitadaOriginalmente: dados são lidos uma única vez em forma de stream

Usam sketch (tipo e numero de funções hash) ou amostragem (amostra e tamanho da amostragem)Já propostos: triângulos, cliques bipartidos e coeficiente de clustering

47/60

Contando o Número de Triângulos de um Grafo

• Dado um grafo G=(V,E), onde V e o conjunto de nós e E o conjunto de arcos, considere todas as triplas de três nós V;

T0 T1 T2 T3

Contando o Número de Triângulos de um Grafo

O que é uma amostra?

?

?a

b

v

Seleciona-se um arco e=(a,b) E

e um no v V \ {a,b}, e observa-se a ocorrência dos outros arcos.

Contando o Número de Triângulos de um Grafo

Quantas amostras deste tipo tem um grafo?

• A seguinte propriedade e verdadeira para qualquer grafo

T1 + 2T2 + 3T3 = |E|(|V|-2)

• Triplas do tipo T0 nao fazem parte desta amostra

Contando o Número de Triângulos de um Grafo

Os algoritmos podem se beneficiar da estrutura dos dadosEm geral são polinomiais de baixa ordemMotivação: necessidade de cálculos on the fly, cálculo de propriedades do webgraph, redes de sensores, etc.

51/60

Compressão

Níveis de compressão:Conteúdo da páginaURL da páginaWebgraph

Usa técnicas especializadas que permitem grande compressão e rápido acesso aos dados.

52/60

Observações levadas em consideração para compressão

Consecutividade: muitos links num mesmo web site são similares lexicograficamente.

Ex: http://my.sample.com/whitepaper/nodeA.htmlhttp://my.sample.com/whitepaper/nodeB.html

Localidade: cerca de 80% dos links são locais, ou seja, apontam para páginas no mesmo domínio

Similaridade: Páginas do mesmo domínio tendem a ter muitos links que apontam para as mesmas páginas

56/60

Compressão do Webgraph

Melhor compressão = (3.08 + 2.89) bits por arco: Universidade Estadual de Milão (http://webgraph.dsi.unimi.it)

Compressão vs. tempo de acesso

Acesso seqüencial e aleatório

57/60

Conclusões

Tópico atual, com muitos trabalhos em aberto e muitas conferências na áreaDeve-se ter uma visão geral, mas especializar-se em poucos tópicosReúne resultados de diversas áreasEquilíbrio entre teórico e praticoOs estudos são recentes, de interesse atual, e ainda carece de muita pesquisa

Muitos problemas de dimensões diversas

58/60

Tópicos de InteresseGERAL: Algoritmos e OtimizaçãoAlgoritmos de memória secundáriapropor algoritmos de data stream para o cálculo de propriedades avançadasGeração de grafos sintéticosevolução temporal do grafo: geração de grafos, propriedades e classificação.determinar como tais propriedades podem aprimorar as ferramentas de busca

59/60

Áreas Relacionadas

AlgoritmosRecuperação de informaçõesMineração de dadosBanco de dadosInteligência ArtificialProcessamento de Linguagem natural

60/60

Contato

Luciana Salete Buriolburiol@inf.ufrgs.br

www.inf.ufrgs.br/~buriol

top related