Transcript lecture6-tfidf
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
Banquete ou fome: não é um
Ch. 6
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.
Introduction to Information Retrieval
Sec. 6.2
Relembrando (Capítulo 1): Matriz de incidência binaria termo-documento
Antony Brutus Caesar Calpurnia Cleopatra mercy worser Antony and Cleopatra 1 1 1 0 1 1 1 Julius Caesar 1 1 1 1 0 0 0 The Tempest 0 0 0 0 0 1 1 Hamlet 0 1 1 0 0 1 1 Othello 0 0 1 0 0 1 1 Macbeth 1 0 1 0 0 1 0
Cada documento é representado por um vetor binario ∈ {0,1} |V|
Introduction to Information Retrieval
Matrizes de contagem Termo documento
Sec. 6.2
Considere o número de ocorrências de um termo em um documento: Cada documento é um vetor contador em ℕ v : uma coluna abaixo
Antony Brutus Caesar Calpurnia Cleopatra mercy worser Antony and Cleopatra 157 4 232 0 57 2 2 Julius Caesar 73 157 227 10 0 0 0 The Tempest 0 0 0 0 0 3 1 Hamlet 0 1 2 0 0 5 1 Othello 0 0 1 0 0 5 1 Macbeth 0 0 1 0 0 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
possuem o mesmos vetores
e Mary é mais veloz que John
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 tf
t,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.
Introduction to Information Retrieval
Sec. 6.2
Ponderação Log-freqüência
O peso log freqüência do termo t em d é
w t,d
1 log 10 0, tf
t,d
, se tf
t,d
0 caso contrá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 tf
t
,
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
df
t
é a freqüência de documento de t: o número de documentos que contem t df
t
df
t
é uma medida inversa da informatividade de t
N
Definimos o idf (frequencia inversa de documentos) de t por idf
t
log 10 (
N
/df
t
) Usamos log (N/df
t
) em vez de N/df
t
efeito da idf.
para “amortecer” o Vamos considerar a base do log como irrelevante
Introduction to Information Retrieval
Sec. 6.2.1
Exemplo idf, suponha N = 1 milhão
term
calpurnia animal sunday fly under the
df
t
1 100 1,000 10,000 100,000 1,000,000
idf
t
idf
t
log 10 (
N
/df
t
) Existe um valor idf para cada termo term t em uma coleção.
2 1 0 6 4 3
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
Introduction to Information Retrieval
Sec. 6.2.1
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 log tf
t
,
d
) log 10 (
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
Sec. 6.2.2
para uma consulta
Score
(
q
,
d
)
t
q
d
tf.idf
t
,
d
23
Introduction to Information Retrieval
Sec. 6.3
Binário → contagem → matriz de peso
Antony Brutus Caesar Calpurnia Cleopatra mercy worser Antony and Cleopatra 5.25
1.21
8.59
0 2.85
1.51
1.37
Julius Caesar 3.18
6.1
2.54
1.54
0 0 0 The Tempest 0 0 0 0 0 1.9
0.11
Hamlet 0 1 1.51
0 0 0.12
4.15
Othello 0 0 0.25
0 0 5.25
0.25
Macbeth 0.35
0 0 0 0 0.88
1.95
Cada documento é representado agora por um vetor de valor real de pesos tf-idf ∈ R |V|
Introduction to Information Retrieval
Antony Brutus Caesar Calpurnia Cleopatra mercy worser Antony and Cleopatra 157 4 232 0 57 2 2 Julius Caesar 73 157 227 10 0 0 0 The Tempest 0 0 0 0 0 3 1 Hamlet 0 1 2 0 0 5 1 Othello 0 0 1 0 0 5 1 Macbeth 0 0 1 0 0 1 0 Antony Brutus Caesar Calpurnia Cleopatra mercy worser Antony and Cleopatra 5.25
1.21
8.59
0 2.85
1.51
1.37
Julius Caesar 3.18
6.1
2.54
1.54
0 0 0 The Tempest 0 0 0 0 0 1.9
0.11
Hamlet 0 1 1.51
0 0 0.12
4.15
Othello 0 0 0.25
0 0 5.25
0.25
Macbeth 0.35
0 0 0 0 0.88
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 d 2
é grande mesmo que a distribuição dos termos na consulta
q a distribuição dos termos no documento e d 2
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 [0 o , 180 o ]
Introduction to Information Retrieval
Sec. 6.3
Normalização de comprimento
Um vetor pode ser (comprimento) normalizado dividindo cada um de seus componentes por seu comprimento – para isso use a norma L 2 :
x
2
x i i
2 Dividindo o vetor por sua norma L 2 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
Introduction to Information Retrieval
Sec. 6.3
cosseno(consulta,documento)
Produto vetorial cos(
q
,
d
)
q
q
d
d
Vetores Unidade
q
q
d d
i V
1
V i q i
2 1
q i d i
V i
1
d i
2
q i d i
é o peso tf-idf do termo i na consulta é 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 comprimento normalizados
Para vetores comprimento-normalizados, cosseno de similaridade é simplesmente o produto vetorial (ou produto escalar): cos(
q
,
d
)
q
d
V i
1
q i d i
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 SaS : Sense and
Sensibility
PaP : Pride and Prejudice, and WH : Wuthering Heights?
term
affection jealous gossip wuthering
SaS
115 10 2 0
PaP
58 7 0 0
WH
20 11 6 38 Freqüência de termos (contagem) Nota: Para simplificar este exemplo, nós não fizemos a ponderação idf.
Introduction to Information Retrieval
3 documentos, continuação do exemplo.
Ponderação Log freqüência
Sec. 6.3
Depois da normalização de comprimento term
affection jealous gossip wuthering
SaS
3.06
2.00
1.30
0
PaP
2.76
1.85
0 0
WH
2.30
2.04
1.78
2.58
term
affection jealous gossip wuthering
SaS
0.789
0.515
0.335
0
PaP
0.832
0.555
0 0
WH
0.524
0.465
0.405
0.588
cos(SaS,PaP) ≈ 0.789 × 0.832 + 0.515 × ≈ 0.94
cos(SaS,WH) ≈ 0.79
cos(PaP,WH) ≈ 0.69
0.555 + 0.335 × 0.0 + 0.0 × 0.0
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 …
Introduction to Information Retrieval
Sec. 6.4
Exemplo tf-idf: lnc.ltc
Documento: car insurance auto insurance Consulta: best car insurance
Termo Consulta Documento
auto best car insurance tf raw 0 1 1 1 tf-wt df 0 5000 1 50000 1 10000 1 1000 idf wt 2.3 1.3
2.0
3.0
0 1.3
2.0
3.0
n’liz e 0 0.34
0.52
0.78
tf-raw 1 0 1 2 tf-wt 1 0 1 1.3
Pro d
wt 1 0 1 1.3
n’liz e 0.52
0 0.52
0.68
0 0 0.27
0.53
Comprimento do Doc= 1 2 0 2 1 2 1.3
2 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
Exemplo de índices de zonas
Sec. 6.1
Zonas codificadas no dicionário vs. postings.
Introduction to Information Retrieval
Resources for today’s lecture
IIR 6.2 – 6.4.3
Ch. 6 http://www.miislita.com/information-retrieval tutorial/cosine-similarity-tutorial.html
Term weighting and cosine similarity tutorial for SEO folk!