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  tqd (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 )  tq 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
  

 
qd q d
cos(q , d )        
q d
qd

V
q di
i 1 i

V
2
i 1 i
q
2
d
i1 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
i1
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!
Download

lecture6-tfidf