660 likes | 765 Views
CS276: Information Retrieval and Web Search Christopher Manning and Prabhakar Raghavan Lecture 10: Text Classification; The Naive Bayes algorithm. Recapitulando… (Relevance feedback). Em relevance feedback, o usuário marca alguns documentos como relevante / não-relevante
E N D
CS276: Information Retrieval and Web Search Christopher Manning and Prabhakar Raghavan Lecture 10: Text Classification; The Naive Bayes algorithm
Recapitulando… (Relevance feedback) • Em relevance feedback, o usuário marca alguns documentos como relevante/não-relevante • As escolhas podem ser organizadas em classes ou categorias • Para os documentos recuperados, o usuário decide qual a classe correta • Os sistemas de RI usam essas decisões para construir um modelo melhor para a informação desejada • Relevance feedback pode ser visto como uma forma de classificação textual (decidindo entre classes) • A noção de classificação é muito geral e tem muitas aplicações dentro e fora da RI
Ch. 13 Consultas periódicas (Standing) • O caminho da RI para a classificação textual: • Você tem uma informação que precisa monitorar: • Conflitos na região do Delta do Níger (Nigéria) • Você quer rodar uma determinada consulta periodicamente para encontrar novas notícias sobre esse tema • Você receberá os novos documentos encontrados • I.e., classifiação textual, não ranqueamento • Essas consultas são chamadas consultas periódicas • Muito utilizado pelos “profissionais da informacao” • Um exemplo atual é o Google Alerts • Consultas periódicas são (escritas a mão) classificadores de texto
Ch. 13 Filtro de Spam: Outra tarefa de classificação textual From: "" <takworlld@hotmail.com> Subject: real estate is the only way... gem oalvgkay Anyone can buy real estate with no money down Stop paying rent TODAY ! There is no need to spend hundreds or even thousands for similar courses I am 22 years old and I have already purchased 6 properties using the methods outlined in this truly INCREDIBLE ebook. Change your life NOW ! ================================================= Click Below to order: http://www.wholesaledaily.com/sales/nmd.htm =================================================
Ch. 13 Classificação textual • Nesse capitulo: • Introdução a classificação textual • Também conhecida como “categorização textual”. • Classificação textual Naïve Bayes • Incluindo um pouco sobre Modelos Probabilísticos
Sec. 13.1 Categorização/Classificação • Dados: • A descrição de um documento, d X • X é o espaço dos documentos. • Problema: como representar documento de texto • Normalmente, algum tipo de espaço de alta dimensão • Um conjunto fixo de classes: C ={c1, c2,…, cJ} • Determine: • A categoria de d: γ(d) C, onde γ(d) é uma função de classificação cujo dominio é X e cuja classificação está em C. • Queremos saber como construir funções de classificação (“classificadores”).
Sec. 13.1 Classificação Supervisionada • Dados: • A descrição de um documento, d X • X é o espaço dos documentos. • Um conjunto fixo de classes: C ={c1, c2,…, cJ} • Um conjunto de treinamento D de documentos rotulados, onde cada documento rotulado ⟨d,c⟩ ∈ X×C • Determine: • Um algoritmo ou método de aprendizagem que nos permita determinar um classificador γ:X→C • Para um documento de teste d, atribuimos a classe γ(d) ∈ C
Sec. 13.1 Classificação de Documentos “planning language proof intelligence” Test Data: (AI) (Programming) (HCI) Classes: Planning Semantics Garb.Coll. Multimedia GUI ML Training Data: learning intelligence algorithm reinforcement network... planning temporal reasoning plan language... programming semantics language proof... garbage collection memory optimization region... ... ... (Nota: na vida real muitas vezes há uma hierarquia, que não está presente no problema acima; e também, você pode ter documentos sobre ML atribuidos à classe Garb. Coll.)
Ch. 13 Mais exemplos de Classificação TextualMuitas funcionalidades dos motores de buscas utilizam classificação • Atribuindorótulos a documentosou a páginas-web: • Rótulossãoutilizadosmaisfrequentementecomotópicos… como as categorias do Yahoo! • "finance," "sports," "news>world>asia>business" • Rótulospodem ser gêneros • "editorials" "movie-reviews" "news” • Rótulospodem ser opiniõessobre um produto/pessoa • “like”, “hate”, “neutral” • Rótulospodem ser específicos de um domínio • "interesting-to-me" : "not-interesting-to-me” • “contains adult language” : “doesn’t” • language identification: English, French, Chinese, … • search vertical: about Linux versus not • “link spam” : “not link spam”
Métodos de Classificação • Classificação Manual • Classificação automática • Aprendizado supervisionado • Relevance Feedback • Métodos Bayesianos
Ch. 13 Métodos de Classificação (1) • Classificação Manual • Usado pelo Yahoo! Directory • Looksmart, about.com, ODP, PubMed • Alta precisão quando o trabalho é feito por especialistas • Consistente quando a equipe e o problema são pequenos • Escalabilidade dificil e muito trabalhosa • Significa que precisamos de métodos de classificação automáticos para grandes problemas
Ch. 13 Métodos de Classificação (2) • Classificação automática de documentos • Sistemas baseado em regras escritas a mão • Tecnica utilizada pelo filtro de spam do Departamento de Computacao de Stanford, Reuters, CIA, etc. • Utilizado pelo Google Alerts • Amplamente implantado no governo e empresas • Empresas fornecem ambientes de desenvolvimento para escrever essas regras • Ex., atribuir a uma categoria se um documento contém uma combinação booleana de palavras • Precisão geralmente é elevada se uma regra for refinada ao longo do tempo por um especialista • Construção e manutenção dessas regras requer muito esforço
Ch. 13 A Verity topic Uma regra de classificação complexa • Nota: • Problemas de manutenção (autor, etc.) • Ponderação dos termos feita a mão [Verity was bought by Autonomy.]
Ch. 13 Métodos de classificação (3) • Aprendizado supervisionado de uma função de atribuição de rótulo de documento • Muitos sistemas, mesmo que parcialmente, dependem de maquinas de aprendizado (Microsoft, Enkata, Yahoo!, …) • k-Vizinhos mais proximos (simples, poderoso) • Naive Bayes (simples, método comum) • Support-vector machines (new, more powerful) • … além de muitos outros métodos • Nada de moleza: exige que os dados de treinamento sejam classificados manualmente • Mas os dados podem ser construidos (e refinados) por amadores • Muitos sistemas comerciais utilizam uma mistura dos métodos
Sec. 9.1.2 Relevance feedback probabilístico • Ao invés de reponderação em um espaco vetorial… • Se o usuário disser alguns documentos relevantes e irrelevantes, então podemos continuar a construção de um classificador probabilístico, • como veremos no modelo Naive Bayes: • P(tk|R) = |Drk| / |Dr| • P(tk|NR) = |Dnrk| / |Dnr| • tk é um termo; Dr é o conjunto de documentos conhecidos como relavantes; Drk é o subconjunto que contém tk; Dnr é o conjunto de documentos conhecidos como não-relevantes; Dnrk é o subconjunto que contém tk.
Lembrando alguns princípios básicos de probabilidade • Para os eventos ae b: • Regra de Bayes • Probabilidade: Anterior Posterior
Sec.13.2 Métodos Bayesianos • Nosso foco nesse capítulo • Aprendizagem e métodos de classificação baseados na teoria da probabilidade. • Teorema de Bayes tem um papel fundamental na aprendizagem probabilística e classificação. • Constrói um modelo produtor que se aproxima em como os dados são produzidos • Utiliza a probabilidade anterior de cada categoria caso não haja informações sobre um item. • Encontrar a melhor classe para o documento utilizando uma distribuição de probabilidade posterior sobre as possíveis classes dada a descrição de um item.
Sec.13.2 Regras Bayesianas para classificação textual • Para um documento d e uma classe c
Sec.13.2 Classificadores Naive Bayes Tarefa: Classificar uma nova instância d baseado em uma tupla de valores de atributo em uma das classes cj C MAP é o “máximo a posteriori” = classe mais provável
Sec.13.2 Classificador Naïve Bayes: Hipotese Naïve Bayes • P(cj) • Pode ser estimada a partir da frequencia das classes nos exemplos de treinamento. • P(x1,x2,…,xn|cj) • O(|X|n•|C|) parameters • Somente pode ser estimado se um grande número de exemplos de treinamento estiver disponível. Hipótese de Independência Condicional Naïve Bayes: • Suponha que a probabilidade de observar uma conbinação de atributos é igual ao produto das probabilidades individuais P(xi|cj).
Sec.13.3 Flu X1 X2 X3 X4 X5 runnynose sinus cough fever muscle-ache O Classificador Naïve Bayes • Hipótese da Independência Condicional:características detectam a presença de termos e são independentes uns dos outros devido a classe: • Este modelo é apropriado para variáveis binárias • Modelo Multivariate Bernoulli
Sec.13.3 C X1 X2 X3 X4 X5 X6 Aprendizagem do Modelo • Primeira tentativa: estimativas de maior semelhança (MLE) • Basta usar as frequências nos dados Nc = nº doc que pertencem a classe c Nc = nº total de doc
Sec.13.3 E se não vimos nos documentos de treinamento nenhuma palavra muscle-ache classificada na classe Flu? Zero probabilities cannot be conditioned away, no matter the other evidence! Flu X1 X2 X3 X4 X5 runnynose sinus cough fever muscle-ache Problema com a máxima semelhança
Sec.13.3 Versão um pouco mais sutil Suavização para evitar Overfitting # de valores de Xi Todas as fracoes dos dados onde Xi=xi,k Grau de “suavizacao”
Sec.13.2.1 multiplicar Modelos estocásticos de linguagem • Modelo probabilístico para geração de strings (cada palavra por vez) em uma linguagem (comumente todas as strings do alfabeto ∑). Modelo M 0.2 the 0.1 a 0.01 man 0.01 woman 0.03 said 0.02 likes … the man likes the woman 0.2 0.01 0.02 0.2 0.01 P(s | M) = 0.00000008
Sec.13.2.1 the class pleaseth yon maiden 0.2 0.01 0.0001 0.0001 0.0005 0.2 0.0001 0.02 0.1 0.01 Modelos estocásticos de linguagem • Modelo probabilístico para geração de qualquer string Modelo M1 Modelo M2 0.2 the 0.0001 class 0.03 sayst 0.02 pleaseth 0.1 yon 0.01 maiden 0.0001 woman 0.2 the 0.01 class 0.0001 sayst 0.0001 pleaseth 0.0001 yon 0.0005 maiden 0.01 woman P(s|M2) > P(s|M1)
Sec.13.2.1 P ( ) P ( ) P ( ) P ( ) P ( ) P ( ) P ( | ) P ( | ) P ( | ) P ( | ) = P ( ) P ( | ) P ( | ) Unigram e modelos de ordem superior • Modelos de Linguagem Unigram • Modelos de Linguagem Bigram (geralmente, n-gram) • Outros Modelos de linguagem • Modelos baseados em gramática (PCFGs), etc. • Provavelmente não é a primeira coisa a se tentar em RI Fácil. Eficaz!
Sec.13.2 Naïve Bayes através de um modelo de linguagem condicional de classe = NB multinomial • Efetivamente, a probabilidade de cada classe é feita como um modelo de linguagem unigram específico de classe C w1 w2 w3 w4 w5 w6
Sec.13.2 Usando classificadores Multinomial Naive Bayes para classificação textual: Método basico • Atributos são as posições de texto, valores são as palavras. • Ainda assim muitas possibilidades • Suponha que a classificação é independente da posição das palavras • Use os mesmos parametros para cada posição • O resultado é o modelo “sacola de palavras” (over tokens not types)
Sec.13.2 Naive Bayes: Aprendizagem • A partir da coleção de treinamento, extraia o Vocabulário • Calcule os termos requeridos P(cj)e P(xk | cj) • Para cada cj em C faça • docsjsubconjunto de documentos para os quais a classe destino é cj • Textj documento único contendo todos os docsj • Para cada palavra xkno Vocabulario • nk número de ocorrências de xkem Textj
Sec.13.2 Naive Bayes: Classificação • positions todas as posições das palavras no documento atual que contenham tokens encontrados no Vocabulario • Retorne cNB, onde
Sec.13.2 Naive Bayes: Complexidade de tempo • Training Time: O(|D|Lave + |C||V|)) onde Lave é o comprimento médio de um documento em D. • Suponha que todos os aspectos são pré-calculados no tempo O(|D|Lave) durante uma passagem por todos os dados. • Geralmente apenas O(|D|Lave) pois usualmente |C||V| < |D|Lave • Test Time: O(|C| Lt) onde Lt é o tempo médio de um documento de teste. • Muito eficiente no geral, linearmente proporcional ao tempo necessário para apenas ler todos os dados. Porque?
Sec.13.2 Underflow Prevention: usar logs • Multiplicando grandes quantidades de probabilidades, que estão entre 0 e 1 por definição, pode resultar em estouro de ponto flutuante. • Desde que log(xy) = log(x) + log(y), é melhor realizar todos os cálculos somando os logs de probabilidades, em vez de multiplicar as probabilidades. • Classe com maior pontuação final não normalizada de log de probabilidade ainda é a mais provável. • Note que o modelo agora é só o máximo da soma dos pesos…
Classificador Naive Bayes • Interpretação simples: Cada parametro condicional log P(xi|cj) é um peso que indica o quanto um indicador xi é bom para cj. • O log P(cj) anterior é um peso que indica a frequência relativa de cj. • A soma é então uma medida do tamanho da evidência para que o documento pertença a uma classe. • Nós selecionamos a classe com maior evidência para ela
Dois modelos Naive Bayes • Modelo 1: Multivariate Bernoulli • Uma caracteristica Xw para cada palavra do dicionario • Xw = true no documento d se w aparece em d • Hipotese Naive Bayes: • Dado tópico dos documentos, a ocorrência de uma palavra no documento não nos diz nada sobre a chance de uma outra palavra aparecer • Este é o modelo usado no modelo de independência binária no relevance feedback clássico probabilístico dos dados classificados a mão (Maron em RI era um usuario muito precoce do NB)
Dois modelos • Modelo 2: Multinomial = Class conditional unigram • Uma caracteristica Xi para cada palavra no documento • Valores das caracteristicas são todas as palavras do dicionário • Valor de Xi é a palavra na posição i • Hipótese Naïve Bayes: • Dado tópico dos documentos, as palavras em uma posição no documento não nos diz nada sobre as palavras em outras posições • Segunda hipótese: • A ocorrência da plavra não depende da posição • Basta ter uma caracteristica multinomial prevendo todas as palavras Para todas as posições i,j, palavra w, e classe c
Estimativa do parametro • Multivariate Bernoulli model: • Multinomial model: • Pode criar um mega documento para a classe j, concatenando todos os documentos desta classe • Utiliza a frequência de w no mega documento Fração de documentos de classe cj em que aparece a palavra w Fração de vezes em que a palavra w aparece entre todas as palavras nos documentos de topico cj
Classificação • Multinomial vs Multivariate Bernoulli? • Modelo Multinomial é quase sempre mais eficiente em aplicações de texto! • Veja a figura dos resultados depois • Veja as seções IIR 13.2 e 13.3 para exemplos de cada modelo
Sec.13.5 Seleção de características: Por que? • Coleções de texto possuem um grande numero de características • 10,000 – 1,000,000 unique words … and more • Pode ser feito utilizando um classificador específico • Alguns classificadores não conseguem lidar com 100,000 características • Reduz o tempo de treinamento • Tempo de treinamento para alguns métodos é quadrático ou pior em numero de características • Pode melhorar a generalização (performance) • Elimina o ruido das características • Evita overfitting
Sec.13.5 Seleção de características: como? • Duas idéias: • Hipóteses de estatísticas de teste: • Estamos confiantes de que o valor de uma variável categórica é associado com o valor de outro • Chi-square test (2) • Teoria da informação: • Quanta informação o valor de uma variável categórica fornece sobre o valor de uma outra • Informação mútua • Eles são semelhantes, mas 2 measures confidence in association, (based on available statistics), while MI measures extent of association (assuming perfect knowledge of probabilities)
Sec.13.5.2 Term = jaguar Term jaguar Class = auto 2 (0.25) 500 (502) Class auto 3 (4.75) 9500 (9498) Estatística 2 (CHI) • 2 está interessado em (fo – fe)2/fe soma de todas as entradas na tabela: o número observado é o que você esperaria dada as marginais? • A hipotese nula é rejeitada com confiança de .999 • uma vez que 12.9 > 10.83 (o valor de .999 de confiança). esperado: fe observado: fo
Sec.13.5.2 A = #(t,c) C = #(¬t,c) B = #(t,¬c) D = #(¬t, ¬c) Estatística 2 (CHI) Uma simples fórmula para 2x2 2: N = A + B + C + D Valor para independência completa do termo e da categoria?
Sec.13.5.1 Seleção de características via Informação Mútua (MI) • No conjunto de treinamento, escolha as k palavras que melhor discriminam (dê mais informações sobre) as categorias. • A informação mútua entre uma palavra de classe, é: • Para cada palavra w e cada categoria c • ew =1, documento contem w • ec 1, documento pertence a classe c
Sec.13.5.1 Seleção de características via MI (cont.) • Para cada categoria, construimos uma lista dos k termos mais discriminantes. • Por exemplo (em 20 grupos de notícias): • sci.electronics: circuit, voltage, amp, ground, copy, battery, electronics, cooling, … • rec.autos: car, cars, engine, ford, dealer, mustang, oil, collision, autos, tires, toyota, … • Greedy: não leva em conta as correlações entre os termos • Porquê?
Sec.13.5 Seleção de características • Informação Mútua • Limpar interpretação de informação teórica • Pode selecionar termos raros nao informativos • Chi-square • Fundamentacao estatistica • Pode selecionar termos frequentes e poucos informativos que nao sao muito uteis para a classificacao • Basta usar os termos mais comuns? • Nenhuma fundamentacao particular • Na pratica, eh muitas vezes 90% bom
Sec.13.5 Selecao de caracteristicas para o NB • Em geral eh necessario selecao de caracteristicas para Bernoulli multivariado NB. • Caso contrario, voce pode sofrer com ruido, multi-counting • “Selecao de caracteristicas” realmente significa algo diferente para o NB multinomial. Isso significa truncamento do dicionario • O modelo NB multinomial soh tem 1 caracteristica • Esta “selecao de caracteristica” normalmente nao eh necessaria para o NB multinomial, mas pode ajudar uma fracao com quantidades que sao mal estimadas
Recapitulando…. • Classificação textual • Consultas periódicas • Filtros de span • Classificação Manual • Classificação automática • Aprendizado supervisionado • Relevance Feedback • Métodos Bayesianos