Download - Clustering (Agrupamento)

Transcript
Page 1: Clustering (Agrupamento)

Introduction to Information RetrievalIntroduction to Information Retrieval

1

Aula 12: Agrupamento (Clustering)

Alexandre [email protected]

11111

Ordenação e Recuperação de Dados

Page 2: Clustering (Agrupamento)

Agenda1. Agrupamento: Introdução

2. Agrupamento em RI

3. K-means

4. Avaliação

5. Quantos grupos?

2

Page 3: Clustering (Agrupamento)

Agenda1. Agrupamento: Introdução

2. Agrupamento em RI

3. K-means

4. Avaliação

5. Quantos grupos?

3

Page 4: Clustering (Agrupamento)

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

Page 5: Clustering (Agrupamento)

5

Conjunto de dados com uma estrutura de grupos clara

Proponha um algoritmo para encontrar os subconjuntos nesse exemplo

5

Page 6: Clustering (Agrupamento)

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

Page 7: Clustering (Agrupamento)

Agenda1. Agrupamento: Introdução

2. Agrupamento em RI

3. K-means

4. Avaliação

5. Quantos grupos?

7

Page 8: Clustering (Agrupamento)

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

Page 9: Clustering (Agrupamento)

9

Aplicação de agrupamento em RI

9

Aplicação O que é agrupado? Benefício

Agrupamento de resultados de busca

Resultados e busca Apresentação mais efetiva dos resultados ao usuário

Agrupamento de coleção

coleção Apresentação efetiva da informação para navegação exploratória

Recuperação baseada em grupos

coleção Maior eficiência:Buscas mais rápidas

Page 10: Clustering (Agrupamento)

10

Agrupamento de resultados de busca para melhor navegação

10

Page 11: Clustering (Agrupamento)

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

Page 12: Clustering (Agrupamento)

12

Conjunto de dados com uma estrutura de grupos clara

Proponha um algoritmo para encontrar os subconjuntos nesse exemplo

12

Page 13: Clustering (Agrupamento)

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

Page 14: Clustering (Agrupamento)

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

Page 15: Clustering (Agrupamento)

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

Page 16: Clustering (Agrupamento)

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

Page 17: Clustering (Agrupamento)

Agenda1. Agrupamento: Introdução

2. Agrupamento em RI

3. K-means

4. Avaliação

5. Quantos grupos?

17

Page 18: Clustering (Agrupamento)

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

Page 19: Clustering (Agrupamento)

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

Page 20: Clustering (Agrupamento)

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

Page 21: Clustering (Agrupamento)

Algoritmo K-means

21

Page 22: Clustering (Agrupamento)

Exemplo: Conjunto para ser agrupado

22

Page 23: Clustering (Agrupamento)

23

Exemplo: Seleção inicial aleatória dos centroides

23

Page 24: Clustering (Agrupamento)

Exemplo: Atribuir os pontos aos centroides mais próximos

24

Page 25: Clustering (Agrupamento)

Exemplo: Atribuição

25

Page 26: Clustering (Agrupamento)

Exemplo: Recalcular os centroides

26

Page 27: Clustering (Agrupamento)

Exemplo: Atribuir os pontos aos centroides mais próximos

27

Page 28: Clustering (Agrupamento)

Exemplo: Atribuição

28

Page 29: Clustering (Agrupamento)

Exemplo: Recalcular os centroides

29

Page 30: Clustering (Agrupamento)

Exemplo: Atribuir os pontos aos centroides mais próximos

30

Page 31: Clustering (Agrupamento)

Exemplo: Atribuição

31

Page 32: Clustering (Agrupamento)

Exemplo: Recalcular os centroides

32

Page 33: Clustering (Agrupamento)

Exemplo: Atribuir os pontos aos centroides mais próximos

33

Page 34: Clustering (Agrupamento)

Exemplo: Atribuição

34

Page 35: Clustering (Agrupamento)

Exemplo: Recalcular os centroides

35

Page 36: Clustering (Agrupamento)

Exemplo: Atribuir os pontos aos centroides mais próximos

36

Page 37: Clustering (Agrupamento)

Exemplo: Atribuição

37

Page 38: Clustering (Agrupamento)

Exemplo: Recalcular os centroides

38

Page 39: Clustering (Agrupamento)

Exemplo: Atribuir os pontos aos centroides mais próximos

39

Page 40: Clustering (Agrupamento)

Exemplo: Atribuição

40

Page 41: Clustering (Agrupamento)

Exemplo: Recalcular os centroides

41

Page 42: Clustering (Agrupamento)

Exemplo: Atribuir os pontos aos centroides mais próximos

42

Page 43: Clustering (Agrupamento)

Exemplo: Atribuição

43

Page 44: Clustering (Agrupamento)

Exemplo: Recalcular os centroides

44

Page 45: Clustering (Agrupamento)

Exemplo: Centroides e atribuições após a convergência

45

Page 46: Clustering (Agrupamento)

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

Page 47: Clustering (Agrupamento)

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

Page 48: Clustering (Agrupamento)

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

Page 49: Clustering (Agrupamento)

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

Page 50: Clustering (Agrupamento)

Agenda

1. Agrupamento: Introdução

2. Agrupamento em RI

3. K-means

4. Avaliação

5. Quantos grupos?

50

Page 51: Clustering (Agrupamento)

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

Page 52: Clustering (Agrupamento)

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

Page 53: Clustering (Agrupamento)

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

Page 54: Clustering (Agrupamento)

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

Page 55: Clustering (Agrupamento)

Agenda

1. Agrupamento: Introdução

2. Agrupamento em RI

3. K-means

4. Avaliação

5. Quantos grupos?

55

Page 56: Clustering (Agrupamento)

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

Page 57: Clustering (Agrupamento)

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