390 likes | 494 Views
CS276 Information Retrieval and Web Search Christopher Manning and Prabhakar Raghavan Lecture 7: Scoring and results assembly. Ch. 7. Nesta aula. Aumentar velocidade da classificação espaço-vetor Juntando um sistema de busca completo
E N D
CS276Information Retrieval and Web Search Christopher Manning and Prabhakar Raghavan Lecture 7: Scoring and results assembly
Ch. 7 Nesta aula • Aumentar velocidade da classificação espaço-vetor • Juntando um sistema de busca completo • Precisamos aprender uma miscelânea de tópicos e heurísticas
Sec. 6.3.3 Computando a pontuação de cossenos
Sec. 7.1 Classificação eficiente de cossenos. • Encontrar os K documentos na coleção “aproximada” à consulta para K cossenos consulta-documento maiores. • Classificação eficiente: • Computando um único cosseno eficientemente • Escolhendo eficientemente os K maiores valores de cosseno • Podemos fazer isto sem computar todos os N cossenos?
Sec. 7.1 Classificação eficiente de cossenos • O que estamos fazendo: resolvendo o problema dos vizinhos mais próximos a k, para um vetor consulta. • Em geral, não sabemos como fazer isto eficientemente para espaços super-dimensionados • Mas isto é resolvido por consultas pequenas, e índices padrões suportam isto bem.
Sec. 7.1 Caso especial – consultas não ponderadas • Sem ponderação nos termos de consulta • Assumimos que cada termo da consulta ocorre somente uma vez • Assim para a classificação, não precisamos normalizar os vetores da consulta. • Ligeira simplificação do algoritmo do capítulo 6
Sec. 7.1 Cosseno rápido: consulta não ponderada
Sec. 7.1 Computando os K cossenos maiores: seleção vs. ordenação • Tipicamente nós queremos recuperar os top K documentos (na classificação de cossenos para a consulta) • Não ordenar totalmente todos os documentos da coleção • Podemos escolher os documentos com os K maiores cossenos? • Seja J = número de documentos com cossenos diferentes de zero • Vamos buscar os K melhores destes J
Sec. 7.1 Uso de pilha (heap) para selecionar os top K • Árvore binária em que cada valor de nó > os valores dos filhos • Seja 2J operações para construir, então cada K “vencedor” é lido em 2log J passos. • Para J=1M, K=100, isto é em torno de 10% do custo para ordenação. 1 .9 .3 .3 .8 .1 .1
Sec. 7.1.1 Gargalos • Gargalo computacional primário na pontuação: computação de cossenos • Podemos evitar toda esta computação? • Sim, mas as vezes podemos errar • Um documento que não está nos top K podem influenciar a lista dos K documentos de saída • Isto é uma coisa ruim?
Sec. 7.1.1 Similaridade de cosseno é apenas um proxy (representante, procurador) • Usuários possuem a tarefa da formulação da consulta • Cosseno corresponde documentos à consultas • Deste modo cosseno é apenas um proxy para a felicidade do usuário • Se nós recebemos a lista dos K documentos “próximos” aos top K por medida de cosseno, deve estar ok
Sec. 7.1.1 Abordagemgenérica • Considere um conjunto A de candidatos, com K < |A| << N • A não necessariamente contém os top K, mas possui muitos dos documentos dentre os top K • Retorna os top K documentos em A • Imagine A como uma poda dos não-candidatos (pruningnon-contenders) • A mesma abordagem é também utilizada para outras (não-cosseno) funções de pontuação • Vamos ver diversos esquemas a seguir desta abordagem
Sec. 7.1.2 Eliminação de índices • O algoritmo básico FastCosineScore da Fig 7.1 apenas considera os documentos contendo pelo menos um termo da consulta • Além disso: • Apenas considera termos de consulta com alto idf • Apenas considera documentos que contém muitos termos de consulta
Sec. 7.1.2 Termos de consulta com alto idf apenas • Para uma consulta do tipo catcher in therye • Apenas acumula a pontuação de catchere rye • Intuição: in e thecontribui muito pouco para a pontuação e então não altera muito a ordenação do rank • Benefício: • Postings de termos de baixo idf possuem muitos documentos estes (muitos) documentos são eliminados do conjunto A de candidatos
Sec. 7.1.2 Documentos contendo muitos termos de consulta • Qualquer documento com pelo menos um termo de consulta é um candidato para a lista de saída dos top K • Para consultas multi-termos, apenas é computada a pontuação para documentos contendo muitos dos termos da consulta • Digamos, ao menos 3 dos 4 • Estabelece uma “conjunção suave” nas consultas vistas em sistemas de busca web (Google) • Fácil de implementar percorrendo os postings
Sec. 7.1.2 3 2 4 4 8 8 16 16 32 32 64 64 128 128 1 2 3 5 8 13 21 34 3 de 4 termosdaconsulta Antony Brutus Caesar Calpurnia 13 16 32 Pontuaçãoapenascomputadaparaos docs 8, 16 e 32.
Sec. 7.1.3 Listas dos campeões • Pré computar para cada termo t do dicionário, os r documentos de maios peso dentre os t’spostings • Chamado de lista de campeões (championlist) para t • (akafancylist ou top docs para t) • Note que r deve ser escolhido no tempo de construção do índice • Portanto, é possível que r < K • Ao tempo de consulta , apenas computa pontuação para documentos na lista de campeões de algum termo da consulta • Pegue os K documentos de maior pontuação dentre estes
Sec. 7.1.4 Pontuação de qualidade estática • Queremos os documentos do topo do ranking que sejam relevantes e autoritários • Relevância está sendo modelada pela pontuação de cossenos. • Autoridade é uma propriedade tipicamente independente de consulta de um documento. • Exemplos de sinais de autoridade • Wikipedia entre os sites • Artigos em certos jornais • Um paper com muitas citações • Manydiggs, Y!buzzes ou del.icio.us marks • (Pagerank) Quantitativo
Sec. 7.1.4 Modelagem de autoridade • Atribui a cada documento uma pontuação de qualidade independente de consulta em [0,1] para cada documento d • Denote isto por g(d) • Portanto, uma quantidade como o número de citações é dimensionado em [0,1]
Sec. 7.1.4 Pontuaçãolíquida • Considere uma pontuação total simples combinando relevância de cossenos e autoridade • net-score(q,d) = g(d) + cosseno(q,d) • Podemos usar alguma outra combinação do que ponderação de igualdade • De fato, qualquer função dos dois “sinais” da felicidade do usuário – mais a frente • Agora nós buscamos os top K documentos por pontuação líquida
Sec. 7.1.4 Top K por pontuação líquida – métodos rápidos • Primeira idéia: Ordene todos os postings por g(d) • Chave: este é uma ordenação comum para todos os postings • Portanto, simultaneamente podemos percorrer os postings dos termos da consulta para • Interseção de Postings • Computação de pontuação de cossenos
Sec. 7.1.4 Porqueordenaros postings porg(d)? • Sob ordenação-g(d), documentos com pontuação top são prováveis de aparecer antes percorrendo os postings • Em aplicações de limite de tempo (digamos, são retornados quaisquer resultados de busca possível em 50 ms), permitindo parar de percorrer os postings mais cedo • Redução de pontuação de computação para todos documentos nos postings
Sec. 7.1.4 Lista de Campeõesemordenaçãog(d) • Podemos combinar a lista de campeões com ordenação g(d) • Mantendo para cada termo uma lista de campeões dos r documentos com maior g(d) + tf-idftd • Buscar os top-K resultados de apenas os documentos que estão na lista de campeões
Sec. 7.1.4 Listas de altas e baixas • Para cada termo, mantemos duas listas de postings chamados altas e baixas • Pense como alta como a lista de campeões • Quando percorremos os postings de uma consulta, apenas atravessar a lista de altos primeiros • Se nós pegamos mais do que K documentos, selecionamos os top K e paramos • Do contrário procedemos pegando os documentos da lista de baixas • Podemos usar mesmo para pontuações simples de cossenos, sem a qualidade global g(d) • Um modo de segmentar o indice em dois níveis
Sec. 7.1.5 Posting Impacto-ordenado • Nós queremos apenas computar a pontuação para documentos para o qual o wft,d é alto o suficiente • Nós vamos ordenar a lista de postingswft,d • Agora: nem todos os postings em uma ordem comum! • Como computamos a pontuação a fim de recuperar os top K? • Duas idéias seguem
Sec. 7.1.5 1. Terminaçãomaiscedo • Quandopercorremos as listas dos postings dos termos, paramosmaiscedoquando • Um númerofixor de documentos é atingido • wft,dcaiparamenos de um limitefixado • Seja a união dos conjuntos de resultados dos documentos • Um paraos postings de cadatermodaconsulta • Computaapenas a pontuação dos documentosnestaunião
Sec. 7.1.5 2. Termosidf-ordenados • Quando consideramos os postings dos termos da consulta • Imagine eles em ordem decrescente de idf • Termos com idf altos provavelmente contribui mais para a pontuação • A medida que atualizamos a pontuação de contribuição de cada termo da consulta • Paramos se a pontuação do documento não muda relativamente • Podemos aplicar para cosseno ou alguma outra pontuação líquida
Sec. 7.1.6 Poda de grupo: pré-processamento • Pegue N documentos randômicos: chame-os de líderes • Para cada outro documento, pré-compute proximidade com o líder • Documentos ligados a um líder: são os seguidores; • Provavelmente: cada líder tem ~ N seguidores.
Sec. 7.1.6 Poda de grupo: processamento de consulta • Processaumaconsultacomo segue: • Dado umaconsultaQ, encontre o líderLmais similar. • Encontreosk documentosmaissimilares entre osseguidores de L.
Sec. 7.1.6 Visualização Consulta Líder Seguidor
Sec. 7.1.6 Porqueutilizaramostragemaleatória • Rápido • Líderesrefletem a distribuição de dados
Sec. 7.1.6 Variantesgerais • Tenha cada seguidor ligados a b1=3 (digamos) líderes mais próximos. • Da consulta, encontre b2=4 (digamos) líderes mais próximos e seus seguidores. • Pode reincindir na construção Líder/Seguidor.
Sec. 7.2.1 Índicesdiferenciados • Quebre postings em listas hierárquicas • Muito importante • … • Menos importante • Pode ser feito por g(d) ou outra medida • Índices invertidos quebrados em camadas de importâncias decremental • Na hora da consulta utilize as maiores camadas a não ser que não complete os K documentos • Se acontecer passe para a camada abaixo
Sec. 7.2.1 Exemplo de índice de camadas
Sec. 7.2.2 ProximidadedaConsulta e termo • Consulta de texto livre: apenas um conjunto de termos escrito em uma caixa de pesquisa – comum na web • Usuários preferem documentos em que os termos da consulta ocorrem com proximidade entre si • Seja w a menor janela em um documento que contém todos os termos da consulta, por exemplo, • Para a consulta strainedmercy a menor janela no documento Thequalityofmercy is notstrained é 4 (palavra) • Queremos uma função de pontuar que leve isto em conta – como?
Sec. 7.2.3 Analisadores de consultas • Consulta de texto livre de um usuário pode de fato resultar em uma ou mais consultas para indexar, por exemplo, a consulta risinginterest rates • Execute a consulta como uma consulta de frase • Se <K documentos que contém a a frase risinginterest rates, execute as duas consultas de frases risingintereste interest rates • Se ainda <K documentos, execute a consulta de espaço vetor risinginterest rates • Classifique os documentos correspondentes à pontuação espaço vetor • Esta seqüência é um problema para um analisador de consulta
Sec. 7.2.3 Pontuação Global • Nósvimosquefunções de pontuaçãopodemcombinarcosseno, qualidadeestática, proximidade, etc. • Como sabemos a melhorcombinação? • Algumasaplicações – expert-tuned (sintoniapor expert) • Cadavezmaiscomum: aprendizado-máquina
Sec. 7.2.4 Colocandotudojunto
Resources • IIR 7, 6.1