460 likes | 619 Views
CS276: Information Retrieval and Web Search Christopher Manning and Prabhakar Raghavan Lecture 6: Scoring, Term Weighting and the Vector Space Model. 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
E N D
CS276: Information Retrieval and Web Search Christopher Manning and Prabhakar Raghavan Lecture 6: Scoring, Term Weighting and the Vector Space Model
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
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.
Ch. 6 Problema com a busca booleana:banquete ou fome • 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
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
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
Ch. 6 Pontuação como a base para recuperação rankeada • 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.
Ch. 6 Pontuação da correspondência Consulta-documento • 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.
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) = 0se A ∩ B = 0 • A e B não precisam possuir o mesmo tamanho. • Sempre será atribuido um número entre 0 e 1.
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 • . . . Em vez de |A ∩ B|/|A ∪ B| (Jaccard) para normalização de comprimento.
Sec. 6.2 Relembrando (Capítulo 1): Matriz de incidência binaria termo-documento Cada documento é representado por um vetor binario ∈ {0,1}|V|
Sec. 6.2 Matrizes de contagem Termo-documento • Considere o número de ocorrências de um termo em um documento: • Cada documento é um vetor contador em ℕv: uma coluna abaixo
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 eMary é 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
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 emd. • 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 Ponderação Log-freqüência • O peso log freqüência do termo t em d é • 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 • A pontuação é 0 se nenhum dos termos da consulta estão presentes no documento.
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.
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.
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 • 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 Exemplo idf, suponha N = 1 milhão Existe um valor idf para cada termo term t em uma coleção.
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.
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: • Qual palavra é um termo de consulta melhor (e deve receber um peso mais alto)?
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. • 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
Sec. 6.2.2 Classificação final dos documentos para uma consulta
Sec. 6.3 Binário → contagem → matriz de peso Cada documento é representado agora por um vetor de valor real de pesos tf-idf ∈ R|V|
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.
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
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.
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 documentod2 forem muito similares.
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.
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 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 : • 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 cosseno(consulta,documento) Vetores Unidade Produto vetorial 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.
Cosseno para vetores comprimento-normalizados • Para vetores comprimento-normalizados, cosseno de similaridade é simplesmente o produto vetorial (ou produto escalar): para q, d comprimento-normalizados.
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? Freqüência de termos (contagem) Nota: Para simplificar este exemplo, nós não fizemos a ponderação idf.
Sec. 6.3 3 documentos, continuação do exemplo. Ponderação Log freqüência Depois da normalização de comprimento 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
Sec. 6.3 Computando a pontuação de cossenos
Sec. 6.4 Ponderação tf-idf possui muitas variantes
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 • Consulta: logarítmico tf (l na coluna mais a esquerda), idf (t na segunda coluna), cosseno … Uma péssima idéia?
Sec. 6.4 Exemplo tf-idf: lnc.ltc Documento: car insurance auto insurance Consulta: best car insurance Comprimento do Doc= Ponto = 0+0+0.27+0.53 = 0.8
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
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)
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”
Sec. 6.1 Exemplo de índices de zonas Zonas codificadas no dicionário vs. postings.
Ch. 6 Resources for today’s lecture • IIR 6.2 – 6.4.3 • http://www.miislita.com/information-retrieval-tutorial/cosine-similarity-tutorial.html • Term weighting and cosine similarity tutorial for SEO folk!