Webgraph:
algoritmos e métodos
Luciana Salete Buriol
Instituto de Informática,
Universidade Federal do Rio Grande do Sul
(UFRGS)
Slides de Luciana Buriol, Viviane Orengo e Leandro Wives
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
2/60
Sumário
Motivação e objetivos
Recuperação de Informações
Extração, armazenamento e compactação do
webgraph
Características topológicas e propriedades do
webgraph
Algoritmos de classificação
Algoritmos de aproximação para cálculo de
propriedades do webgraph
Conclusões
3/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áginas
1999: 200 milhões
2003: 3.5 bilhões de páginas
2005: 11.5 bilhões de páginas
2006: 24 bilhões de páginas
4/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
5/60
Web Crawling
Coleta das páginas web
6/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áginas
Após extrair a página, identifica seus links
Página web
7/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”
8/60
Estrutura de um crawler
bag  “seed”
while bag  {}
pick p  bag
download p
if p is seen continue
parse p
for each q  outlinks(p) do
if q is new then
bag  bag  {q}
end if
end for
store p
end while
9/60
Estrutura de um crawler
bag  “seed”
while bag  {}
pick p  bag
download p
if p is seen continue
parse p
for each q  outlinks(p) do
if q is new then
bag  bag  {q}
end if
end for
store p
end while
10/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
Tempo
 Banda disponível: 2 Mbps
 24 bilhões de páginas: mais de 200  3 pontos de coleta
discos?
 5.5 milhões de páginas por dia
 8 dias executando
11/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
http://www.dis.uniroma1.it/buriol/Query.ppt
em
As máquinas de busca comerciais, como Google,
Yahoo, Alta Vista, TodoBR, não são de domínio
público
12/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
13/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
14/60
Diferenças entre IR e Data Retrieval
Data Retrieval
IR
 Tabelas – dados estruturados
 Documentos – pouca estrutura
 Consultas claras e precisas
expressas em uma linguagem
(SQL)
 Consultas vagas e ambíguas
expressas por meio de palavraschave
 Consultas recuperam todas as
 Consultas não recuperam todos os
tuplas relevantes e todas as tuplas
itens relevantes e nem todos os
recuperadas são relevantes
recuperados são relevantes.
 Todas as tuplas recuperadas são
igualmente relevantes à consulta
 Documentos apresentados em
ordem decrescente de relevância
15/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
16/60
Índice invertido
Índice
Lista de postings
(dicionário)
t1
t2
t3
.
.
.
tn
Em memória,
se possível
17
Normalmente em
disco
17/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
18/60
Componentes de um sistema de IR
Query
Process Text
Search Index File
Results
Tokenization,
Stop Word Removal,
Stemming &
Term Weighting
Inverted File
Retrieve
Documents
Document
Collection
Produce ranked
list of matches
Ranking Algorithm
Tokenization,
Stop Word Removal,
Stemming &
Term Weighting
19/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)
20/60
Link Analysis
Identificação da estrutura topológica do grafo
Cálculo de diversas propriedades do grafo
classificação das páginas web
21/60
Medidas Elementares
Distribuiçã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 1
d
para algum >1
α
22/60
Distribuição do grau das páginas
23/60
Indegree Distribution
24/60
Outdegree Distribution
25/60
Pagerank Distribution
26/60
Estrutura Macroscópica do
Webgraph
Graph structure in the Web, Broder et al, 2000
27/60
Identificando tentáculos e tubos
28/60
Ilhas: nós restantes
29/60
Medidas da estrutura bow-tie para
wikigraphs
30/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/COSINTools.htm
Documentação em:
http://www.dis.uniroma1.it/~cosin/publications/deliverable
D13.pdf
31/60
Estrutura da Biblioteca
Generators
Measures
Search algorithms
Bow-tie discovering
File converters
Miscellaneous
32/60
Pagerank
As páginas web são apresentadas em ordem
decrescente de seu pagerank
PageRank (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 vizinha
 com probabilidade 1-visita uma página vizinha
Em geral 
33/60
PageRank algorithm [BP 97]
Um nível de propagação
Boas paginas devem ser apontadas
por boas paginas!
1/3
1/3
1/3
1
PR  j 
PR i  = ε + 1  ε  
N
j : j i D j 
PageRank: propagação do ranking
35/60
Algoritmo HITS (Kleinberg)
Define:
Autority: páginas com muitos links de entrada
Hub: 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
ai =  h j
hi =  a j
j: j i
Normalize os pesos
j :i  j
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)
Algoritmos de Classificação
Outros alg. de classificação: Salsa, ExpertRank, etc.
Avaliação:
Classificação adequada
Cálculo rápido
Estabilidade
Menos susceptível a link spamming
38/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
39/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)
40/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
41/60
Webgraph do domínio .br
Idioma:
português 88,6%
inglês 11,2% e
espanhol 1,16%
Domínio:
 Extensão:
html: 97.92%
pdf: 0.88 %
doc: 0.48%
91.1% com.br
2.7% org.br
0,3% edu.br
42/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
43/60
Comunidades Web emergentes
Identifique todos cliques bipartidos de dimensão
3 ≤ i ≤ 10
44/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
45/60
Algoritmos de Data Stream
algoritmos de aproximação baseados em
probabilidade
usam memória limitada
Originalmente: 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
46/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
47/60
Contando o Número de Triângulos
de um Grafo
O que é uma amostra?
Seleciona-se um arco e=(a,b)  E
e um no v  V \ {a,b}, e observa-se a
ocorrência dos outros arcos.
b
?
a
?
v
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 dados
Em geral são polinomiais de baixa ordem
Motivação: necessidade de cálculos on the fly,
cálculo de propriedades do webgraph, redes de
sensores, etc.
Compressão
Níveis de compressão:
Conteúdo da página
URL da página
Webgraph
Usa técnicas especializadas que permitem grande
compressão e rápido acesso aos dados.
51/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.html
http://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
52/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
56/60
Conclusões
Tópico atual, com muitos trabalhos em aberto e muitas
conferências na área
Deve-se ter uma visão geral, mas especializar-se em
poucos tópicos
Reúne resultados de diversas áreas
Equilíbrio entre teórico e pratico
Os estudos são recentes, de interesse atual, e ainda
carece de muita pesquisa
Muitos problemas de dimensões diversas
57/60
Tópicos de Interesse
GERAL: Algoritmos e Otimização
Algoritmos de memória secundária
propor algoritmos de data stream para o cálculo de
propriedades avançadas
Geração de grafos sintéticos
evolução temporal do grafo: geração de grafos,
propriedades e classificação.
determinar como tais propriedades podem
aprimorar as ferramentas de busca
58/60
Áreas Relacionadas
Algoritmos
Recuperação de informações
Mineração de dados
Banco de dados
Inteligência Artificial
Processamento de Linguagem natural
59/60
Contato
Luciana Salete Buriol
[email protected]
www.inf.ufrgs.br/~buriol
60/60
Download

Webgraph: algoritmos e métodos