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
Download

lecture7-vectorspace..