Sistemas de RI na Web Adriano Melo Amora Albuquerque Anália Lima Eduardo Pires Ivan França Roteiro Introdução Objetivos Entendendo a Web Arquiteturas Técnicas Estratégia de Busca Crawlers Browsing Metabuscas Conclusão A Web Pode ser vista como uma grande base de dados não estruturada e ubíqua Surge a necessidade de ferramentas para gerenciar, buscar e filtrar informações Formas de busca na Web Engenhos de busca Diretórios de sites Exploração de hyperlinks +1.000.000.000 de buscas são realizadas por dia Google data, September 2010 +1.000.000.000 de pessoas usam o google a cada semana Google data, September 2010 20% das buscas feitas nos últimos 90 dias nunca tinham sido feitas antes Google Internal Data, April 2010 10 bilhões de imagens estão indexadas no Google Images* (eram 250 milhões em 2001) * TechCrunch, July 2010 115.000 filmes é a equivalência do total de uploads de vídeos feitos no YouTube por mês 700 bilhões de execuções de vídeos foram realizadas no YouTube em 2010 2.9 bilhões de horas são gastas por mês vendo os vídeos do YouTube quem tem acesso a esse conteúdo? todo mundo! (exceto os vídeos do YouTube) 600 milhões de pessoas estão cadastradas no facebook* (250 milhões entraram em 2010) * Fim de 2010 9.3 bilhões de horas são gastas por mês nas páginas do site 30 bilhões de documentos como links e notícias são compartilhados a cada mês no facebook Quem tem acesso a esse conteúdo? bind e os usuários do facebook Desafios Grande quantidade de dados Dados voláteis (mudam muito rápido) Acesso ao conteúdo produzido em redes sociais Conteúdo heterogêneo (multimídia, linguagem) Informações redundantes e não estruturadas Entendendo a Web Caracterização da WEB Mensurando a WEB Organização atual da WEB • Arquiteturas Mensurando a WEB Qual o número de computadores conectados a internet? 500 milhões de hosts, em mais de 200 países. Mensurando a WEB Mensurando a WEB Mensurando a WEB Qual o número de websites na internet? • O Netcraft roda desde agosto de 1995 • Em maio de 2011 foram recebidas respostas de mais de 324 milhões websites. Organização atual da WEB WEB é uma coleção não controlada de documentos. • Inserção de documentos • Formato dos documentos Engenhos de busca • Recuperar informações na WEB • Permitir a consulta por usuários Engenhos de Busca Arquitetura • Centralizada • Usa crawlers(rastreadores) • Distribuída • A busca é realizada utilizando um esforço de coordenação entre vários gatherers e brokers Arquitetura Centralizada Arquitetura Centralizada Crawlers (robots, spiders, wanderers) • Buscam páginas na WEB • Enviam para um servidor principal • Roda em um sistema local • Envia requisições servidores web remotos Arquitetura Centralizada Indexer • Cada página baixada é processada localmente • A informação indexada é salva e a página é descartada • Exceção: alguns sites de busca mantêm um cachê local algumas cópias das páginas mais populares Arquitetura Centralizada Principais dificuldades • Recolha dos dados • Natureza dinâmica da WEB • Volume de dados • Sobrecarga nos servidores web • Requisições de diferentes crawlers • Tráfego na WEB • Objetos recolhidos pelos crawlers • Informações recolhidas independentemente • Sem coordenação Arquitetura Distribuída Novos elementos • Gatheres (recolhedores) • Brokers Arquitetura Distribuída Gatherers (recolhedores) • Coletar e extrair informações de um ou mais servidores WEB • Tempos de coletas são periódicos • definidos pelo sistema Arquitetura Distribuída Brokers • Obtém informações extraídas pelo Gatherer • Recuperam informações de Brokers • Mecanismo de indexação • Atualizando índices • Interface de consulta Arquitetura Distribuída Vantagens • Redução na carga dos servidores web • Gatherers podem rodar em um servidor web sem gerar tráfego externo • Redução no tráfego da rede • Arquitetura centralizada retém todo os documentos, enquanto que a arquitetura distribuída move apenas o que é extraído pelos Gatherers • Evita trabalho redundante • Um gatherer envia informações para vários brokers, reduzindo repetição do trabalho Ranking na Web Base dos algoritmos mais utilizados Considerar a relevância de web pages por meio dos links Incomming links Outgoing Links Conceitos Básicos Uma página da web valiosa e informativa é geralmente apontado por um grande número de hiperlinks, ou seja, ele tem um grande indegree (“grau de entrada”) . Essa página é chamada um “authority” Uma página da Web que aponta para muitas páginas “authority” é um recurso útil e é chamado de “hub”. Um “hub” tem geralmente uma grande outdegree (“grau de saída”). LINK ANALYSIS: HUBS AND AUTHORITIES ON THE WORLD WIDE WEB [CHRIS H.Q. DING, HONGYUAN ZHA , XIAOFENG HE , PARRY HUSBANDS , ANDHORST D. SIMON] Hypertext Induced Topic Selection (HITS) O algoritmo foi criado por Jon Kleinberg Precursor do Page Rank, utilizado pelo Google. O algoritmo atribui pontuações de importância para os hubs e authorities seguindo este conceito: Uma boa authority deve ser apontada por vários bons hubs e um bom hub deve apontar para várias boas authorities. Hypertext Induced Topic Selection (HITS) Determinar subgrafo (S) composto pelo conjunto de páginas retornadas em uma busca e páginas que apontam e são apontadas por páginas deste conjunto. Realizar várias iterações para determinar um “valor hub” e um “valor authority” para cada página do subgrafo. Esses valores são normalizados. O algoritmo aplica iterações até que pesos de hub e authority cheguem a convergir, isto é, até que estes pesos não variem acima de um valor prédeterminado. Hypertext Induced Topic Selection (HITS) Todo este processamento, que leva cerca de alguns minutos, é realizado no momento da consulta. Por esta razão o HITS não atende ao requisito de tempo imposto pelos engenhos de busca comerciais, que é de poucos segundos. Algumas extensões do algoritmo HITS que adicionaram análise de conteúdo à análise puramente estrutural foram desenvolvidas pelo projeto CLEVER da IBM. Combinando Informações Textuais e Estruturais na Recuperação de Documentos Web. [Roberta de Souza Coelho, Marcelo Nery dos Santos,Silvio Romero Lemos Meira] PageRank PageRank™ é uma família de algoritmos de análise de rede que dá pesos numéricos a cada elemento de uma coleção de documentos hiperligados, como as páginas da Internet, com o propósito de medir a sua importância nesse grupo por meio de um motor de busca. O processo do PageRank™ foi patenteado pela Universidade de Stanford. Somente o nome PageRank™ é uma marca registrada do Google. PageRank e Google O sistema PageRank é usado pelo motor de busca Google para ajudar a determinar a relevância ou importância de uma página. O Google mantém uma lista de bilhões de páginas em ordem de importância, isto é, cada página tem sua importância na Internet como um todo. A importância se dá pelo número de votos que uma página recebe. Um voto é um link em qualquer lugar da Internet para aquela página. Os votos de páginas de alta popularidade na Web contam mais do que os votos de sites de baixa popularidade. Quanto mais links uma página de Web oferece, mais diluído seu poder de votação. Uma boa unidade de medida para definir o PageRank™ de uma página pode ser a percentagem (%) de páginas que ela é mais importante. PageRank e Google O PageRank faz uma avaliação objetiva da importância de páginas da web, resolvendo uma equação de mais de 500 milhões de variáveis e 2 bilhões de termos. O mecanismo de pesquisa do Google também analisa o conteúdo completo de uma página e os fatores em fontes, subdivisões e a localização exata de cada palavra. Quais os sites com maior PageRank? O website Search Engine Genie atualizou sua lista dos websites com maior PageRank e tornou a informação pública no dia 20 de janeiro de 2011. Google Caffeine Exibe taxa maior de resultados mais recentes devido sua atualização mais constante. Ocupa cerca de 100 milhões de gigabytes de armazenamento em um banco de dados e adiciona novas informações auma taxa de centenas de milhares de gigabytes por dia. Google Vídeo – Como Google funciona http://www.google.com/howgoogleworks/ É possível manipular o PageRank™ atribuindo links descontextualizados com o objetivo da página, modificando a ordenação de resultados na pesquisa pelo Google e induzindo a resultados pouco relevantes ou tendenciosos. Googlebombing failure ou miserable failure: retornava biografia oficial da Casa Branca para o presidente dos EUA, George W. Bush e em sequência a página de Michael Moore, inimigo declarado do presidente dos EUA. Crawlers SPIDERS, BOTS, etc. Crawlers Coleta automática e sistemática de documentos da Web a serem indexados e consultados pela máquina de busca Crawlers Como funcionam? Crawlers Estratégias de busca: • Em Profundidade - Resulta em uma coleta “focada”, pois o crawler caminha por todo um determinado site antes de ir para o próximo. Podese limitar o número de níveis. Crawlers Estratégias de busca: • Em Largura com sufixo de URL - Exemplo: *.terra.com.br. Garante cobertura balanceada entre sites. Técnica bastante utilizada. Crawlers Estratégias baseadas em conectividade • Referências (Backlink count) - Quanto mais links apontando para uma página maior a "importância" dela. • Variações recursivas - Links vindos de páginas com maior "importância" tem maior peso. Esta é a técnica usada pelo algoritmo PageRank™. Crawlers Arquitetura Crawlers Componentes Crawlers Coletores • Responsáveis pela requisição de páginas aos servidores HTTP • Extraem os links das páginas recebidas e enviam ao escalonador • Requisitam do escalonador uma ou mais URLs a serem coletadas • Podem realizar um escalonamento local (short term scheduling) Crawlers Servidor de Nomes • Atendem requisições DNS dos coletores • Mantêm um cache de identificadores DNS (nomes) resolvidos • Crucial para evitar que cada coletor faça requisições DNS remotas Crawlers Servidor de Armazenamento • Recebem as páginas ou outros objetos coletados e armazenam em uma base local • Fazem a extração (parsing) de texto • Podem tratar vários formatos: Postscript, PDF, Word, Powerpoint, etc. Crawlers Escalonador • Responsável por decidir qual a próxima URL a ser coletada • Coordena as ações dos coletores • Estratégias de busca (LIFO, FIFO, PageRank) • Deve garantir: • Protocolo de exclusão Robots.txt Retardo mínimo entre requisições a um mesmo servidor HTTP. • Não haverão coletas repetidas Crawlers Qual a melhor estratégia de escalonamento? • Coletar k páginas com vários tipos de escalonamento (Randômico, FIFO, backlink e PageRank) • Critérios de avaliação: Freqüência de termos, Backlink, PageRank, tipo de URLs • Resultado: • 179.000 páginas do domínio stanford.edu • Estratégia baseada em PageRank é a melhor • Estratégia baseada em FIFO é boa Crawlers Qual a melhor estratégia de escalonamento? • Usando somente PageRank como métrica • Resultado • Estratégia FIFO descobre páginas com alto PageRank primeiro • Conclusão • Máquinas com ranking baseado em conectividade devem coletar em FIFO Restrições Crawlers Protocolo de exclusão • Recomendação informal • Restrições de acesso • Delay mínimo entre requisições a um mesmo servidor Crawlers Robots.txt • Regras de restrição para navegação automática • Está sempre na URL raiz e deve ser consultado antes • Obediência não é obrigatória Robots.txt User-agent: * Disallow: /cgi-bin/ Disallow: /tmp/ Disallow: /junk/ • http://www.robotstxt.org/db.html Recomendações Crawlers Respeitar retardo mínimo entre requisições em um mesmo servidor HTTP Usar header “User-Agent” • Nome do robô, e-mail, responsável, instituição, etc Evitar horários de tráfego intenso Limitar o número de páginas coletadas em sites grandes Crawlers Não coletar tipos de dados não-indexáveis • JPG, EXE, … Cuidado com links relativos • <a href=“../../../material/”>Clique aqui</a> Cuidado com Buracos Negros (Spider Traps) • Páginas que “prendem” o crawler num loop infinito • Links como: http://foo.com/bar/foo/bar/foo/bar/foo/bar/.... • Páginas dinâmicas que geram número infinito de páginas (Ex: calendários) Browsing Recapitulando... Termos de Busca Estratégia de Busca Termos do sistema Browsing “A arte de não saber o que se quer até que se encontre” Contraste da busca direta Browsing Atividade não orientada, não programada, não sistemática, informal e casual Níveis de atenção: - Ao acaso - Quase ao acaso - Semideterminado Browsing Atividade não orientada, não programada, não sistemática, informal e casual Essencialmente visual Acesso direto, sem mediador Browsing Browsing Navegação Contexto físico Ponto de destino Mas no contexto virtual, significam a mesma coisa Diretórios Web Ferramentas baseadas em browsing Classifica o conhecimento humano Pesquisas retornadas são relevantes Cobertura relativamente pequena Meta Buscadores Nem todas as páginas da web estão em todos os engenhos de busca Meta Buscadores Combinação de resultados de diversas fontes Ordenação por diferentes atributos Navegação mais simples Diminuição da precisão Busca usando hyperlinks Inclui: Linguagens de consulta web Busca dinâmica Diminui a performance Linguagens de consulta web: •A pesquisa pode incluir link entre as páginas •O modelo de grafos é o mais utilizado para essa representação Busca usando hyperlinks Linguagens de consulta web: • Nós: Páginas web • Arestas: Hyperlink • Modelo de semi-estrutura: Conteúdo Por que usar esse tipo de busca? • Combinação de estrutura com conteúdo; • É possível extrair e integrar o conteúdo das páginas; • Construir e restruturar sites. Busca usando hyperlink Busca dinâmica: Busca online para descobrir informações relevantes dentre os links que foram retornados na busca. Abordagem lenta pra toda web, mas prática pra um subconjunto específico Heurística: Documentos relevantes geralmente têm vizinhos que também são relevantes Busca usando hyperlinks Busca dinâmica: Algoritmo Dada uma query, para cada passo: •Analisar a página com mais alta prioridade; •Se a página for relevante, a heurística decide seguir ou não os links dessa página; •Se decidir que sim, novas páginas serão adicionadas à lista. Tendências e Questões de Pesquisa Modelagem: Adaptação às necessidades da Web; Melhores paradigmas e melhores filtros de informação Consulta: Melhorar a combinação entre estrutura e conteúdo; Processamento de linguagem natural Arquiteturas Distribuídas: Lidar com o crescimento da quantidade de informação na web; Qual será o gargalo no futuro? Capacidade dos servidores ou largura de banda? Tendências e Questões de Pesquisa Ranking: Melhores esquemas de ranking; Exploração tanto no conteúdo como na estrutura; The search engine persuasion problem Indexação: Qual a melhor visão lógica para um texto? O que deve ser indexado? Desafios Mapear e indexar toda a Web SEO: Search Engine Optimization Rastrear e indexar aplicações Web 2.0 • Making AJAX Applications Crawlable • http://code.google.com/intl/ptBR/web/ajaxcrawling/index.html SEO - Search Engine Optimization Hoje em dia cerca de 85% do tráfego na Internet inicia-se com uma pesquisa num motor de busca como o Google, o Yahoo ou o Bing Conjunto de técnicas que otimizam os web sites, tornando-os mais aptos a estarem bem colocados nas pesquisas efetuadas pelos potenciais visitantes. São baseados naquilo que os buscadores levam em conta no momento da busca. SEO – Exemplos de fatores considerados Tempo de registro do domínio (Idade do domínio) Freqüência do conteúdo: regularidade com a qual novo conteúdo é adicionado Originalidade do conteúdo Quantidade de links externos Relevância do site que linka para o seu website Citações e fontes de pesquisa (indica que o conteúdo é de qualidade para pesquisa) Links "quebrados“ Conteúdo inseguro ou ilegal Qualidade da codificação HTML, presença de erros no código Dúvidas Referências http://www.apcwebconcept.com/Servicos?_Locale=pt&ID=f7dd7229-c6e1-4a3a-86ac-f3f21f1054de http://googleblog.blogspot.com/2010/06/our-new-search-index-caffeine.html http://ranger.uta.edu/~chqding/papers/hits5.pdf http://www.dimap.ufrn.br/~roberta/publicacoes/rita_magazine.pdf http://www.mestreseo.com.br/pagerank/o-que-e-pagerank http://www.google.com/corporate/tech.html http://informatica.hsw.uol.com.br/algoritmo-google1.htm [1]http://www.google.com/url?sa=t&source=web&cd=1&ved=0CBYQFjAA&url=http%3A%2F%2Fww w.di.ufpe.br%2F~sfd%2Funiverso%2Finternet%2Frec_web.doc&ei=HqrKTaf7Gcuftgeso7T6Bw&usg= AFQjCNG14humR3V6o6-TJ4GaO2DrOpdWyw&sig2=QCfp65iffOmVmj-nHH6tRg [2] http://www.cetic.br/hosts/2011/index.htm [3]http://news.netcraft.com/archives/category/web-server-survey/ http://www.google.co.uk/intl/en/landing/internetstats/