660 likes | 758 Vues
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.
E N D
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 • 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
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
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?
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
Sec.14.1 Documentos em um espaco vetorial Governo Ciências Artes
Sec.14.1 Documento de teste pertence a qual classe? Governo Ciências Artes
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
Sec.14.1 Graficos 2D/3D podem ser enganosos
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
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
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}
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}
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}
K-Nearest Neighbor • Recupera os k objetos mais próximos de um objeto referência (Oq) Cidades do Brasil Oq = Uberlândia K = 3
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
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
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∞
K-Nearest Neighbor • Um documento é classificado ao analisar os k documentos mais próximos a ele
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
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
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
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
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
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
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
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
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
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
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.
Sec.14.2 Ilustração da Categorização de Texto Rocchio
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.
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?
Sec.14.2 Irregularidade Rocchio • Modelos de protótipos tem problemas com categorias polimorficas (disjuntiva).
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
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]
Sec.14.3 Exemplo: k=6 (6NN) P(ciência| )? Governo Ciência Artes
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
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
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.
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.)
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.
Sec.14.3 Ilustração de 3 vizinhos mais próximos para Espaço Vetorial Textual
3 Vizinhos mais próximos vs. Rocchio • Vizinhos mais próximos tendem a lidar com categorias polimórficas melhor do que Rocchio/NB.
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|
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
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)
Sec.14.6 Bias vs. variance: Escolhendo o modelo correto de capacidade
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á?
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