Introduction to Information Retrieval Introduction to Information Retrieval CS276 Information Retrieval and Web Search Christopher Manning and Prabhakar Raghavan Lecture 7: Scoring and results assembly Introduction to Information Retrieval 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 Introduction to Information Retrieval Sec. 6.3.3 Computando a pontuação de cossenos Introduction to Information Retrieval 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? Introduction to Information Retrieval 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. Introduction to Information Retrieval Caso especial – consultas não ponderadas Sec. 7.1 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 Introduction to Information Retrieval Cosseno rápido: consulta não ponderada Sec. 7.1 Introduction to Information Retrieval 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 Introduction to Information Retrieval 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 Introduction to Information Retrieval 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? Introduction to Information Retrieval 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 Introduction to Information Retrieval Sec. 7.1.1 Abordagem gené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 (pruning non-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 Introduction to Information Retrieval 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 Introduction to Information Retrieval Termos de consulta com alto idf apenas Sec. 7.1.2 Para uma consulta do tipo catcher in the rye Apenas acumula a pontuação de catcher e rye Intuição: in e the contribui 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 Introduction to Information Retrieval 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 Introduction to Information Retrieval 3 de 4 termos da consulta Antony 3 4 8 16 32 64 128 Brutus 2 4 8 16 32 64 128 Caesar 1 3 5 Calpurnia 2 8 13 21 34 13 16 32 Pontuação apenas computada para os docs 8, 16 e 32. Introduction to Information Retrieval 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’s postings Chamado de lista de campeões (champion list) para t (aka fancy list 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 Introduction to Information Retrieval 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 Many diggs, Y!buzzes ou del.icio.us marks (Pagerank) Quantitativo Introduction to Information Retrieval 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] Introduction to Information Retrieval Sec. 7.1.4 Pontuação lí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 Introduction to Information Retrieval Top K por pontuação líquida – métodos rápidos Sec. 7.1.4 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 Introduction to Information Retrieval Sec. 7.1.4 Por que ordenar os postings por g(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 Introduction to Information Retrieval Sec. 7.1.4 Lista de Campeões em ordenação g(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 Introduction to Information Retrieval 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 Introduction to Information Retrieval 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 postings wft,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 Introduction to Information Retrieval Sec. 7.1.5 1. Terminação mais cedo Quando percorremos as listas dos postings dos termos, paramos mais cedo quando Um número fixo r de documentos é atingido wft,d cai para menos de um limite fixado Seja a união dos conjuntos de resultados dos documentos Um para os postings de cada termo da consulta Computa apenas a pontuação dos documentos nesta união Introduction to Information Retrieval Sec. 7.1.5 2. Termos idf-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 Introduction to Information Retrieval 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. Introduction to Information Retrieval Poda de grupo: processamento de consulta Sec. 7.1.6 Processa uma consulta como segue: Dado uma consulta Q, encontre o líder L mais similar. Encontre os k documentos mais similares entre os seguidores de L. Sec. 7.1.6 Introduction to Information Retrieval Visualização Consulta Líder Seguidor Introduction to Information Retrieval Sec. 7.1.6 Porque utilizar amostragem aleatória Rápido Líderes refletem a distribuição de dados Introduction to Information Retrieval Sec. 7.1.6 Variantes gerais 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. Introduction to Information Retrieval Sec. 7.2.1 Índices diferenciados 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 Introduction to Information Retrieval Exemplo de índice de camadas Sec. 7.2.1 Introduction to Information Retrieval Sec. 7.2.2 Proximidade da Consulta 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 strained mercy a menor janela no documento The quality of mercy is not strained é 4 (palavra) Queremos uma função de pontuar que leve isto em conta – como? Introduction to Information Retrieval 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 rising interest rates Execute a consulta como uma consulta de frase Se <K documentos que contém a a frase rising interest rates, execute as duas consultas de frases rising interest e interest rates Se ainda <K documentos, execute a consulta de espaço vetor rising interest rates Classifique os documentos correspondentes à pontuação espaço vetor Esta seqüência é um problema para um analisador de consulta Introduction to Information Retrieval Sec. 7.2.3 Pontuação Global Nós vimos que funções de pontuação podem combinar cosseno, qualidade estática, proximidade, etc. Como sabemos a melhor combinação? Algumas aplicações – expert-tuned (sintonia por expert) Cada vez mais comum: aprendizado-máquina Introduction to Information Retrieval Colocando tudo junto Sec. 7.2.4 Introduction to Information Retrieval Resources IIR 7, 6.1