Introduction to Information Retrieval Introduction to Information Retrieval CS276 Information Retrieval and Web Search Christopher Manning and Prabhakar Raghavan Lecture 17: Crawling and web indexes Introduction to Information Retrieval Aula de Hoje Crawling. Connectivity servers. Introduction to Information Retrieval Sec. 20.2 Basic crawler operation (operações básicas sobre rastreadores) Comece com sementes, as “URLs” Buscar e analisar: Extração do apontamento das URLs. Coloque as URLs obtidas em uma fila. Busque cada URL da fila, e repita a busca. Sec. 20.2 Introduction to Information Retrieval Crawling picture (Imagem Crawling) URLs analisadas e rastreadas Seed Pages (Pags. Sementes) Web Fronteiras URLs Área invisivel Web Introduction to Information Retrieval Sec. 20.1.1 Imagens Simples – Complicações Impossível o rastreamento na web com uma máquina. Todas as etapas acima são distribuídas. Páginas Maliciosas. Páginas Spam. Armadilhas spider – inclusões geradas dinâmicamente. Mesmo páginas não maliciosas são desafios. Latência/largura-banda variam para servidores remotos. Estipulações webmaster. Qual a profundidade do rastreamento dentro da hierarquia URL de um site ? Espelhos de sites e páginas duplicadas. Boas práticas – não pesquisar um servidor com muita frequência. Introduction to Information Retrieval Sec. 20.1.1 O que qualquer indexador deve fazer Sendo Claro: Considerações claras implícitas e explícitas a respeito: Apenas permitir o rastreamento da página. Consideração robots.txt (mais detalhes posteriormente). Ser Robusto: ser imune a armadilha da aranha e ao comportamento malicioso de outros servidores. Introduction to Information Retrieval Sec. 20.1.1 O que qualquer indexador deve fazer Ser capaz de operação distríbuida: projetado para rodar em máquinas distribuídas. Ser escalável: designado a aumentar a taxa de rastreamento, adicionando mais máquinas. Desempenho/eficiência: permitir a utilização todal de recursos de processamento e de rede. Introduction to Information Retrieval Sec. 20.1.1 O que qualquer indexador deve fazer Buscar primeiro páginas de maior qualidade. Operação contínua: Continua pesquisando novas cópias de uma página previamente selecionada. Extensivo: Adaptar-se a protocolos com novos formatos de dados. Sec. 20.1.1 Introduction to Information Retrieval Imagem de rastreamento atualizada URLs rastreadas e analisadas Págs sementes Fronteira URL Fio Crawling Web invisivel Introduction to Information Retrieval Sec. 20.2 Fronteira URL Pode incluir várias páginas a partir do mesmo host. Deve-se tentar obter todas ao mesmo tempo. Deve-se tentar manter todos os fios/linha de pesquisa ocupados. Introduction to Information Retrieval Sec. 20.2 Boas praticas explicitas e implicitas Explicit politeness: especificações do webmaster em que partes do web site pode ser feita o rastreamento. robots.txt. Implicit politeness: mesmo sem especificação evitar acessar qualquer site várias vezes. Introduction to Information Retrieval Sec. 20.2.1 Robots.txt Protocolo para dar acesso limitado a aranha (“robots”) em um website, original em 1994. www.robotstxt.org/wc/norobots.html Website anuncia para a solicitação o que pode e o que não pode ser recuperado. Para a URL, cria um arquivo URL/robots.txt. Este arquivo especifica as restrições de acesso. Introduction to Information Retrieval Sec. 20.2.1 Robots.txt exemplo Nenhum robô deve pesquisar uma URL começando com "/yoursite/temp/", exceto o robo chamado “searchengine": User-agent: * Disallow: /yoursite/temp/ User-agent: searchengine Disallow: Sec. 20.2.1 Introduction to Information Retrieval Etapas de processamento do rastreamento Escolha a URL a partir da fronteira. Buscar o documento URL. Analisar a URL. Which one? Resumo de links de outros docs(URLs). Verifique se a URL tem um conteúdo ja visitado Se não, adicione aos índices. Para cada extração URL: E.g., only crawl .edu, obey robots.txt, etc. Certifique-se de ter testado os filtros para URL. Verifique se já está na fronteira (eliminar URL duplicada). Sec. 20.2.1 Introduction to Information Retrieval Arquitetura básica de Rastreamento DNS WWW Doc FP’s robots filters URL set Filtro URL Elimina Dup URL Analisar Pesquisa Tem conteudo? Fronteira URL Introduction to Information Retrieval Sec. 20.2.2 DNS (Domain Name Server) Um serviço de pesquisa na internet. Com a URL, recuperar o indereço de IP. Serviço prestado por um conjunto de servidores distribuídos – com isso aumenta a frequência da pesquisa (no mesmo segundo). Implementações OS comuns de pesquisa DNS bloqueio: apenas um pedido fica pendente por vez. Soluções: DNS caching. Solução DNS batch – encaminha todos os pedidos juntos. Introduction to Information Retrieval Sec. 20.2.1 Análise: Normalização URL Quando um documento obtido é analisado, alguns dos links extraídos são URLs relativas. E.x., at http://en.wikipedia.org/wiki/Main_Page Temos um link relativo para /wiki/Wikipedia:General_disclaimer que o mesmo que o URL absoluto. http://en.wikipedia.org/wiki/Wikipedia:General_disclaimer Durante a análise, deve-se normalizar (expansão) como URLs relativos. Introduction to Information Retrieval Sec. 20.2.1 Conteúdo da visita? A duplicação é difundida na Web. Se a página buscada já existe no índice, não usar o processo. Isto é verificado através da zona de impressão digital do documento. Introduction to Information Retrieval Sec. 20.2.1 Filtros e robots.txt Filtros – expressões regulares para URL’s serem ou não rastreadas. Uma vez obtido o arquivo robots.txt que é obtido a partir de um site, não precisa buscar outras vezes. Se o fizer, tem a queima da largura da banda, hits web server. Arquivos robots.txt escondidos. Introduction to Information Retrieval Sec. 20.2.1 Eliminação de URL Duplicada Para um rastreamento não contínuo (oneshot) verifique se a URL extraída não esta na fronteira. Para um rastreamento contínuo – veja detalhes de implementação para a fronteira. Introduction to Information Retrieval Sec. 20.2.1 Distribuindo o Rastreador Executar múltiplos crawl threads, em diferentes processos – em nós potencialmente diferentes Distribuição geográfica de nós. Partições em Hosts que estão sendo rastreados em nós. Hash usado para partição. Como esses nós se comunicam? Sec. 20.2.1 Introduction to Information Retrieval Comunicação entre nós A saída do filtro URL em cada nó é enviada para a URL Duplicate Eliminator em todos os nós. DNS WWW Doc FP’s Análise Busca robots filters Vista com conteúdo? Fronteira URL Para Outros Host Host Fitro splitter URL De outros hosts URL set Elim URL Dup Introduction to Information Retrieval Sec. 20.2.3 Fronteira URL : duas razões principais Politeness: não atingiu um servidor web com frequência. Freshness: rastrear algumas páginas com mais frequência que outras. Ex., páginas (busca a novos sites) cujo conteúdo muda frequentemente. Esses objetivos podem ser conflitantes. (Ex., simples falha na fila de prioridades– muitos links conduzem para suas próprias páginas, causando uma explosão de acessos.). Introduction to Information Retrieval Sec. 20.2.3 Clareza – desafios Mesmo se restringir apenas um segmento para buscar a partir de um host, ele pode ser acessado repetidamente. Heurística Comun: insere um espaço de tempo entre os pedidos sucessivos ao hust>> tempo para buscar as hospedagens mais recentes. Sec. 20.2.3 Introduction to Information Retrieval Fronteira URL : Mercator scheme URLs Prioridade K filas de frente Seletor de fila Tendenciosa rota De frente para traz da fila B filas de volta Únicas em cada host Voltar ao seletor de fila Requisitando Crawl thread URL Introduction to Information Retrieval Sec. 20.2.3 Mercator URL frontier Flui a partir do topo para a fronteira das URLs. Filas de frente gerenciam a priorização. Filas de traz aplica clareza. Cada fila é FIFO. Sec. 20.2.3 Introduction to Information Retrieval Filas da Frente Priorização 1 K Seletor de fila tendenciosa, de frente para traz da rota da fila Introduction to Information Retrieval Sec. 20.2.3 Filas da Frente Prioritizer atribui a URL uma prioriade inteira entre 1 e K. Acrescenta a URL para a fila correspondente. Heuristics para a atribuição de prioridade. Taxa de atualização em amostras colhidas em rastreamentos anteriores. Aplicação específica (e.x., “rastrear sites de notícias com maior frequência”). Introduction to Information Retrieval Sec. 20.2.3 Seleção tendenciosa da fila de frente Quando uma fila de traz solicita uma URL (em uma sequência a ser descrita): busca uma da frente da fila ao invés de buscar uma URL. Esta escolha pode ser tedenciosa para as filas de maior prioridade ou alguma variável mais sofisticada. Pode ser randomizada. Introduction to Information Retrieval Sec. 20.2.3 Voltar a Fila Fila da frente é tendenciosa Volta seletor de rota da fila 1 B Volta selecionar da fila Pilha Sec. 20.2.3 Introduction to Information Retrieval Back queue invariants Cada fila de traz não é mantida vazia, enquanto o rastramento é feito. Cada fila de traz só contem URL´s a partir de um único host. Manter uma tabela de host para voltar a fila. Host name Back queue … 3 1 B Introduction to Information Retrieval Sec. 20.2.3 Voltar a fila da Pilha Uma entrada para cada fila de volta. A entrada para o primeiro tempo te em que o host da fila de traz pode ser acessado novamente. Nesse primeiro tempo para determinar a partir de: Último acesso ao host. Em qualquer tempo, escolhemos o buffer heuristic. Introduction to Information Retrieval Sec. 20.2.3 Voltar a Fila de Processamento Um rastreador usa um fio para procurar uma URL para rastrear: Extrai do início da pilha. Obtem a URL na cabeça da fila q de traz correspondente (pesquisa sobre a tabela). Verifica se a fila “q” agora esta fazia – se afirmativo, puxa uma “v” URL das filas da frente. Se ja existir uma fila de volta para o host v’s, acrescentar v para q e buscar outra URL da frente da fila, e repetir. Se não adicionar v a q. Quando q não estiver vazio, criar entrada na pilha para ele. Introduction to Information Retrieval Sec. 20.2.3 Number of back queues B Manter todos os tópicos respeitando a clareza. Mercator recomendação: tres vezes mais como filas de traz como rastreador de tópicos. (three times as many back queues as crawler threads) Conectividade de Servidores Introduction to Information Retrieval Sec. 20.4 Conectividade de Servidores Suporte para consultas gráficas rápidas na Web. Quais URLs apontam para uma determinada URL? Qual o ponto da URL? Mapeando armazenamentos de memória. URL para outlinks, URL para inlinks. Aplicações. Controle de Rastreamento. Análise Gráfica da Web. Conectividade, otimização de rastreamento. Análise do Link. Introduction to Information Retrieval Sec. 20.4 Campeão de Trabalhos Publicados Boldi and Vigna. http://www2004.org/proceedings/docs/1p595.pdf Webgraph – marcar algorítimos e implementações java. Fundamental goal – manter listas do nó de memória. Para isso, comprimindo as listas adjacentes é o caminho crítico. Introduction to Information Retrieval Sec. 20.4 Listas Adjacentes O conjunto de vizinhos de um nó. Suponha cada URL representada por um número inteiro. Ex., para uma pagina web de 4 billion, precisa de 32 bits por nó. Simplesmente, isso demanda 64 bits para representar cada hyperlink. Introduction to Information Retrieval Sec. 20.4 Compressão da Lista Adjacente Propriedades exploradas na comprensão: Similaridade (entre listas). Localidade (vários links por página vá para “próxima” página). Usar os espaços na codificação das listas ordenadas. Distribuição dos valores nos espaços. Sec. 20.4 Introduction to Information Retrieval Armazenamento Boldi/Vigna buscar descer a média de ~3 bits/link. (URL para URL da borda). Como? Why is this remarkable? Introduction to Information Retrieval Sec. 20.4 Principais idéias de Boldi/Vigna Considere lexicographicamente ordenada a lista de URLs, ex.: www.stanford.edu/alchemy www.stanford.edu/biology www.stanford.edu/biology/plant www.stanford.edu/biology/plant/copyright www.stanford.edu/biology/plant/people www.stanford.edu/chemistry Introduction to Information Retrieval Boldi/Vigna Sec. 20.4 Porque 7? Cada uma dessas listas tem uma lista adjacente. Principal idéia: devido aos modelos, a lista de adjacentes de um nó é similar a uma das 7 URLs anteriores lexicographicamente ordenadas. Lista expressa adjacente para um desses termos. E.x., considere esta lista de adjacentes: 1, 2, 4, 8, 16, 32, 64 1, 4, 9, 16, 25, 36, 49, 64 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144 1, 4, 8, 16, 25, 36, 49, 64 Codificar como (-2), remove 9, soma 8 Introduction to Information Retrieval Sec. 20.4 Codificando nas lacunas Dada uma lista ordenada de inteiros x, y, z, …, representar por x, y-x, z-y, … Compactar cada inteiro utilizando um código. código - numero de bits = 1 + 2 lg x d código : … Informação teórica vinculada: 1 + lg x bits z código: Funciona bem para inteiros a partir de uma lei de força Boldi Vigna DCC 2004 Introduction to Information Retrieval Sec. 20.4 As principais vantagens de BV Depende apenas de uma ordenação local regular. Ordenação Lexicographica funciona bem para a Web. Consultas nas adjacencias podem responder muito bem. Para buscar na vizinhança, rastrear a cadeia de protótipos. Esta sequência é geralmente curta (a semelhança é principalmente intra-hospedeiro). Pode também limitar o comprimento da cadeia durante a codificação. Um algorítimo de passagem é fácil de aplicar. Introduction to Information Retrieval Recursos IIR Chapter 20 Mercator: A scalable, extensible web crawler (Heydon et al. 1999). A standard for robot exclusion. The WebGraph framework I: Compression techniques (Boldi et al. 2004).