1. Introduction to Information Retrieval
Ordenação e Recuperação de Dados
Aula 12:
Agrupamento (Clustering)
Alexandre Duarte
alexandre@di.ufpb.br
1
2. Agenda
1. Agrupamento: Introdução
2. Agrupamento em RI
3. K-means
4. Avaliação
5. Quantos grupos?
2
3. Agenda
1. Agrupamento: Introdução
2. Agrupamento em RI
3. K-means
4. Avaliação
5. Quantos grupos?
3
4. Agrupamento: Definição
Agrupamento é o processo de agrupar um conjunto de
documentos em subconjuntos de documentos similares.
Documentos em um subconjunto devem ser similares.
Documentos de diferentes subconjuntos não devem ser
similares.
Agrupamento é a forma mais comum de aprendizagem não-
supervisionada.
Não-supervisionada = os dados não possuem qualquer tipo
de anotação.
4
5. Conjunto de dados com uma estrutura de
grupos clara
Proponha um
algoritmo para
encontrar os
subconjuntos
nesse exemplo
5
6. Classificação vs. Agrupamento
Classificação: aprendizagem supervisionada
Agrupamento: aprendizagem não-supervisionada
Classificação: as classes são definidas por humanos e são
parte da entrada do algoritmo de aprendizagem.
Agrupamento: os grupos são inferidos a partir dos dados sem
intervenção humana.
No entanto, existem muitas maneiras de influenciar o
resultado de um agrupamento: número de grupos, medida de
similaridade, representação dos documentos, ...
6
7. Agenda
1. Agrupamento: Introdução
2. Agrupamento em RI
3. K-means
4. Avaliação
5. Quantos grupos?
7
8. A hipótese do agrupamento
Documentos em um mesmo grupo tem comportamento
semelhante em relação a relevância para uma necessidade de
informação. Todas as aplicações para agrupamento em RI são
baseadas (de forma direta ou indireta) nesta hipótese.
Proposição original (Van Rijsbergen) “documentos fortemente
relacionados tendem a ser relevantes para as mesmas consultas”.
8
9. Aplicação de agrupamento em RI
Aplicação O que é agrupado? Benefício
Agrupamento de Resultados e busca Apresentação mais
resultados de busca efetiva dos resultados
ao usuário
Agrupamento de coleção Apresentação efetiva
coleção da informação para
navegação exploratória
Recuperação baseada coleção Maior eficiência:
em grupos Buscas mais rápidas
9
11. Agrupamento para melhorar o recall
Para melhorar o recall de uma busca:
Agrupar os documentos de uma coleção a priori
Quando uma consulta casa com um documento d, retornar
também outros documentos no grupo que contém d
Esperança: ao fazer isso uma consulta por “carro” retornaria
também documentos contendo “automóvel”
O algoritmo de agrupamento colocaria documentos contendo
“carro” e “automóvel” no mesmo grupo.
Os dois tipos de documentos conteriam palavras semelhantes
como “peça”, “concessionária”, “mercedes”, “viagem”.
11
12. Conjunto de dados com uma estrutura de
grupos clara
Proponha um
algoritmo para
encontrar os
subconjuntos
nesse exemplo
12
13. Objetivos do agrupamento
Objetivo geral: colocar documentos relacionados em um
mesmo grupo, colocar documentos não-relacionados em
grupos diferentes.
Como formalizamos isso?
O número de grupos deve ser apropriado para os dados que
serão agrupados.
Inicialmente, assumimos que o número de grupos K é
fornecido.
Mais tarde: Métodos semiautomáticos para determinar K
Objetivos secundários
Evitar grupos muito pequenos ou muito grandes
Definir grupos que sejam fáceis de explicar ao usuário
13
14. Agrupamento Plano vs. Hierárquico
Algoritmos planos
Geralmente iniciam como um particionamento aleatório dos
documentos em grupos
Refinamentos iterativos
Objetivo principal: K-means
Algoritmos Hierárquicos
Criar uma hierarquia
Bottom-up, aglomerativo
Top-down, divisível
14
15. Agrupamento Hard vs. Soft
Agrupamento Hard: cada documento pertence a exatamente
um grupo.
Mais comum e fácil de fazer
Agrupamento Soft: um documento pode pertencer a mais de
um grupo.
Faz mais sentido para aplicações que desejam criar hierarquias
navegáveis
Você pode desejar colocar tênis em dois grupos:
Equipamentos esportivos
Calçados
Veremos apenas agrupamentos hard e planos nessa aula.
15
16. Algoritmos planos
Algoritmos planos particionam N documentos em um
conjunto de K grupos.
Dados: um conjunto de documentos e um número K
Encontrar: uma partição em K grupos que otimize algum
critério de particionamento
Otimização global: enumerar exaustivamente todas as
partições, escolher a ótima
Intratável
Heurística efetiva: algoritmo K-means
16
17. Agenda
1. Agrupamento: Introdução
2. Agrupamento em RI
3. K-means
4. Avaliação
5. Quantos grupos?
17
18. K-means
Provavelmente o algoritmo de agrupamento mais
conhecido
Simples, funciona em vários casos
Usado como padrão para agrupamento de documentos
18
19. Representação de documentos para
agrupamento
Modelo de espaço vetorial
Como na classificação em espaço vetorial, medimos o
relacionamento entre dois vetores pela sua Distância
euclidiana . . .
. . .que é praticamente equivalente a similaridade do
cosseno.
Quase: centroides não são normalizados.
19
20. K-means
Cada grupo no K-means é definido por um centroide.
Objetivo/critério de particionamento: minimizar a média
dos quadrados das diferenças em relação ao centroide
Relembrando a definição de centroide:
Onde usamos o ω para identificar um grupo.
Tentamos encontrar o valor mínimo para a médias dos
quadrados das diferenças iterando em dois passos:
redistribuição: atribuir cada vetor ao grupo com centroide
mais próximo
recomputação: recalcular cada centroide como a média dos
vetores atribuídos ao grupo após a redistribuição 20
46. K-means sempre converge
Mas não sabemos quanto tempo isso vai levar!
Se não ligarmos para alguns documentos indo e vindo, a
convergência pode ser obtida rapidamente (< 10-20
iterações).
No entanto, convergência completa pode levar muito mais
iterações.
46
47. Otimalidade do K-means
Convergir não significa encontrar a distribuição ótima!
Esta é a grade fraqueza do K-means.
Se iniciarmos com um conjunto ruim de centroides o
resultado do agrupamento pode ser horrível.
47
48. Exercício: Agrupamento sub-ótimo
Qual seria o agrupamento ótimo K = 2?
Convergimos para este agrupamento com qualquer par de
raízes arbitrárias di , dj?
48
49. Inicialização do K-means
Sementes escolhidas aleatoriamente é apenas uma das
várias formas de inicializar o K-means.
Seleção aleatória não é muito robusta: é muito fácil
conseguir um agrupamento sub-ótimo.
Melhores formas de escolher os centroides iniciais:
Selecionar as sementes utilizando alguma heurística
Selecionar i (ex., i = 10) diferentes raízes
aleatoriamente, executar o agrupamento K-means para cada
um, selecionar o agrupamento com a menor média do
quadrado das distâncias
49
50. Agenda
1. Agrupamento: Introdução
2. Agrupamento em RI
3. K-means
4. Avaliação
5. Quantos grupos?
50
51. O que é um bom agrupamento?
Critério interno
Exemplo de critério interno: média do quadrado das distâncias
no K-means
Porém, um critério interno muitas vezes não avalia a
utilidade do agrupamento para uma aplicação.
Alternativa: Critério externo
Avaliar de acordo com um critério definido por humanos
51
52. Critério externo para qualidade de
agrupamento
Baseado em algum padrão amplamente adotado, ex. A
coleção da Reuters
Objetivo: O agrupamento deve reproduzir a classes definidas
no padrão
(Queremos apenas reproduzir a forma como os documentos
são distribuídos em grupos, não os nomes das classes)
Exemplo medida de quão bem conseguimos reproduzir as
classes: pureza
52
53. Critério externo: Pureza
Ω= {ω1, ω2, . . . , ωK} é o conjunte de grupos e
C = {c1, c2, . . . , cJ} é o conjunto de classes
Para cada grupo ωk : encontrar a cj com mais membros nkj em
ωk
Somar todos os nkj e dividir pelo número total de pontos
53
54. Exemplo do cálculo de pureza
Para calcular a pureza: 5 = maxj |ω1 ∩ cj | (classe x, grupo 1);
4 = maxj |ω2 ∩ cj | (classe o, grupo 2); e 3 = maxj |ω3 ∩ cj |
(classe ⋄, grupo 3). Pureza é (1/17) × (5 + 4 + 3) ≈ 0.71.
54
55. Agenda
1. Agrupamento: Introdução
2. Agrupamento em RI
3. K-means
4. Avaliação
5. Quantos grupos?
55
56. Quantos grupos?
O número de grupos K é dado em muitas aplicações.
Mas e quando isso não acontece? Há um número bom ou
ruim para a quantidade de grupos?
Uma forma de agir: definir um critério de otimização
Dados os documentos, encontrar o K para o qual o valor ótimo
é obtido
Que critérios de otimização podemos usar?
Não podemos utilizar a média dos quadrados das distâncias do
centroide como critério: o valor ótimo sempre seria fazer K = N.
56
57. Função objetivo simples para K
Ideia básica:
Começar com 1 grupo (K = 1)
Continue adicionando grupos (= continue a aumentar K)
Adicione uma penalidade para cada novo grupo
Balancear a penalidade da adição de novos grupos e a média
dos quadrados das distâncias em relação aos centroides
Escolher o valor K com o melhor tradeoff
57