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!