A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

CS276 Information Retrieval and Web Search

Apresentações semelhantes


Apresentação em tema: "CS276 Information Retrieval and Web Search"— Transcrição da apresentação:

1 CS276 Information Retrieval and Web Search
Christopher Manning and Prabhakar Raghavan Lecture 16: Web search basics (Fundamentos da busca Web) Eduardo Augusto Silvestre

2 História breve (não-técnica)
Engines baseadas em palavras chave ca Altavista, Excite, Infoseek, Inktomi, Lycos Ranking de busca paga: Goto (transformado em Overture.com  Yahoo!) Sua busca no ranking dependente de quanto você pagou Leilão para palavras chave: casino era caro!

3 História breve (não-técnica)
1998+: Ranking baseado em link, guiado pelo Google Jogue longe todas as outras engines de antes salvo Inktomi Grande experiência do usuário de um modelo de negócios Enquanto isso os ganhos anuais do Goto/Overture’s foram próximos de $1 bilhão Resultado: Google adicionou busca paga “ads”, independente dos resultados de busca Yahoo seguiu se adaptando, adquirindo Overture (para busca paga) e Inktomi (para busca) 2005+: Google ganha parte da busca, dominando na Europa e muito forte na América do Norte 2009: Yahoo! eMicrosoft propõem oferecer busca paga combinada

4 Paid Search Ads Algorithmic results.

5 Fundamentos da busca Web
Sec Fundamentos da busca Web User The Web Web spider Indexer Search Indexes Ad indexes

6 Usuário precisa Need [Brod02, RL04]
Sec Usuário precisa Need [Brod02, RL04] Informational– quer aprender sobre alguma coisa (~40% / 65%) Navigational – quer ir para uma página (~25% / 15%) Transactional – quer fazer alguma coisa (web-mediated) (~35% / 20%) Acessar um serviço Downloads Shop Gray areas Encontrar um bom centro Busca exploratória “ver o que mais” Low hemoglobin United Airlines Seattle weather Mars surface images Canon S410 Car rental Brasil

7 Quão longe as pessoas olham os resultados ?
(Source: iprospect.com WhitePaper_2006_SearchEngineUserBehavior.pdf)

8 Avaliação empírica dos usuários dos resultados
Qualidade de páginas varia amplamente Relevância não é suficiente Outras qualidades desejadas (não relacionadas a RI !!) Conteúdo: Confiável, diverso, não-duplicado, bem mantido Legibilidade Web : mostrar corretamente e rápido S/ aborrecimentos: pop-ups, etc Precision vs. recall Na web, recall raramente importa O que importa Precisão de 1? Compreensividade – deve ser capaz de lidar com consultas obscuras Recall importa quando o número de resultados é muito pequeno Percepção do usuário pode não ser científica, mas é signficante sobre um grande agregado

9 Avaliação empírica dos usuários dos resultados
Relevância e validade dos resultados UI – Simples, sem bagunça, tolerante a erros Confiança – Resultados são objetivos Cobertura de tópicos para consultas polissêmicas Ferramentas fornecidas para Pre/Pós processo Mitigar erros do usuário (verificação ortográfica automática, auxílio na busca,…) Explícito: Busca dentro dos resultados, mais disso, refinar ... Antecipativa: buscas relacionadas Tratar excentricidade Vocabulário específico da Web Impacto sobre stemming, verificação ortográfica, etc Endereço Web digitado na caixa de busca “O primeiro, o último, o melhor e o pior …”

10 A coleção de documentos Web
Sec. 19.2 A coleção de documentos Web S/ projeto/coordenação Criação de conteúdo distribuído, linking, democratização da publicação Conteúdo inclui verdades, mentiras, informações obsoletas, contradições … Não estruturado (texto, html, …), semi-estruturado (XML), estruturado (banco de dados)… Escala muito maior que a coleção de texto anterior … mas registros de corporações estão alcançando Crescimento – “volume dobra em poucos meses”, ainda continua expandindo Conteúdo pode ser gerado dinamicamente A Web

11 SEO – Search Engine Optimization (Otimização da máquina de busca)
Spam SEO – Search Engine Optimization (Otimização da máquina de busca)

12 O problema com busca paga ads …
Sec O problema com busca paga ads … Custa dinheiro. Qual alternativa? SEO (Search Engine Optimization): “Tuning” sua página p/ aparercer nas primeiras posições nos resultados de algoritmos de busca p/ palavras chaves selecionadas Alternativa p/ não ter de pagar Assim, uma função de marketing Realizado por companias, webmasters e consultores (“Search engine optimizers”) para seus clientes Alguns perfeitamente legitimados, alguns sombrios

13 Search engine optimization (Spam)
Sec Motivos Comercial, político, religioso, lobbies Promoção consolidada pela propaganda Operadores Contratantes (Search Engine Optimizers) para lobbies, companias Web masters Provedor de serviços Forums Isto é, Web master world ( ) Truques para máquinas de busca específicas Discussão sobre papers acadêmicos 

14 Forma mais simples Primeira geração de máquinas confiavam em tf/idf
Sec Forma mais simples Primeira geração de máquinas confiavam em tf/idf As páginas do topo do ranking p/ consulta maui resort foram aquelas contendo mais maui’s e resort’s SEOs responderam com densa repetição dos termos escolhidos Isto é, maui resort maui resort maui resort Frequentemente, as repetições seriam da mesma cor como o plano de fundo da página Termos repetidos indexados pelos crawlers Mas não visível p/ humanos ou browsers Densidade de palavras puramente não pode ser confiável como um sinal de RI

15 Variantes de keyword stuffing
Sec Variantes de keyword stuffing Meta-tags “enganosas”, repetição excessiva Texto escondido com cores, truques de folha de estilo, etc. Meta-Tags = “… London hotels, hotel, holiday inn, hilton, discount, booking, reservation, sex, mp3, britney spears, viagra, …”

16 Cloaking Conteúdo falso serve à maquinas de busca spider
Sec Cloaking Conteúdo falso serve à maquinas de busca spider DNS cloaking: Troca de endereço IP. Is this a Search Engine spider? Y N SPAM Real Doc Cloaking

17 Mais técnicas spam Doorway pages (Páginas de portal) Link spamming
Sec Mais técnicas spam Doorway pages (Páginas de portal) Páginas otimizadas p/ uma única palavra chave que redirecionadas para página alvo de fato Link spamming Mutual admiration societies, links ocultos, prêmios – mais um desse depois Domain flooding: numerosos domínios que apontam ou redirecionam para uma página alvo Robôs Falsa stream de consulta – rank checking programs “Curve-fit” ranking programs of search engines Milhões de submissões via Add-Url

18 A guerra contra spam Sinais de qualidade – Prefira páginas autoritárias baseadas em: Votos dos autores (sinais de ligação) Votos dos usuários (sinais de uso) Policiando das submissões da URL Teste anti-robô Limites sobre as meta palavras chave Análise robusta de links Ignore ligações estatísticas improváveis (ou texto) Use análise de link para detectar spammers Reconhecimento de spammers por aprendizado de máquinas Treinando um conjunto baseado no conhecimento de spam Filtros amigavelmente familiares Análise linguística, técnicas de classificação, etc. Para imagens: flesh tone detectors, análise do texto fonte, etc. Intervenção editorial Listas negras Top queries audited Queixa de endereço Detecção de padrão suspeito

19 Mais sobre spam Máquinas de busca Web tem políticas das práticas SEO que eles toleram/bloqueiam Adversário da RI: a interminável (técnico) batalha entre SEO’s e máquinas de busca Web Pesquisa

20 Tamanho da Web

21 Qual é o tamanho da Web ? Questões Quem preocupa?
Sec. 19.5 Qual é o tamanho da Web ? Questões A Web é realmente infinita Conteúdo dinâmico, isto é, calendário Soft 404: é uma página válida Web estática contém duplicação sintática, principalmente devido a mirroring (~30%) Alguns servidores são raramente conectados Quem preocupa? Mídia e consequentemente o usuário Projetos de máquinas Engine crawl policy. Impacto sobre recall.

22 O que podemos tentar medir?
Sec. 19.5 O que podemos tentar medir? O tamanho relativo das máquinas de busca A noção de página sendo indexada é ainda razoavelmente bem definida Já existem problemas Extensão de documento: isto é, máquinas indexam páginas não ainda crawled, pela indexação anchortext. Restrição de documento: Todas engines restringem qual é indexado (primeiras n palavras, somente palavras relevantes, etc.) A cobertura de uma máquina de busca relativa a outro processo particular crawling.

23 (IQ é qualquer medida de teste IQ)
Sec. 19.5 Nova definição ? (IQ é qualquer medida de teste IQ) A Web indexável estaticamente é qualquer índice de máquina de busca. Diferentes máquinas tem diferentes preferências max url depth, max count/host, regras anti-spam, regras de prioridade, etc. Diferentes indexes de máquinas diferentes coisas sobre a mesma URL: frames, meta palavras chaves, restrições de documentos, extensões de documentos, ...

24 Tamanho relativo do Overlap Dado duas máquinas A e B
Sec. 19.5 Tamanho relativo do Overlap Dado duas máquinas A e B A Ç B Exemplo URLs de A aleatoriamente Checar se contido em B e vice-versa A Ç B = (1/2) * Tamanho A A Ç B = (1/6) * Tamanho B (1/2)* Tamanho A = (1/6)* Tamanho B \ Tamanho A / Tamanho B = (1/6)/(1/2) = 1/3 Cada teste envolve: (i) Amostra (ii) Verificação

25 Sec. 19.5 URLs de amostra Estratégia ideal: Gerar uma URL aleatoriamente e checar a restrição (containment) em cada índice. Problema: URLs aleatórias são difíceis de econtrar! Suficiente gerar uma URL aleatória contida em uma dada máquina. Abordagem 1: Gerar uma URL aleatória contida em uma dada máquina Suficiente para a estimar o tamanho relativo Abordagem 2: Random walks / IP addresses Na teoria: poderia nos dar uma estimativa verdadeira do tamanho da web

26 Métodos estatísticos Abordagem1 Approach 2 Consultas aleatórias
Sec. 19.5 Métodos estatísticos Abordagem1 Consultas aleatórias Buscas aleatórias Approach 2 Endereços de IP aleatórios Passeio aleatório (Random walks)

27 URLs aleatórias de consultas aleatórias
Sec. 19.5 URLs aleatórias de consultas aleatórias Gerar uma consula aleatória: como ? Vocabulário: 400,000+ palavras de um web crawl Consultas conjuntivas: w1 e w2 Isto é, vocalists AND rsi Pegue 100 URLs de resultado da máquina A Escolha uma URL aleatória como candidata para checar a presenção na máquina B Isso distribuição induz a um peso de probabilidade W(p) para cada página Conjetura: W(SEA) / W(SEB) ~ |SEA| / |SEB|

28 Verificação baseada na consulta
Sec. 19.5 Verificação baseada na consulta Strong Query para checar se uma máquina B tem um documento D: Download D. Pegue a lista de palavras. Use 8 palavras de baixa frequencia como AND da consulta para B Cheque se D está presente no conjunto de resultados. Problemas: Duplicações próximas Frames Redirecionamentos Time-outs das máquians Consultas de 8 palavras são de um bom tamanho ?

29 Vantagens e desvantagens
Sec. 19.5 Vantagens e desvantagens Statistically sound under the induced weight. Biases induced by random query Query Bias: Favors content-rich pages in the language(s) of the lexicon Ranking Bias: Solution: Use conjunctive queries & fetch all Checking Bias: Duplicates, impoverished pages omitted Document or query restriction bias: engine might not deal properly with 8 words conjunctive query Malicious Bias: Sabotage by engine Operational Problems: Time-outs, failures, engine inconsistencies, index modification.

30 Sec. 19.5 Buscas aleatórias Escolha buscas aleatórias extraídas de um registro local [Lawrence & Giles 97] ou construir “buscas aleatórias” [Notess] Use somente consultas com um pequeno conjunto de resultados. Conte URLs normalizadas no conjunto de resultados. Use estatísticas

31 Vantagens e desvantagens
Sec. 19.5 Vantagens e desvantagens Vantagem Pode ser uma melhor percepção humana da cobertura Questões Exemplos são relacionados com o fonte do registro Duplicados Problemas estatísticos técnicos (deve ter resultados, ratio average not statistically sound)

32 Buscas aleatórias 575 e 1050 queries from the NEC RI employee logs
Sec. 19.5 Buscas aleatórias 575 e 1050 queries from the NEC RI employee logs 6 Engines in 1998, 11 in 1999 Implementação: Restrito a consultas com < 600 resultados no total URLs contadas da máquina de busca depois da verificação do emparelhamento da consulta Razão do tamanho computada & overlap para consultas individuais Tamanho estimado do índice & overlap pela média de todas as consultas

33 Consultas do estudo de Lawrence e Giles
Sec. 19.5 Consultas do estudo de Lawrence e Giles adaptive access control neighborhood preservation topographic hamiltonian structures right linear grammar pulse width modulation neural unbalanced prior probabilities ranked assignment method internet explorer favourites importing karvel thornber zili liu softmax activation function bose multidimensional system theory gamma mlp dvi2pdf john oliensis rieke spikes exploring neural video watermarking counterpropagation network fat shattering dimension abelson amorphous computing

34 Endereços de IP aleatórios
Sec. 19.5 Endereços de IP aleatórios Gere endereços de IP aleatórios Encontre um servidor web do endereço dado Se existir um Pegue todas as páginas do servidor Dessas, escolha uma aleatoriamente

35 Endereços de IP aleatórios
Sec. 19.5 Endereços de IP aleatórios Requisição HTTP p/ um endereço de IP aleatório Ignorada: vazio or autorização requerida ou excluída [Lawr99] Estima-se que 2.8M de endereços de IP executando em servicores web crawlable (16 milhões no total) dos 2500 servidores observados OCLC usando IP de amostra encontrou 8.7 M hosts em 2001 Netcraft [Netc02] acessou 37.2 milhões hosts em Julho 2002 [Lawr99] crawled exaustivamente 2500 Estimou o tamanho da web como 800 milhões de páginas Estimou o uso de metadados descritores: Meta tags (palavra chave, descrição) em 34% das páginas

36 Vantagens e desvantagens
Sec. 19.5 Vantagens e desvantagens Vantagens Estatísticas claras Independente das estratégias de crawling Desvantagens Não trata duplicação Muitos hosts podem compartilhar um IP, ou não aceitar requisições Não tem garantia que todas as páginas estão linkadas para uma página raiz Lei do poder para páginas #/hosts geraram bias em direção a sites com poucas páginas. Mas bias podem ser quantificados precisamente Influenciado potencialmente por spamming (múltiplos IPs para um mesmo servidor para evitar bloqueio de IP)

37 Passeio aleatório (Random walks)
Sec. 19.5 Passeio aleatório (Random walks) Veja a Web como um grafo dirigido Construa um passeio aleatório nesse grafo Inclua várias regras de “pulo” para voltar a sites já visitados Não fique presos em spider traps! Pode seguir todos os links! Convirja para uma distribuição estacionária Deve assumir o grafo como finito e independente do caminho. Condições não estão satisfeitas (cookie crumbs, flooding) Tempo para convergência não é realmente conhecido Exemplo de distribuição estacionária do passeio Use o método da “consulta forte” para checar a cobertura pelos SE (Search Engines)

38 Vantagens e desvantagens
Sec. 19.5 Vantagens e desvantagens Vantagens Método “estatisticamente claro” pelo menos na teoria! Podia trabalhar até mesmo para uma web infinita (assumindo convergência) sobre certas métricas. Desvantagens Lista de “sementes” é um problema. Aproximação prática pode não ser válida. Distribuiçã não uniforme Subject to link spamming

39 Conclusão Sem soluções perfeitas Várias novas idéias ...
Sec. 19.5 Conclusão Sem soluções perfeitas Várias novas idéias ... ....mas o problema está ficando difícil Estudos quantitativos são fascinantes e um bom problema de pesquisa

40 Detecção de duplicações
Sec. 19.6 Detecção de duplicações

41 Documentos duplicados
Sec. 19.6 Documentos duplicados A Web é cheia de conteúdo duplicado Detecção de duplicação restrito = exata Não é comum Mas muitos, muitos casos perto de duplicação Isto é, última data de modificação a única diferença entre duas cópias de uma página

42 Duplicado/Detecção de duplicação próxima
Sec. 19.6 Duplicação: Emparelhamento idêntico, pode ser detectado com impressão digital (fingerprints) Duplicação próxima: Emparelhamento próximo Visão geral Calcula a similaridade estática com uma edit-distance measure Use similaridade limiar para detectar duplicações próximas Isto é, similaridade > 80% => Documentos são “aproximadamente duplicados”

43 Calculando similaridade
Sec. 19.6 Calculando similaridade Características: Segmentos de um documento (breakpoints naturais ou artificiais) Shingles (Word N-Grams) a rose is a rose is a rose → a_rose_is_a → rose_is_a_rose → is_a_rose_is → a_rose_is_a Medida de similaridade entre dois documentos (= conjuntos de shingles) Conjunto de interseção Especificamente (Tamanho_interseção / Tamanho_união)

44 Shingles + Conjunto de intersecção
Calcular o conjunto exato de interseção de shingles entre todos os pares de documentos é caro Aproximar utilizando um conjunto de esclha inteligente of shingles de cada (um esboço) Estimativa(tamanho da intersecção / tamanho da união) baseado em um pequeno esboço Doc A Shingle set A Sketch A Doc B Shingle set B Sketch B Jaccard

45 Sec. 19.6 Esboço de um documento Crie um “sketch vector” (tamanho ~200) para cada documento Documentos que partilham ≥ t (digo 80%) elementos correspondentes do vetor são aproximadamente duplicados Para doc D, esboçoD[ i ] é como segue: Seja f map todos shingles em um universo de 0..2m (isto é, f = impressão digial) Seja pi uma permutação aleatória em 0..2m Escolha MIN {pi(f(s))} todos shingles s em D

46 Calculando Sketch[i] para Doc1
Sec. 19.6 Calculando Sketch[i] para Doc1 Documento 1 264 Comece com 64-bit f(shingles) Permute no número da linha com pi Escolha o valor mínimo 264 264 264

47 Teste se Doc1.Sketch[i] = Doc2.Sketch[i]
Sec. 19.6 Teste se Doc1.Sketch[i] = Doc2.Sketch[i] Documento 2 Documento 1 264 264 264 264 264 264 A B 264 264 São iguais? Teste para 200 permutações aleatórias: p1, p2,… p200

48 Entretanto… Documento 1 Documento 2 264
Sec. 19.6 Entretanto… Documento 1 Documento 2 264 A B A = B se o shingle com o valor MIN na união de Doc1 e Doc2 é comum para ambos (isto é, mentem na intersecção) Reivindicação: Isso acontece com probabilidade Tamanho da intersecção / Tamanho da união Why?

49 Similaridade de conjunto dos conjuntos Ci , Cj
Sec. 19.6 Similaridade de conjunto dos conjuntos Ci , Cj Olhe conjuntos com uma coluna da matriz A; uma linha para cada elemento no universo. aij = 1 indica presença do item i no conjunto j Exemplo C1 C2 1 0 Jaccard(C1,C2) = 2/5 = 0.4 0 0 1 1 0 1

50 Observação chave Para colunas Ci, Cj, quatro tipos de linhas
Sec. 19.6 Observação chave Para colunas Ci, Cj, quatro tipos de linhas Ci Cj A 1 1 B 1 0 C 0 1 D 0 0 Notação de sobrecarga: A = # das linhas do tipo A Reivindicação

51 “Min” Hashing Randomly permute rows
Sec. 19.6 “Min” Hashing Randomly permute rows Hash h(Ci) = índice da primeira linha com 1 na coluna Ci Propriedade surpreendente Por que? Ambos são A/(A+B+C) Look down columns Ci, Cj until first non-Type-D row h(Ci) = h(Cj)  type A row

52 Min-Hash sketches Pick P random row permutations MinHash sketch
Sec. 19.6 Min-Hash sketches Pick P random row permutations MinHash sketch SketchD = list of P indexes of first rows with 1 in column C Similarity of signatures Let sim[sketch(Ci),sketch(Cj)] = fraction of permutations where MinHash values agree Observe E[sim(sig(Ci),sig(Cj))] = Jaccard(Ci,Cj)

53 Example Signatures S1 S2 S3 Perm 1 = (12345) 1 2 1
Sec. 19.6 Example Signatures S1 S2 S3 Perm 1 = (12345) Perm 2 = (54321) Perm 3 = (34512) C1 C2 C3 R R R R R Similarities Col-Col Sig-Sig

54 Implementação de truque
Sec. 19.6 Implementação de truque Permuting universe even once is prohibitive Row Hashing Pick P hash functions hk: {1,…,n}{1,…,O(n)} Ordering under hk gives random permutation of rows One-pass Implementation For each Ci and hk, keep “slot” for min-hash value Initialize all slot(Ci,hk) to infinity Scan rows in arbitrary order looking for 1’s Suppose row Rj has 1 in column Ci For each hk, if hk(j) < slot(Ci,hk), then slot(Ci,hk)  hk(j)

55 Exemplo C1 C2 R1 1 0 R2 0 1 R3 1 1 R4 1 0 R5 0 1 C1 slots C2 slots
Sec. 19.6 Exemplo C1 C2 R R R R R C1 slots C2 slots h(1) = g(1) = h(2) = g(2) = h(3) = g(3) = h(4) = g(4) = h(x) = x mod 5 g(x) = 2x+1 mod 5 h(5) = g(5) =

56 Comparando assinaturas
Sec. 19.6 Comparando assinaturas Assinatura Matriz S Linhas = Funções Hash Colunas = Colunas Entradas = Assinaturas Pode calcular – Pair-wise similarity of any pair of signature columns

57 Todos os pares de assinatura
Sec. 19.6 Todos os pares de assinatura Agora temos um método extremamente eficiente para estimar o coeficiente de Jaccard para um único par de documentos Mas ainda temos de estimar coeficientes N2 onde N é o número de páginaw web Still slow Uma solução: locality sensitive hashing (LSH) Outra solução: sorting (Henzinger 2006)

58 More resources IIR Chapter 19


Carregar ppt "CS276 Information Retrieval and Web Search"

Apresentações semelhantes


Anúncios Google