1 / 66

CS276: Information Retrieval and Web Search Christopher Manning and Prabhakar Raghavan

CS276: Information Retrieval and Web Search Christopher Manning and Prabhakar Raghavan Lecture 11: Text Classification; Vector space classification. [Borrows slides from Ray Mooney]. Recap: Classificadores Naïve Bayes.

zelia
Télécharger la présentation

CS276: Information Retrieval and Web Search Christopher Manning and Prabhakar Raghavan

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CS276: Information Retrieval and Web Search Christopher Manning and Prabhakar Raghavan Lecture 11: Text Classification; Vector space classification [Borrows slides from Ray Mooney]

  2. Recap: Classificadores Naïve Bayes • Classificar baseado no peso prévio da classe e no parametro condicional para cada palavra: • Treinamento é feito pela contagem e divisão: • Não se esqueça da suavização

  3. O restante da classificação textual • Veremos hoje: • Métodos de espaço vetorial para classificação textual • Classificação em espaços vetoriais utilizando centroides (Rocchio) • K Vizinhos mais próximos (K-NN) • Fronteiras de decisão, classificadores lineares e não-lineares • Lidando com mais de 2 classes • Nos próximos capitulos • Mais classificação textual • Support Vector Machines • Problemas especificos de classificação textual

  4. Sec.14.1 Relembrando: Representação do espaço vetorial • Cada documento é um vetor, uma componente para cada termo (= palavra). • Normalmente vetores normalizados para uma unidade de tamanho. • Espaco vetorial de alta dimensao: • Os termos são eixos • Mais de 10.000 dimensões, ou ate mesmo 100.000+ • Docs são vetores nesse espaço • Como podemos fazer a classificação nesse espaço?

  5. Sec.14.1 Classificação usando espaços vetoriais • Como antes, o conjunto de treinamento é um conjunto de documentos, cada um rotulado com sua classe (Ex., topico) • Na classificação em espaço vetorial, este conjunto corresponde a um conjunto de pontos rotulados (ou, equivalentemente, vetores) no espaço vetorial • Premissa 1: Documentos da mesma classe formam uma região continua do espaço • Premissa 2: Documentos de diferentes classes não se sobrepõem (muito) • Nós definimos superficies para delinear as classes no espaço

  6. Sec.14.1 Documentos em um espaco vetorial Governo Ciências Artes

  7. Sec.14.1 Documento de teste pertence a qual classe? Governo Ciências Artes

  8. Sec.14.1 Documento de teste = Governo Esta hipótese de similaridade sempre será verdadeira? Governo Ciências Artes Nosso principal tema hoje é como encontrar bons separadores

  9. Sec.14.1 Graficos 2D/3D podem ser enganosos

  10. K-Nearest Neighbor • Classificação realizada por meio da aplicação de uma função de distância. • Existem diversos modelos utilizados como função de distância

  11. K-Nearest Neighbor • Classificação realizada por meio da aplicação de uma função de distância. • Existem diversos modelos utilizados como função de distância O3 O2 O1 R q O q

  12. K-Nearest Neighbor • Classificação realizada por meio da aplicação de uma função de distância. • Existem diversos modelos utilizados como função de distância O3 O2 O1 R q O q L1 Manhattan / City-block {O1}

  13. K-Nearest Neighbor • Classificação realizada por meio da aplicação de uma função de distância. • Existem diversos modelos utilizados como função de distância L2 Euclidiana {O1, O2} O3 O2 O1 R q O q L1 Manhattan / City-block {O1}

  14. K-Nearest Neighbor • Classificação realizada por meio da aplicação de uma função de distância. • Existem diversos modelos utilizados como função de distância L2 Euclidiana {O1, O2} O3 L∞ Chebychev / Infinity {O1, O2, O3} O2 O1 R q O q L1 Manhattan / City-block {O1}

  15. K-Nearest Neighbor • Recupera os k objetos mais próximos de um objeto referência (Oq) Cidades do Brasil Oq = Uberlândia K = 3

  16. K-Nearest Neighbor • Recupera os k objetos mais próximos de um objeto referência (Oq) Cidades do Brasil Oq = Uberlândia K = 3 d() = L1

  17. K-Nearest Neighbor • Recupera os k objetos mais próximos de um objeto referência (Oq) Cidades do Brasil Oq = Uberlândia K = 3 d() = L2

  18. K-Nearest Neighbor • Recupera os k objetos mais próximos de um objeto referência (Oq) Cidades do Brasil Oq = Uberlândia K = 3 d() = L∞

  19. K-Nearest Neighbor • Um documento é classificado ao analisar os k documentos mais próximos a ele

  20. K-Nearest Neighbor • Um documento é classificado ao analisar os k documentos mais próximos a ele 5 2 4 3 1 ? = classe 1 = classe 2

  21. K-Nearest Neighbor • Um documento é classificado ao analisar os k documentos mais próximos a ele Para k = 1 5 2 4 3 1 ? = classe 1 = classe 2

  22. K-Nearest Neighbor • Um documento é classificado ao analisar os k documentos mais próximos a ele Para k = 1 Documento pertence a classe 1 5 2 4 3 1 ? = classe 1 = classe 2

  23. K-Nearest Neighbor • Um documento é classificado ao analisar os k documentos mais próximos a ele Para k = 3 5 2 4 3 1 ? = classe 1 = classe 2

  24. K-Nearest Neighbor • Um documento é classificado ao analisar os k documentos mais próximos a ele Para k = 3 Documento pertence a classe 2 5 2 4 3 1 ? = classe 1 = classe 2

  25. Rocchio • Similar ao kNN, porém representa os documentos como uma média (centróide) • Para classificar um documento, calculamos a sua distância às médias

  26. Rocchio • Similar ao kNN, porém representa os documentos como uma média (centróide) • Para classificar um documento, calculamos a sua distância às médias 5 4 3 2 1 ? = classe 1 = classe 2

  27. Rocchio • Similar ao kNN, porém representa os documentos como uma média (centróide) • Para classificar um documento, calculamos a sua distância às médias 5 4 3 2 1 ? = classe 1 = classe 2

  28. Rocchio • Similar ao kNN, porém representa os documentos como uma média (centróide) • Para classificar um documento, calculamos a sua distância às médias 3.5 5 4 3 2 1 ? 3.66 = classe 1 = classe 2

  29. Rocchio • Similar ao kNN, porém representa os documentos como uma média (centróide) • Para classificar um documento, calculamos a sua distância às médias Documento pertence a classe 2 3.5 5 4 3 2 1 ? 3.66 = classe 1 = classe 2

  30. Sec.14.2 Utilizando Rocchio para classificação textual • Métodos de “relevance feedback” podem ser adaptadosparaclassificação textual • Como vistoanteriormente, “relevance feedback” pode ser vistocomoumaclassificação entre 2 classes • Documentosrelevantes vs. documentosnão-relevantes • Utiliza o padrãotf-idf de vetoresponderadospararepresentardocumentos de texto • Para documentos de treinamentoemcadacategoria, calcula-se um vetorprotótipopela soma dos vetores dos documentos de treinamentodacategoria. • Protótipo = centroide dos membrosdaclasse • Atribuiosdocumentos de teste a categoria com o vetorprotótipomaispróximo, levando-se emconta a similaridade do cosseno.

  31. Sec.14.2 Ilustração da Categorização de Texto Rocchio

  32. Sec.14.2 Definição de centroide • Onde Dc é o conjunto de todos os documentos que pertencem classe c e v(d) é a representação de d no espaço vetorial. • Note que o centroide, em geral, não será um vetor unitario mesmo quando as entradas são vetores unitários.

  33. Sec.14.2 Propriedades Rocchio • Constitui uma simples generalização dos exemplos em cada classe (um protótipo). • O vetor protótipo não precisa ser normalizado, já que a similaridade por cosseno é insensivel ao comprimento do vetor. • A classificação é baseada na similaridade com os protótipos das classes. • Não garante que a classificação seja consistente com os dados de treinamento. Por que não?

  34. Sec.14.2 Irregularidade Rocchio • Modelos de protótipos tem problemas com categorias polimorficas (disjuntiva).

  35. Sec.14.2 Classificação Rocchio • Rocchio forma uma representação simples para cada classe: o centroide / protótipo • A classificação é baseada na similaridade de / para a distância a partir do protótipo/centroide • Isso não garante que as classificações sejam consistentes com os dados de treinamento • É pouco utilizado fora da classificação textual • Tem sido utilizado de forma bastante eficaz para a classificação textual • Mas, em geral, pior que o Naïve Bayes • Novamente, mais barato para treinar e testar documentos

  36. Sec.14.3 Classificação k vizinhos mais próximos • kNN = k Nearest Neighbor • Para classificar um documento d em uma classe c: • Definir os k vizinhos mais próximos de d • Contar o número de documentos i em N que pertencem a c • Estime P(c|d) igual a i/k • Escolha como classe argmaxc P(c|d) [ = classe majoritaria]

  37. Sec.14.3 Exemplo: k=6 (6NN) P(ciência| )? Governo Ciência Artes

  38. Sec.14.3 Algoritmo de aprendizagem Vizinho mais próximo • Aprender é apenas armazenar as representações dos exemplos de treinamento em D. • Exemplo de teste x (em 1NN): • Calcule a similaridade entre x e todos os exemplos em D. • Atribuir x a categoria do exemplo mais similar em D. • Não calcular explicitamente uma generalização ou protótipos da categoria. • Também chamado de: • Aprendizagem baseada em caso • Aprendizagem baseada em memória • Aprendizagem preguiçosa

  39. Sec.14.3 kNN é próximo do ótimo • Cover and Hart (1967) • A taxa de erro para a classificação 1-NN é 2 vezes menor do que a classificação Bayes [taxa de erro para o classificador sabendo o modelo que gerou os dados] • Em particular, a taxa de erro será 0 sempre que a taxa para o classificador Bayes for 0. • Assuma: ponto de consulta coincide com o ponto de treinamento. • Both query point and training point contribute error → 2 times Bayes rate

  40. Sec.14.3 k Vizinhos mais próximos • Utilizar apenas o exemplo mais próximo (1NN) para determinar a classe, está sujeito a erros devido a: • Um único exemplo atípico. • Ruído (i.e., um erro) no rotulo de uma categoria em um único exemplo de treinamento. • Alternativa mais robusta é encontrar os k exemplos mais similares e retornar a categoria da maioria desses k exemplos. • Valores de k normalmente é ímpar, 3 e 5 são os mais comuns.

  41. Sec.14.3 kNN limites de decisão Limites são, em princípio, superfícies arbitrárias, mas em geral poliedros Governo Ciência Artes kNN define limites de bordas entre classes – pontos distantes não influenciam cada decisão de classificação (ao contrário de Naïve Bayes, Rocchio, etc.)

  42. Sec.14.3 Métricas de similaridade • Vizinho mais próximo depende de uma medida de similaridade (ou distância). • Exemplo mais simples para o espaço continuo m-dimensional é a Distância Euclidiana. • Exemplo mais simples para o espaço m-dimensional binário é a Distância de Hamming (número de valores de caracteristicas que diferem). • Para texto, a similaridade do cosseno de vetores ponderados de tf.idf, normalmente é mais eficaz.

  43. Sec.14.3 Ilustração de 3 vizinhos mais próximos para Espaço Vetorial Textual

  44. 3 Vizinhos mais próximos vs. Rocchio • Vizinhos mais próximos tendem a lidar com categorias polimórficas melhor do que Rocchio/NB.

  45. Sec.14.3 Vizinhos mais próximos com Indice Invertido • Encontrar os vizinhos mais próximos requer uma buscar linear sobre os documentos |D| em uma coleção • Mas determinar os k vizinhos mais próximos é o mesmo que determinar os k melhores recuperados usando um documento de teste como uma consulta a uma base de documentos de treinamento. • Usa os métodos padrão de indice invertido de espacos vetoriais para encontrar os k vizinhos mais próximos. • Testing Time: O(B|Vt|) onde B é o número médio de documentos de treinamento em que a palavra test-document aparece. • Tipicamente B << |D|

  46. Sec.14.3 kNN: Discussão • Não é necessário seleção de características • Funciona bem com grande número de classes • Não precisa treinar n classificadores para n classes • Classes podem influenciar umas as outras • Pequenas mudanças em uma classe pode ter efeito cascata • Pontuações podem ser difíceis de converter para probabilidades • Não é necessário treinamento • Na verdade: talvez não seja verdade. (Edição de dados, etc.) • Na maioria dos casos é mais preciso do que o NB ou Rocchio

  47. Sec.14.6 kNN vs. Naive Bayes • Tendência/Troca de variância • Variância ≈ Capacidade • kNN tem alta variance e baixa bias. • Memória infinita • NB tem baixa variance e alta bias. • Superfície de decisão deve ser linear (hiperplano – veja adiante) • Considere a pergunta a um botânico: É um objeto de uma árvore? • Muito capacity/variance, baixo bias • Botânico que memoriza • Sempre dirá “não“ ao novo objeto (e.g., diferentes # de folhas) • Pouco capacity/variance, alto bias • Botânico preguiçoso • Diz “sim” se o objeto é verde • Você quer o meio termo • (Exemplo devido a C. Burges)

  48. Sec.14.6 Bias vs. variance: Escolhendo o modelo correto de capacidade

  49. Sec.14.4 Classificadores lineares e binários e classificação multiclasse • Considere 2 classes de problema • Decidir entre 2 classe, talvez, governo e não-governo • Classificação one-versus-rest • Como podemos definir (e encontrar) a superfície de separação? • Como vamos decidir em qual região um test doc está?

  50. Sec.14.4 Separação por Hiperplanos • Uma forte suposição high-bias é a separabilidade linear: • em 2 dimensões, pode separar classes por uma linha • em dimensões superiores, é necessário hiperplanos • Pode encontrar hiperplanos separando por programação linear (ou ajustar iterativamente a solução via perceptron): • Separador pode ser expresso como ax + by = c

More Related