lecture6-tfidf

Download Report

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!