Organização e Recuperação de Informação: Agrupamento de dados Marcelo K. A. Faculdade de Computação - UFU Agrupamento de dados / 7
Overview Agrupamento: introdução Agrupamento em ORI 3 K-médias 4 Avaliação 5 Quantos grupos Agrupamento de dados / 7
Conteúdo O que é agrupamento? Aplicações de agrupamento em ORI Algoritmo K-médias Avaliação de agrupamento Quantos grupos? Agrupamento de dados 3 / 7
Agrupamento: definição agrupamento de documentos é o processo de organização documentos em grupos Documentos em um grupo devem ser similares Documentos de grupos distintos devem ser dissimilares agrupamento é a forma mais comum de aprendizado não supervisionado não supervisionado = sem rótulos ou informação auxiliar Agrupamento de dados 5 / 7
Exercício: algoritmo para agrupar dados 0.0 0.5.0.5.0.5 Propor algoritmo para encontrar a estrutura de agrupamento nessa figura 0.0 0.5.0.5.0 Agrupamento de dados 6 / 7
Classificação vs. agrupamento Classificação: aprendizado supervisionado agrupamento: aprendizado não supervisionado Classificação: classes são parte da entrada para o algoritmo de aprendizado agrupamento: grupos são inferidos a partir da proximidade de dados, sem indicação humana/externa Maneira de influenciar a criação de agrupamento: número de grupos, medida de similaridade, representação de documentos,... Agrupamento de dados 7 / 7
Hipótese de agrupamento Documentos no mesmo grupo se comportam de maneira similar à relevância em relação à necessidade de informação Agrupamento de dados 9 / 7
recuperação baseada em agrupamento coleção melhor eficiência: busca mais rápida Agrupamento de dados 0 / 7 Aplicações de agrupamento em ORI aplicação o que é benefício agrupado? agrupamento de resultados de busca Scatter-Gather resultados de busca (subconjuntos da) coleção informação mais efetiva apresentação para usuário interface alternativa: busca sem digitar agrupamento de coleções coleção navegação exploratória
Agrupamento de resultados de busca para melhor navegação Agrupamento de dados / 7
Scatter-Gather Agrupamento de dados / 7
Navegação global: Yahoo Agrupamento de dados 3 / 7
Navegação global: MESH (nível superior) Agrupamento de dados 4 / 7
Navegação global: MESH (nível inferior) Agrupamento de dados 5 / 7
Hierarquias de navegação: criação automática vs. manual Note: Yahoo/MESH não são exemplos de agrupamento. Alguns exemplos basedos em agrupamento: Cartia Themescapes Google News Agrupamento de dados 6 / 7
Navegação global combinada com visualização () Agrupamento de dados 7 / 7
Navegação global combinada com visualização () Agrupamento de dados 8 / 7
Agrupamento para navegação: Google News http://news.google.com Agrupamento de dados 9 / 7
Agrupamento para melhor taxa de recuperação Melhorar recuperação: Agrupar docs na coleção Quando uma consulta obtém um doc d, também retornar docs no grupo com d Esperança que se fizermos isso, a consulta carro também apresentará automóvel Porquê o algoritmo de agrupamento junta documentos contendo carro com aqueles contendo automóvel Ambos tipos de documentos contém palavras como partes, concessionaria e mecânico Agrupamento de dados 0 / 7
Exercício: algoritmo para agrupar dados 0.0 0.5.0.5.0.5 Propor algoritmo para encontrar a estrutura de agrupamento nessa figura 0.0 0.5.0.5.0 Agrupamento de dados / 7
Metas de agrupamento Meta geral: colocar docs relacionados no mesmo grupo, colocar docs não relacionados em grupos diferentes. Há diferentes forma de formalizar essa meta O número de grupos deve ser apropriado para o conjunto de dados que estamos agrupando Inicialmente, assumiremos que o número de grupos K é conhecido Depois, métodos semi-automáticos para determinar K Metas secundárias em agrupamento Evitar grupos muito pequenos e muito grandes Definir grupos que são fáceis de explicar para o usuário e muitos outros... Agrupamento particional vs. hierárquico Agrupamento fechado (hard) vs. flexível (soft) Agrupamento de dados / 7
Agrupamento particional vs. hierárquico Algoritmos particionais Usualmente inicia com uma partição aleatória dos docs em grupos Refinar/corrigir grupos iterativamente Algoritmo principal: K-médias Algoritmos hierárquicos Criar uma hierarquia De baixo para cima, aglomerativo (mais comum) De cima para baixo, divisivo Agrupamento de dados 3 / 7
Agrupamento fechado (hard) vs. flexível (soft) Agrupamento fechado: cada documento pertence a exatamente um grupo Mais comum e fácil de fazer Agrupamento flexível: um documento pode pertencer a mais de um grupo Faz mais sentido para aplicações que necessitam de hierarquias navegáveis Exemplo: documentos sobre tênis podem ser de dois grupos: esportes sapatos Só é possível com agrupamento flexível Agrupamento de dados 4 / 7
Algoritmos particionais Algoritmos particionais obtém uma partição de N documentos em um conjunto de K grupos. Dado: um conjunto de docs e o número K Encontrar: uma partição em K grupos que otimiza o critério de particionamento escolhido Otimização global: enumerar exaustivamente partições, escolhar a melhor de todas de acordo com o critério Não é tratável Método heurístico efetivo: algoritmo K-médias Agrupamento de dados 5 / 7
K-médias Talvez o algoritmo de agrupamento mais bem conhecido Simples, funciona bem em muitos casos Usar como referência para agrupar documentos Agrupamento de dados 7 / 7
Representação de documentos em agrupamento Modelo de espaço vetorial Medimos a relação entre vetores com distância euclidiana......ou similaridade cosseno Agrupamento de dados 8 / 7
Ideia: K-médias Cada grupo é definido por um centroide. Critério de particionamento: minimizar a diferença quadrática média em relação ao centroide Definição de centroide µ(ω) = ω x x ω onde usamos ω para denotar um grupo Buscamos pela diferença quadrática média mínima pela seguinte iteração: reatribuição: atribuir cada vetor ao seu centroide mais próximo recomputação: recomputar cada centroide como a média de vetores que foram escolhidos na reatribuição Agrupamento de dados 9 / 7
Pseudo-código K-médias (µ k é o centroide de ω k ) K-médias({ x,..., x N },K) ( s, s,..., s K ) EscolherInicioAleatório({ x,..., x N },K) for k to K 3 do µ k s k 4 while critério de parada não foi atingido 5 do for k to K 6 do ω k {} 7 for n to N 8 do j argmin j µ j x n 9 ω j ω j { x n } (reatribuição de vetores) 0 for k to K do µ k ω k return { µ,..., µ K } x ω k x (recomputação de centroides) Agrupamento de dados 30 / 7
Exemplo: pontos para agrupamento Cada ponto representa um documento. Exercício: (i) Adivinhar qual é o agrupamento ideal para dois grupos nesse caso ; (ii) computar os centroides dos grupos Agrupamento de dados 3 / 7
Exemplo: encontrar centroides iniciais aleatoriamente Agrupamento de dados 3 / 7
Exemplo: atribuir pontos para o centroide mais próximo Agrupamento de dados 33 / 7
Exemplo: reatribuição Agrupamento de dados 34 / 7
Exemplo: Recalcular os centroides dos grupos Agrupamento de dados 35 / 7
Exemplo: atribuir pontos para o centroide mais próximo Agrupamento de dados 36 / 7
Exemplo: reatribuição Agrupamento de dados 37 / 7
Exemplo: Recalcular os centroides dos grupos Agrupamento de dados 38 / 7
Exemplo: atribuir pontos para o centroide mais próximo Agrupamento de dados 39 / 7
Exemplo: reatribuição Agrupamento de dados 40 / 7
Exemplo: Recalcular os centroides dos grupos Agrupamento de dados 4 / 7
Exemplo: atribuir pontos para o centroide mais próximo Agrupamento de dados 4 / 7
Exemplo: reatribuição Agrupamento de dados 43 / 7
Exemplo: Recalcular os centroides dos grupos Agrupamento de dados 44 / 7
Exemplo: atribuir pontos para o centroide mais próximo Agrupamento de dados 45 / 7
Exemplo: reatribuição Agrupamento de dados 46 / 7
Exemplo: Recalcular os centroides dos grupos Agrupamento de dados 47 / 7
Exemplo: atribuir pontos para o centroide mais próximo Agrupamento de dados 48 / 7
Exemplo: reatribuição Agrupamento de dados 49 / 7
Exemplo: Recalcular os centroides dos grupos Agrupamento de dados 50 / 7
Exemplo: atribuir pontos para o centroide mais próximo Agrupamento de dados 5 / 7
Exemplo: reatribuição Agrupamento de dados 5 / 7
Exemplo: Recalcular os centroides dos grupos Agrupamento de dados 53 / 7
Exemplo: centroides e atribuições após convergência Agrupamento de dados 54 / 7
Convergência do K-médias é garantida: ideia da prova RSS = soma de todas as distâncias quadradas entre documento e centroide RSS reduz durante cada passo de reatribuição porque cada vetor é atribuido para o centroide mais perto RSS reduz durante cada passo de recálculo Somente há um número finito de agrupamentos. Então chegaremos a um ponto fixo (onde centroides não mais se alteram) Premisa: empates são resolvidos consistentemente Conjunto finito & monotonicamente decrescente convergência Agrupamento de dados 55 / 7
Recomputação decresce a distância média RSS = K k= RSS k soma residual de distâncias quadradas (medida de adequação) RSS k ( v) = v x = M (v m x m ) x ω k x ω k RSS k ( v) v m = x ω k (v m x m ) = 0 m= v m = x m ω k x ω k A última linha é a definição do centroide por componente Minimizamos RSS k quando o centroide anterior é substituido com um novo centroide. RSS, a soma de RSS k, precisa então também reduzir durante os recalculos. Agrupamento de dados 56 / 7
K-médias converge Mas não sabemos quanto tempo levará Se não nos importamos com alguns docs trocando de grupo repetidamente então, convergência será rápida (< 0-0 iterações). Porém, convergência completa pode levar mais iterações Agrupamento de dados 57 / 7
Otimalidade do K-médias Convergência otimalidade Convergência não significa que encontramos o agrupamento ótimo Fraqueza do K-médias. Se iniciamos com centroides ruins, o resultado pode ser longe do ótimo Agrupamento de dados 58 / 7
Exercício: agrupamento subótimo 3 0 d d d 3 0 3 4 d 4 d 5 d 6 Para que é o agrupamento ótimo K =? Convergimos nesse agrupamento para aleatórios d i,d j? Agrupamento de dados 59 / 7
Inicialização de K-médias Inicialização aleatória é uma das muitas maneiras que K-médias pode usar Inicialização aleatória leva frequentemente a agrupamentos subótimos Outras maneiras: Usar heurística: não escolher elementos espúrios ou encontrar centroides bem espalhados no espaço Usar vários conjuntos de centroides aleatórios iniciais, rodar o algoritmo para cada conjunto e escolher o agrupamento com menor RSS Agrupamento de dados 60 / 7
Complexidade de tempo do K-médias Calcular uma distância entre dois vetores é O(M). Passo de reatribuição: O(KNM) (precisamos calcular KN distâncias centroide-documento, sendo K grupos) Passo de recomputação: O(NM) (adicionamos cada um dos < M valores do documento para um dos centroides) Número de iterações delimitado por I Complexidade geral: O(IKNM) linear em todas as dimensões importantes Porém, essa não é uma análise de pior caso Em casos patológicos, complexidades podem ser pior que linear Agrupamento de dados 6 / 7
O que é um bom agrupamento? Critério interno Exemplo de um critério interno: RSS no K-médias Mas um critério interno não avalia diretamente a utilidade de um agrupamento na aplicação Alternativa: critério externo Avaliar de acordo com uma classificação definida previamente Agrupamento de dados 63 / 7
Critério externo para qualidade de agrupamento Usar conjunto de documentos conhecido Meta: agrupamento deve reproduzir classes conhecidas Mas somente queremos reproduzir como os documento são dividos em grupos, sem usar os rótulos para treinamento Medida de quão bem conseguimos reproduzir as classes: pureza Agrupamento de dados 64 / 7
Critério externo: pureza pureza(ω,c) = N k max ω k c j j Ω = {ω,ω,...,ω K } é o conjunto de grupos e C = {c,c,...,c J } é o conjunto de classes. Para cada grupo ω k : encontrar classe c j com mais membros n kj em ω k Soma todos os n kj e dividir pelo número total de pontos Agrupamento de dados 65 / 7
Exemplo: pureza grupo grupo grupo 3 x o x x x x x o o o o x x Para calcular a pureza: 5 = max j ω c j (classe x, grupo ); 4 = max j ω c j (classe o, grupo ); e 3 = max j ω 3 c j (classe, grupo 3). Pureza é (/7)(5+4+3) 0.7. Agrupamento de dados 66 / 7
Outras medidas de avaliação externa Informação mútua normalizada (IMN) Quanta informação o agrupamento tem sobre a classificação? Grupos unitários (número de grupos = número de docs) tem informação mútua máxima Portanto: normalizar pela entropia dos grupos e classes Medida F Agrupamento de dados 67 / 7
Quantos grupos? Número de grupos K é conhecido em muitos casos E.g., pode haver restrição externa em K. Exemplo: No caso de Scatter-Gather, difícil mostrar mais que 0 0 grupos ao mesmo tempo E se não há limitação em K? Há um número correto de grupos? Uma forma: definir um critério de otimização Dados os docs, encontrar K para os quais o ótimo é encontrado Qual critério de otimização podemos usar? Não podemos usar RSS ou distância média quadrática ao centroide como critério: definiria sempre K = N. Agrupamento de dados 69 / 7
Função objetivo simples para K: ideia básica Iniciar com grupo (K = ) Continuar adicionando grupos (= continua aumentando K) Adicionar uma penalidade para cada novo grupo Então ponderar a penalidade do grupo em relação à distância quadrática média Escolher valore de K com melhor ponderação penalidade/distância quadrática média Agrupamento de dados 70 / 7
Função objetivo simples para K Dado um agrupamento, definir o custo para um documento como a distância quadrática para o centroide Definir distorção total RSS(K) como a soma de todos os custos individuais de cada documento (corresponde à distância média) Então, penalizar cada grupo com um custo λ Então para cada agrupamento com K grupo, penalidade total de grupos é Kλ Definir o custo total de um agrupamento como a distorção mais a penalidade total de grupo: RSS(K) + Kλ Selecionar K que minimiza (RSS(K) + Kλ) Ainda precisa determinar bom valor para λ... Agrupamento de dados 7 / 7
Encontrar o joelho da curva residual sum of squares 750 800 850 900 950 4 6 8 0 number of clusters Escolher o número de grupos onda a curva dobra. Aqui: 4 ou 9. Agrupamento de dados 7 / 7