webgraph: algoritmos e métodos luciana salete buriol instituto de informática, universidade...
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