Upload
havily
View
31
Download
0
Tags:
Embed Size (px)
DESCRIPTION
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 - PowerPoint PPT Presentation
Citation preview
Introduction to Information Retrieval
Introduction to
Information Retrieval
CS276Information Retrieval and Web Search
Christopher Manning and Prabhakar RaghavanLecture 7: Scoring and results assembly
Introduction to Information Retrieval
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
Ch. 7
Introduction to Information Retrieval
Computando a pontuação de cossenos
Sec. 6.3.3
Introduction to Information Retrieval
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
Introduction to Information Retrieval
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
Introduction to Information Retrieval
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
Introduction to Information Retrieval
Cosseno rápido: consulta não ponderada
Sec. 7.1
Introduction to Information Retrieval
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.8.3
.1
.1
Sec. 7.1
Introduction to Information Retrieval
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
Introduction to Information Retrieval
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
Introduction to Information Retrieval
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
Sec. 7.1.1
Introduction to Information Retrieval
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
Introduction to Information Retrieval
Termos de consulta com alto idf apenas 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
Sec. 7.1.2
Introduction to Information Retrieval
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
BrutusCaesarCalpurnia
1 2 3 5 8 13 21 342 4 8 16 32 64128
13 16
Antony 3 4 8 16 32 64128
32
Pontuação apenas computada para os docs 8, 16 e 32.
Sec. 7.1.2
Introduction to Information Retrieval
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.3
Introduction to Information Retrieval
Quantitativo
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)
Sec. 7.1.4
Introduction to Information Retrieval
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
Introduction to Information Retrieval
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
Sec. 7.1.4
Introduction to Information Retrieval
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
Introduction to Information Retrieval
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
Sec. 7.1.4
Introduction to Information Retrieval
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
Sec. 7.1.4
Introduction to Information Retrieval
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.4
Introduction to Information Retrieval
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
Sec. 7.1.5
Introduction to Information Retrieval
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
Sec. 7.1.5
Introduction to Information Retrieval
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
Sec. 7.1.5
Introduction to Information Retrieval
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
Introduction to Information Retrieval
Poda de grupo: processamento de consulta 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
Sec. 7.1.6
Introduction to Information Retrieval
Porque utilizar amostragem aleatória Rápido Líderes refletem a distribuição de dados
Sec. 7.1.6
Introduction to Information Retrieval
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.
Sec. 7.1.6
Introduction to Information Retrieval
Í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
Sec. 7.2.1
Introduction to Information Retrieval
Exemplo de índice de camadas
Sec. 7.2.1
Introduction to Information Retrieval
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?
Sec. 7.2.2
Introduction to Information Retrieval
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
Sec. 7.2.3
Introduction to Information Retrieval
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
Sec. 7.2.3
Introduction to Information Retrieval
Colocando tudo junto
Sec. 7.2.4
Introduction to Information Retrieval
Resources IIR 7, 6.1