Recuperação Inteligente de Informação Agrupamento de Texto CIn-UFPE 1 2 Roteiro da Aula Definição Geral Clustering de texto Cluster não-hierárquico Cluster hierárquico CIn-UFPE 3 Agrupamento de Objetos Clustering Objetivos Particionar exemplos não classificados em subconjuntos disjuntos (clusters), de modo que Exemplos em um mesmo cluster são muito similares Exemplos em clusters diferentes são muito diferentes Descobrir novas categorias de maneira nãosupervisionada i.e., sem conhecer as de categorias previamente CIn-UFPE 4 Exemplo de Clustering . .. . . . . . . . . . . . . . CIn-UFPE 5 Clustering de Texto Técnicas convencionais de Clustering têm sido diretamente aplicadas a texto, tipicamente representando os textos como vetores de pesos com TF/IDF usando a medida de similaridade do co-seno. Algumas aplicações: Durante a recuperação, adicionar outros documentos no mesmo cluster para melhorar a cobertura Organizar os resultados da busca em clusters, para melhorar a organização da apresentação dos resultados ao usuário E.g., folders do Vivisimo Criação automática de taxonomias hierarquizadas de documentos para browsing e.g., Yahoo & DMOZ CIn-UFPE 6 CIn-UFPE 7 CIn-UFPE 8 CIn-UFPE 9 Clustering Não-Hierárquico O número de clusters desejados deve ser informado Parâmetro = K Algoritmo Geral: Escolhe aleatoriamente k instancias (documentos) como sementes, uma para cada cluster Constrói os clusters iniciais com base nessas sementes Medindo a similaridade entre vetores Iterações realoca instancias em clusters diferentes, a fim de melhorar o clustering geral Para quando nenhum cluster é mais modificado, ou quando atinge um número fixo de iterações CIn-UFPE 10 Algoritmo K-Means Assume que instâncias são vetores de valores reais (não-binários) Cria clusters baseado em centróides (centros de gravidade), ou média dos pontos em um cluster, c: 1 μ(c) x | c | xc A Realocação de instâncias a outros clusters é baseada na distância entre o vetor que representante a instância e o centróide atual do cluster CIn-UFPE Algoritmo K-Means 11 Medidas de Distância Distância Euclidiana (L2 norma): m 2 L2 ( x , y ) ( xi yi ) i 1 L1 norma: m L1 ( x, y ) xi yi i 1 Similaridade com co-seno (transformada em uma distancia subtraindo-a de 1): x 1 x y y CIn-UFPE 12 Algoritmo K-Means Seja d a distância medida entre instâncias Selecione aleatoriamente k instâncias {s1, s2,… sk} como sementes Até o processo convergir (ou outro critério de parada for satisfeito), faça: Para cada instância xi Aloque xi no cluster cj tal que d (xi, sj) é mínima. Atualize as sementes como sendo os centróides de cada cluster Para cada cluster cj sj = (cj) CIn-UFPE 13 Exemplo do K Means (K=2) Pegue as semenstes Realoque clusters Compute centróides Realoque clusters x x x x Compute centróides Realoque clusters Convergiu! CIn-UFPE Algoritmo K-Means 14 Escolha das Sementes Resultados podem variar com a escolha aleatória das sementes Algumas sementes podem resultar em taxas baixas de convergência Ou convergência para clusters sub-optimais Devemos selecionar sementes com base em uma heurística ou usando resultados de outro método CIn-UFPE Clustering Hierárquico CIn-UFPE 15 16 Clustering Hierárquico Constrói uma árvore (taxonomia hierárquica dendograma) a partir de um conjunto de exemplos não etiquetados animal vertebrado peixe reptil anfíbio mamífero invertebrado helmito inseto crustáceo Aplicações recursivas de um algoritmo de clustering padrão podem produzir um clustering hierárquico CIn-UFPE Clustering Hierárquico 17 Aglomerativo vs. Divisivo Métodos Aglomerativos (bottom-up) Iniciam com cada exemplo sendo um cluster e Iterativamente combinam os clusters para formar cluster maiores Métodos Divisivos (particionais, top-down) Inicialmente, separam todos os exemplos em clusters. CIn-UFPE 18 Clustering Hierárquico Aglomerativo Algoritmo: Inicia com cada instância em um clusters separado Até restar apenas um cluster Repetidamente, une os dois clusters ci and cj que são mais semelhantes, criando um cluster ci cj Utiliza uma função para determinar a similaridade entre duas instâncias/clusters E.g., Co-seno entre vetores de documentos O histórico das junções forma uma árvore binária (ou hierarquia). CIn-UFPE 19 Clustering Hierárquico Aglomerativo Similaridade entre Clusters Como computar a similaridade entre dois clusters (sim(x,y)) que podem conter mais de uma instância? Três possibilidades: Single Link: Similaridade entre os dois membros mais similares Complete Link: Similaridade entre os dois membros menos similares Group Average: Similaridade média entre todos os membros do cluster CIn-UFPE Clustering Hierárquico Aglomerativo 20 Single Link Similaridade entre os dois membros mais similares: sim(ci ,c j ) max sim( x, y) xci , yc j Pode resultar em clusters longos e finos, devido ao efeito “cadeia” Isso é apropriado em alguns casos, como por exemplo clustering islands. CIn-UFPE Clustering Hierárquico Aglomerativo Exemplo de Single Link 21 CIn-UFPE Clustering Hierárquico Aglomerativo 22 Complete Link Similaridade entre os dois membros menos similares: sim(ci ,c j ) min sim( x, y ) xci , yc j Cria clusters mais more densos e esféricos, que são, em geral, preferíveis CIn-UFPE Clustering Hierárquico Aglomerativo Exemplo de Complete Link 23 CIn-UFPE 24 Clustering Hierárquico Aglomerativo Similaridade entre Clusters Depois de unir ci e cj, a similaridade entre o cluster resultante e outro cluster qualquer ck pode ser dada por: Single Link: sim((ci c j ), ck ) max(sim(ci , ck ), sim(c j , ck )) Complete Link: sim((ci c j ), ck ) min(sim(ci , ck ), sim(c j , ck )) CIn-UFPE Clustering Hierárquico Aglomerativo Similaridade Group Average entre Clusters 25 Mede a similaridade entre dois clusters com base na similaridade média entre todos os pares com o cluster que foi unido 1 sim(ci , c j ) sim( x, y) ci c j ( ci c j 1) x(ci c j ) y(ci c j ): y x “Compromisso” entre single e complete link. CIn-UFPE Clustering Hierárquico Aglomerativo Similaridade Group Average entre Clusters 26 Assume co-seno como função de similaridade e vetores normalizados Sempre mantém a soma dos vetores em cada cluster s (c j ) x xc j Compute similaridade entre clusters em tempo constante: sim(ci , c j ) (s (ci ) s (c j )) (s (ci ) s (c j )) (| ci | | ci |) (| ci | | ci |)(| ci | | ci | 1) CIn-UFPE 27 Clustering Hierárquico Divisivo Aplicação de k-Means de forma interativa Inicialmente, divida todos os objetos em dois clusters usando k-Means Aplique k-Means nos clusters formados para gerar subclusters Repita até atingir critério de parada CIn-UFPE 28 Próxima aula Lucene CIn-UFPE