Introduction to Information Retrieval
Introduction to
Information Retrieval
CS276: Information Retrieval and Web Search
Christopher Manning and Prabhakar Raghavan
Lecture 6: Scoring, Term Weighting and the
Vector Space Model
Introduction to Information Retrieval
Neste capítulo; IIR Sections 6.2-6.4.3
Recuperação rankeada
Pontuação de documentos
Frequência de termos
Estatísticas de coleção
Esquemas de ponderação
Pontuação de espaço vetorial
Introduction to Information Retrieval
Ch. 6
Recuperação rankeada
Até o momento, nossas consultas tem sido todas booleanas.
Os documentos coincidem ou não.
É bom para usuários experientes com entendimento preciso
de sua necessidades e da coleção de documentos.
Bom também para as aplicações: Aplicações podem facilmente gastar
com 1000s resultados.
Não é bom para a maioria dos usuários.
Maioria é incapaz de escrever consultas booleanas(ou são, mas acham
que dá muito trabalho).
Maioria dos usuários não querem percorrer 1000s de resultados
Isto é particularmente verdade em buscadores web.
Introduction to Information Retrieval
Problema com a busca booleana:
banquete ou fome
Ch. 6
Consultas booleanas normalmente resultam em
pouquíssimo (=0) ou muitos (1000s) resultados.
Consulta 1: “standard user dlink 650” → 200.000
retornos
Consulta 2: “standard user dlink 650 no card found”:
0 retorno
É necessário muito talento para criar uma consulta
que produz um número de documentos retornados
tratável.
AND retorna muito pouco; OR retorna muito
Introduction to Information Retrieval
Modelos de recuperação rankeada
Ao invés de um conjunto de documentos satisfazendo uma
expressão de consulta, no Modelo de recuperação rankeada,
o sistema retorna uma ordenação sobre os (top) documentos
da coleção referentes à uma consulta
Consultas de texto livre: Ao invés de uma linguagem de
consulta com operadores e expressões, a consulta do usuário
é somente uma ou mais palavras em linguagem humana
A princípio, existem duas escolhas diferentes, mas na prática,
modelos de recuperação rankeadas são normalmente
associadas com consulta de texto livre
5
Introduction to Information Retrieval
Ch. 6
Banquete ou fome: não é um
problema da recuperação ranqueada
Quando em um sistema com um conjunto de
resultados rankeados, grandes conjuntos de
resultados não são um problema
De fato, o tamanho do conjunto de resultados não é um
problema
Nós precisamos apenas mostrar os primeiros (top) k ( ≈ 10)
resultados
Nós não queremos sobrecarregar o usuário
Premissa: o algorítmo de rankeamento funciona
Introduction to Information Retrieval
Pontuação como a base para
recuperação rankeada
Ch. 6
Nós queremos retornar de forma ordenada os
documentos mais possivelmente úteis para o
buscador
Como podemos ordenar de forma rankeada os
documentos da coleção referentes à uma consulta?
Atribuir uma pontuação – digamos no intervalo [0, 1]
– para cada documento
Esta pontuação mede quão bem um documento e
uma consulta correspondem.
Introduction to Information Retrieval
Pontuação da correspondência
Consulta-documento
Ch. 6
Precisamos de um modo de atribuir uma pontuação
a um par consulta/documento
Vamos começar com uma consulta de um termo
Se o termo da consulta não ocorre no documento: a
pontuação será 0
Quanto maior a frequência do termo da consulta no
documento, maior deve ser sua pontuação
(provavelmente)
Vamos analisar algumas alternativas para isto.
Introduction to Information Retrieval
Ch. 6
Take 1: coeficiente de Jaccard
Relembrando o capítulo 3: Uma medida comumente
utilizada para indicar a coincidência entre dois
conjuntos A e B
jaccard(A,B) = |A ∩ B| / |A ∪ B|
jaccard(A,A) = 1
jaccard(A,B) = 0 se A ∩ B = 0
A e B não precisam possuir o mesmo tamanho.
Sempre será atribuido um número entre 0 e 1.
Introduction to Information Retrieval
Ch. 6
Problemas com Jaccard para pontuar
Não considera a frequência do termo (quantas vezes
o termo ocorre em um documento)
Termos raros em uma coleção são mais informativo
que termos frequentes. Jaccard não considera esta
informação
Precisamos de uma maneira mais sofisticada de
normalizar o comprimento
Mais a frente , nós utilizaremos | A B | / | A B |
. . . Em vez de |A ∩ B|/|A ∪ B| (Jaccard) para
normalização de comprimento.
Sec. 6.2
Introduction to Information Retrieval
Relembrando (Capítulo 1): Matriz de
incidência binaria termo-documento
Antony and Cleopatra
Julius Caesar
The Tempest
Hamlet
Othello
Macbeth
Antony
1
1
0
0
0
1
Brutus
1
1
0
1
0
0
Caesar
1
1
0
1
1
1
Calpurnia
0
1
0
0
0
0
Cleopatra
1
0
0
0
0
0
mercy
1
0
1
1
1
1
worser
1
0
1
1
1
0
Cada documento é representado por um vetor binario ∈ {0,1}|V|
Sec. 6.2
Introduction to Information Retrieval
Matrizes de contagem Termodocumento
Considere o número de ocorrências de um termo em
um documento:
Cada documento é um vetor contador em ℕv: uma coluna
abaixo
Antony and Cleopatra
Julius Caesar
The Tempest
Hamlet
Othello
Macbeth
Antony
157
73
0
0
0
0
Brutus
4
157
0
1
0
0
Caesar
232
227
0
2
1
1
Calpurnia
0
10
0
0
0
0
Cleopatra
57
0
0
0
0
0
mercy
2
0
3
5
5
1
worser
2
0
1
1
1
0
Introduction to Information Retrieval
Modelo sacola de palavras
Representação de vetor não considera a ordenação das
palavras em um documento
John e mais veloz que Mary e Mary é mais veloz que John
possuem o mesmos vetores
Chamamos de modelo sacola de palavra.
Em um sentido, isto é um passo para trás: O índice posicional
é capaz de distinguir estes dois documentos.
Vamos olhar para a informação posicional da “recuperação”
adiante.
Por enquanto: modelo de sacola de palavras
Introduction to Information Retrieval
Freqüência de termo tf
A freqüência de termo tft,d do termo t em um documento d é
definido como o número de vezes que t ocorre em d.
Queremos usar tf quando computamos a pontuação da
combinação consulta-documento. Mas como?
A freqüência de termo crua não é o que queremos:
Um documento com 10 ocorrências de um termo é mais relevante que
um documento com 1 ocorrência do termo.
Mas não 10 vezes mais relevante.
A relevância não aumenta proporcionalmente com a
freqüência de termo.
Sec. 6.2
Introduction to Information Retrieval
Ponderação Log-freqüência
O peso log freqüência do termo t em d é
wt,d
1 log10 t ft,d ,
0,
se t ft,d 0
caso cont rário
0 → 0, 1 → 1, 2 → 1.3, 10 → 2, 1000 → 4, etc.
Pontuação para um par documento-consulta: soma
dos termos t em ambos q e d:
pontuação tqd (1 log tft ,d )
A pontuação é 0 se nenhum dos termos da consulta
estão presentes no documento.
Introduction to Information Retrieval
Sec. 6.2.1
Freqüência do documento
Termos raros são mais informativos do que termos
freqüentes
Lembre das stop words
Considere um termo em uma consulta que é raro na
coleção (exemplo, arachnocentric)
Um documento contendo este termo tem muita
possibilidade de ser relevante para a consulta
arachnocentric
→ Nós queremos um alto peso para termos raros como
arachnocentric.
Introduction to Information Retrieval
Sec. 6.2.1
Freqüência de documento
Termos frenquentes são mais informativos que termos raros
Considere um termo que é freqüente na coleção (exemplo,
alto, aumento, linha)
Um documento contendo um termo assim é mais provável ser
relevante que um documento que não contém
Mas isso não é um bom indicador de relevância.
→ Para termos freqüentes, nós queremos pesos positivos
altos para palavras como alto, aumento, e linha
Mas pesos mais baixos que para termos raros.
Nós vamos usar frequencia de documento (df) para atingir
isto.
Introduction to Information Retrieval
Sec. 6.2.1
Peso idf
dft é a freqüência de documento de t: o número de
documentos que contem t
dft é uma medida inversa da informatividade de t
dft N
Definimos o idf (frequencia inversa de documentos)
de t por
idf t log10 ( N/df t )
Usamos log (N/dft) em vez de N/dft para “amortecer” o
efeito da idf.
Vamos considerar a base do log como irrelevante
Sec. 6.2.1
Introduction to Information Retrieval
Exemplo idf, suponha N = 1 milhão
term
dft
idft
calpurnia
1
6
animal
100
4
sunday
1,000
3
10,000
2
100,000
1
1,000,000
0
fly
under
the
idf t log10 ( N/df t )
Existe um valor idf para cada termo term t em uma coleção.
Introduction to Information Retrieval
Efeito da idf no ranking
idf possui um efeito no ranking para consultas de um
termo, como
iPhone?
idf não possui efeito no ranking de consultas de um
termo
idf afeta o ranking de documento para consultas com ao
menos dois termos
Para a consulta pessoa caprichosa, a ponderação idf faz as
ocorrências de caprichosa contar muito mais no ranking
final do documento do que ocorrências de pessoa.
20
Sec. 6.2.1
Introduction to Information Retrieval
Coleção vs. freqüência de Documento
A freqüência da coleção do termo t é o número
de ocorrências de t na coleção, contando
múltiplas ocorrências.
Exemplo:
Palavra
Freqüência da
Coleção
Freqüência do
Documento
insurance
10440
3997
try
10422
8760
Qual palavra é um termo de consulta melhor (e
deve receber um peso mais alto)?
Introduction to Information Retrieval
Sec. 6.2.2
Ponderação tf-idf
O peso tf-idf de um termo é o produto de seu peso tf e seu peso
idf.
w t ,d (1 logtft ,d ) log10 ( N / df t )
Mais conhecido como esquema de ponderação na recuperação
de informação
Nota: O “-” em tf-idf é um hífen, não um sinal de menos!
Nomes alternativos: tf.idf, tf x idf
Aumenta com o número de ocorrências dentro de um
documento
Aumenta com a raridade do termo na coleção
Introduction to Information Retrieval
Classificação final dos documentos
para uma consulta
Sec. 6.2.2
Score (q, d ) tq d tf.idf t ,d
23
Sec. 6.3
Introduction to Information Retrieval
Binário → contagem → matriz de peso
Antony and Cleopatra
Julius Caesar
The Tempest
Hamlet
Othello
Macbeth
Antony
5.25
3.18
0
0
0
0.35
Brutus
1.21
6.1
0
1
0
0
Caesar
8.59
2.54
0
1.51
0.25
0
Calpurnia
0
1.54
0
0
0
0
Cleopatra
2.85
0
0
0
0
0
mercy
1.51
0
1.9
0.12
5.25
0.88
worser
1.37
0
0.11
4.15
0.25
1.95
Cada documento é representado agora por um vetor
de valor real de pesos tf-idf ∈ R|V|
Introduction to Information Retrieval
Antony and Cleopatra
Julius Caesar
The Tempest
Hamlet
Othello
Macbeth
Antony
157
73
0
0
0
0
Brutus
4
157
0
1
0
0
Caesar
232
227
0
2
1
1
Calpurnia
0
10
0
0
0
0
Cleopatra
57
0
0
0
0
0
mercy
2
0
3
5
5
1
worser
2
0
1
1
1
0
Antony and Cleopatra
Julius Caesar
The Tempest
Hamlet
Othello
Macbeth
Antony
5.25
3.18
0
0
0
0.35
Brutus
1.21
6.1
0
1
0
0
Caesar
8.59
2.54
0
1.51
0.25
0
Calpurnia
0
1.54
0
0
0
0
Cleopatra
2.85
0
0
0
0
0
mercy
1.51
0
1.9
0.12
5.25
0.88
worser
1.37
0
0.11
4.15
0.25
1.95
25
Introduction to Information Retrieval
Sec. 6.3
Documentos como vetores
Então temos um espaço vetor de dimensão |V|
Termos são eixos do espaço
Documentos são pontos ou vetores no espaço
Muito alto-dimensional: dezenas de milhões de
dimensões quando se aplica à um sistema de busca
web
Existem vetores muito esparsos – maioria das
entradas são zero.
Introduction to Information Retrieval
Sec. 6.3
Consultas como vetores
Idéia chave 1: Faça o mesmo para consultas: represente elas
como vetores no espaço
Idéia chave 2: Classifique os documentos de acordo com sua
proximidade da consulta no espaço
proximidade = similaridade de vetores
proximidade ≈ inverso da distancia
Relembre: Nós fazemos isso porque queremos nos afastar do
modelo booleano “você-está-dentro-ou-fora”.
Ao contrário: classifica mais documentos relevantes do que
documentos menos relevantes
Introduction to Information Retrieval
Sec. 6.3
Formalizando a proximidade espaço
vetor
A primeira vista: distancia entre dois pontos
( = distancia entre os pontos finais de dois vetores)
Distância Euclidiana?
Distância Euclidiana é uma péssima idéia . . .
. . . Porque distância Euclidiana é grande para vetores
de tamanho diferentes.
Introduction to Information Retrieval
Sec. 6.3
Por que distância é uma péssima idéia
A distância Euclidiana
entre q e d2 é grande
mesmo que a
distribuição dos
termos na consulta q e
a distribuição dos
termos no documento
d2 forem muito
similares.
Introduction to Information Retrieval
Sec. 6.3
Use ângulo em vez de distância
Experimento mental: pegue um documento d e
anexe-o em si mesmo. Chame este documento de d′.
“Semanticamente” d e d′ possuem o mesmo
conteúdo
A distância Euclidiana entre estes dois documentos
devem ser bem grandes
O ângulo entre os dois documentos é 0,
correspondendo ao máximo de similaridade.
Idéia chave: Classifique documentos de acordo com
o ângulo da consulta.
Introduction to Information Retrieval
Sec. 6.3
De ângulos a cossenos
As duas notações a seguir são equivalentes.
Classifique documentos em ordem decrescente de ângulos
entre consulta e documento
Classifique documentos em ordem crescente de cossenos
(consulta, documento)
Cosseno é uma função monotonicamente
decrescente para o intervalo [0o, 180o]
Sec. 6.3
Introduction to Information Retrieval
Normalização de comprimento
Um vetor pode ser (comprimento) normalizado dividindo
cada um de seus componentes por seu comprimento – para
isso use a norma L2 :
x2
x
2
i i
Dividindo o vetor por sua norma L2 nos dá o vetor (na
superfície da unidade hiperesfera) unidade (comprimento)
Efeito nos dois documentos d and d′ (d anexado a si mesmo)
do slide anterior: eles possuem vetores idênticos depois da
normalização.
Grandes e pequenos documentos agora possuem pesos comparaveis
Sec. 6.3
Introduction to Information Retrieval
cosseno(consulta,documento)
Produto vetorial
Vetores Unidade
qd q d
cos(q , d )
q d
qd
V
q di
i 1 i
V
2
i 1 i
q
2
d
i1 i
V
qi é o peso tf-idf do termo i na consulta
di é o peso tf-idf do termo i no documento
cos(q,d) é o cosseno de similaridade de q e d … ou,
equivalentemente, o cosseno do ângulo entre q e d.
Introduction to Information Retrieval
Cosseno para vetores comprimentonormalizados
Para vetores comprimento-normalizados, cosseno de
similaridade é simplesmente o produto vetorial (ou
produto escalar):
cos(q,d ) q d qi di
V
i1
para q, d comprimento-normalizados.
34
Introduction to Information Retrieval
Cosseno de similaridade ilustrado
35
Introduction to Information Retrieval
Sec. 6.3
Cosseno de similaridade entre 3 documentos
Quão similares são
as novelas
term
SaS
PaP
WH
SaS: Sense and
affection
115
58
20
jealous
10
7
11
Sensibility
gossip
2
0
6
PaP: Pride and
wuthering
0
0
38
Prejudice, and
WH: Wuthering
Freqüência de termos (contagem)
Heights?
Nota: Para simplificar este exemplo, nós não fizemos a ponderação idf.
Sec. 6.3
Introduction to Information Retrieval
3 documentos, continuação do
exemplo.
Ponderação Log freqüência
term
SaS
PaP
WH
Depois da normalização de
comprimento
term
SaS
PaP
WH
affection
3.06
2.76
2.30
affection
0.789
0.832
0.524
jealous
2.00
1.85
2.04
jealous
0.515
0.555
0.465
gossip
1.30
0
1.78
gossip
0.335
0
0.405
0
0
2.58
wuthering
0
0
0.588
wuthering
cos(SaS,PaP) ≈
0.789 × 0.832 + 0.515 × 0.555 + 0.335 × 0.0 + 0.0 × 0.0
≈ 0.94
cos(SaS,WH) ≈ 0.79
cos(PaP,WH) ≈ 0.69
Introduction to Information Retrieval
Sec. 6.3
Computando a pontuação de cossenos
Introduction to Information Retrieval
Ponderação tf-idf possui muitas
variantes
Sec. 6.4
Introduction to Information Retrieval
Sec. 6.4
Ponderação pode diferir em consultas
vs documentos
Muitos sistemas de busca permitem ponderações diferentes
para consultas vs. documentos
Notação SMART: denota a combinação em uso por um
sistema, com a notação ddd.qqq, usando o acrônimo da
tabela anterior
Um esquema muito comum de ponderação é: lnc.ltc
Documento: logarítmico tf (l como o primeiro caractere),
nenhuma normalização idf e cosseno
Uma péssima idéia?
Consulta: logarítmico tf (l na coluna mais a esquerda), idf (t na
segunda coluna), cosseno …
Sec. 6.4
Introduction to Information Retrieval
Exemplo tf-idf: lnc.ltc
Documento: car insurance auto insurance
Consulta: best car insurance
Termo
Consulta
tf- tf-wt
raw
df
idf
Documento
wt
n’liz
e
tf-raw
tf-wt
Pro
d
n’liz
e
wt
auto
0
0
5000
2.3
0
0
1
1
1
0.52
0
best
1
1 50000
1.3
1.3
0.34
0
0
0
0
0
car
1
1 10000
2.0
2.0
0.52
1
1
1
0.52
0.27
insurance
1
1
3.0
3.0
0.78
2
1.3
1.3
0.68
0.53
1000
Comprimento do Doc= 12 02 12 1.32 1.92
Ponto = 0+0+0.27+0.53 = 0.8
Introduction to Information Retrieval
Sec. 6.1
Índices paramétricos e de zona
Até o momento, um documento foi uma seqüência
de termos
De fato documentos tem múltiplas partes, algumas
com semântica especial:
Autor
Título
Data de publicação
Linguagem
Formato
etc.
Isto constitui o metadado de um documento
Introduction to Information Retrieval
Sec. 6.1
Campos
As vezes queremos procurar por estes metadados
Exemplo, encontre documentos cujo autor é William
Shakespeare do ano 1601, contendo alas poor Yorick
Ano = 1601 é um exemplo de um campo
Também, sobrenome do autor = shakespeare, etc
Índices paramétricos ou de campo: postings para
cada valor de campo
As vezes construído árvores de faixa (exemplo, para datas)
Campos de consulta tipicamente são tratados como
conjunções
(documento deve ter como autor shakespeare)
Introduction to Information Retrieval
Sec. 6.1
Zona
Uma zona é uma região do documento que contem
uma quantidade arbitrária de texto, por exemplo,
Título
Abstract
Referencias …
A construção de índices invertidos de zonas também
permitem as consultas
Exemplo, “encontre documentos com merchant na
zona de título e correspondam à consulta gentle
rain”
Introduction to Information Retrieval
Sec. 6.1
Exemplo de índices de zonas
Zonas codificadas no dicionário vs. postings.
Introduction to Information Retrieval
Ch. 6
Resources for today’s lecture
IIR 6.2 – 6.4.3
http://www.miislita.com/information-retrievaltutorial/cosine-similarity-tutorial.html
Term weighting and cosine similarity tutorial for SEO folk!