Sistemas de Recomendação – Filtragem Colaborativa

32
Sistemas de Recomendação – Filtragem Colaborativa AULA 18 DATA MINING Sandra de Amo

description

Sistemas de Recomendação – Filtragem Colaborativa. AULA 18 DATA MINING Sandra de Amo. T écnicas: Filtragem Colaborativa. Por vizinhança (usando Clusterização) - PowerPoint PPT Presentation

Transcript of Sistemas de Recomendação – Filtragem Colaborativa

Page 1: Sistemas de Recomendação – Filtragem Colaborativa

Sistemas de Recomendação – Filtragem Colaborativa

AULA 18

DATA MINING

Sandra de Amo

Page 2: Sistemas de Recomendação – Filtragem Colaborativa

Técnicas: Filtragem Colaborativa

Por vizinhança (usando Clusterização)

Usuários similares são agrupados: itens apreciados por um usuário similar a mim (cujas avaliações passadas são parecidas com as minhas) são recomendados para mim.

Items similares são agrupados: items similares àqueles que eu avaliei positivamente são recomendados para mim.

Modelos de Fatores Latentes

Page 3: Sistemas de Recomendação – Filtragem Colaborativa

Clusterização

Clusterizar usuários ? Clusterizar items ? Clusterizar usuários e items ?

Como representar um usuário ? Como representar um item ? Que medidas de similaridade utilizar ?

Page 4: Sistemas de Recomendação – Filtragem Colaborativa

Perfis de items e de usuários

HP1 HP2 HP3 TW SW1 SW2 SW3

A

B

C

D

4 5 1

5 5 4

4 2 2

33

Perfil do usuário A

Perfil do filme HP1

Page 5: Sistemas de Recomendação – Filtragem Colaborativa

Medidas de similaridade

MU só contém 1 e vazios: item foi comprado ou não Medida utilizada: distância de Jacquard Exemplo:

HP1 HP2 HP3 TW SW1 SW2 SW3

A

B

C

D

1 1 1

1 1 1

1 1 1

11

Jacquard-Dist(A,B) = 4/5Jacquard-Dist(A,C) = 1/2

A é mais similar a C do que a B

Page 6: Sistemas de Recomendação – Filtragem Colaborativa

Medidas de similaridade

MU contém notas: distância de Jacquard não é adequada !

HP1 HP2 HP3 TW SW1 SW2 SW3

A

B

C

D

4 5 1

5 5 4

2 4 2

33

Jacquard-Dist(A,B) = 4/5Jacquard-Dist(A,C) = 1/2

A é mais similar a C do que a B ?

A e C têm opiniões antagônicas !A e B têm opiniões coincidentes !

Page 7: Sistemas de Recomendação – Filtragem Colaborativa

Medidas de similaridade MU contém notas : distância do cosseno

Vazios são tratados como zero Interpreta “não avaliei” como “não gostei”

HP1 HP2 HP3 TW SW1 SW2 SW3

A

B

C

D

4 5 1

5 5 4

2 4 2

33

Cosseno(A,B) = 0,380Cosseno(A,C) = 0.322

A é mais similar a B do que a C

Page 8: Sistemas de Recomendação – Filtragem Colaborativa

Pré-processamento

Arredondar notas: Notas 5,4,3 = 1 e notas 1,2 = vazio

HP1 HP2 HP3 TW SW1 SW2 SW3

A

B

C

D

4 5 1

5 5 4

2 4 2

33

Jacquard-Dist(A,B) = 3/4Jacquard-Dist(A,C) = 1

A é mais similar a B do que a C

Page 9: Sistemas de Recomendação – Filtragem Colaborativa

Pré-processamento

Normalizar notas: subtraindo de cada nota de um usuário X, a média das notas de X

Cosseno(A,B) =

Cosseno(A,C) =

A é mais similar a B do que a C

Page 10: Sistemas de Recomendação – Filtragem Colaborativa

Métodos de RecomendaçãoMétodo 1) Recomendar items a um usuário u olhando para os K usuários mais próximos de u:

Recomenda-se para u items que foram avaliados pela maioria dos K usuários mais próximos ou que obtiveram notas altas da maioria destes usuários.

Método 2) Recomendar items a um usuário u olhando para os items que ele avaliou positivamente

Para cada item I não avaliado: Encontra-se os m items mais próximos de I Considera-se dentre estes m items aqueles que o usuário avaliou. Calcula-se a média das notas destes items Esta será a nota prevista para I

Faz-se um ranking das notas dos items não avaliados por u e recomenda-se os mais cotados

Não há simetria usuário/item nestas duas maneiras de recomendação

Page 11: Sistemas de Recomendação – Filtragem Colaborativa

Clusterizando Usuários e Items : como lidar com a esparsidade da MU

Esparsidade da MU dificuldade para avaliar a distância entre items e entre usuários.

Mesmo se dois items i1 e i2 são do mesmo gênero, poucos usuários compraram ou avaliaram ambos.

Mesmo se dois usuários u1 e u2 gostam de um mesmo gênero de filmes, eles podem não ter comprado nenhum item em comum.

Método

Passo 1 Usar um algoritmo de clusterização hierárquico para clusterizar items

(ou usuários) Número de clusters deve ser grande = metade do número de items

Page 12: Sistemas de Recomendação – Filtragem Colaborativa

Método de lidar com a esparsidade

HP1 HP2 HP3 TW SW1 SW2 SW3

A

B

C

D

4 5 1

5 5 4

2 4 2

33

Clusters de items

Vazios diminuiram

Exemplo Passo 1

M1

Page 13: Sistemas de Recomendação – Filtragem Colaborativa

Método de lidar com a esparsidadePasso 2: Clusteriza-se os usuários na MU obtida no passo 1.Número de clusters = metade do número de usuáriosCalcula-se as entradas da nova matriz M2 (cluster usuários x cluster items)

Entrada i, j = média dos valores que aparecem na coluna j da matriz M1, para todos os usuários do cluster I

Repete-se os passos 1 e 2 até obter um número razoável de clusters

Matriz final = Mn

Page 14: Sistemas de Recomendação – Filtragem Colaborativa

Como recomendar usando a matriz Mn ?

Seja U um usuário e I um item que o usuário não avaliou

Queremos prever a nota que U daria para I

1.Encontra-se os clusters C e D de Mn aos quais U e I pertencem. C = cluster de usuários (na vertical) D = cluster de items (na horizontal)

2.Se a posição C,D da matriz Mn não é vazia: Valor da posição C,D de Mn = x Esta é a nota prevista para I que seria dada por U

3.Se a posição C,D da matriz Mn é vazia Utiliza-se Método 2 para inferir a entrada da matriz Mn Valor desta entrada = nota prevista

Page 15: Sistemas de Recomendação – Filtragem Colaborativa

Modelo de Fatores Latentes

Ato

r = Ju

lia Ro

berts

Gên

ero =

Co

méd

ia

O quanto o usuáro 1 gosta de filmes da Julia Roberts

A=JRG=Com

O quanto o filme HP1tem a ver com a atriz Julia Roberts

Procura fatores “latentes” que relacionam características de preferências dos usuárioscom características dos items.

Page 16: Sistemas de Recomendação – Filtragem Colaborativa

Redução UV MU = U.V MU = matriz n x m U = matriz n x p, V = matriz p x m onde p = número de fatores latentes p = parâmetro do algoritmo

Problema de Otimização = Dada a matriz MU (esparsa) encontrar matrizes U e V (completas) tais que MU é muito próxima de UV

Page 17: Sistemas de Recomendação – Filtragem Colaborativa

Como medir “proximidade” entre as matrizes

RMSE (root-mean-square error)MU

Page 18: Sistemas de Recomendação – Filtragem Colaborativa

Exemplo

MU

U UVV

RMSE = 1,086

Page 19: Sistemas de Recomendação – Filtragem Colaborativa

Como encontrar as melhores matrizes U e V a 2 fatores latentes tais que UV aproximam MU ?

Inicia-se com todos os elementos de U e V iguais a 1.

Altera-se progressivamente os valores de cada entrada de modo que o novo valor é o que mais diminui o RMSE da matriz anterior com o velho valor.

Page 20: Sistemas de Recomendação – Filtragem Colaborativa

Exemplo: melhorando o u11

Page 21: Sistemas de Recomendação – Filtragem Colaborativa

Exemplo: melhorando o u11Contribuição da 1a linha

Soma dos erros quadráticosda 1a linha:Antes: 18Depois : 5,2

RMSE Antes : 75 Depois: 62.2

Page 22: Sistemas de Recomendação – Filtragem Colaborativa

Exemplo: melhorando o v11

Page 23: Sistemas de Recomendação – Filtragem Colaborativa

Exemplo: quando a entrada a otimizar envolve espaços vazios da MU

Otimizando u31 MU

Page 24: Sistemas de Recomendação – Filtragem Colaborativa

Técnica Gradient Descent Dados um conjunto de valores (os elementos não vazios

da MU), para cada um deles encontrar a direção de mudança que minimiza a função erro (o RMSE)

Quando a matriz é muito grande, esta técnica é bem demorada, leva muito tempo para convergir.

Gradient Descent Estocástico: selecionar randomicamente apenas um subconjunto dos pontos da matriz.

Page 25: Sistemas de Recomendação – Filtragem Colaborativa

Algoritmo da Decomposição UV

Entrada: matriz MU (nxm) (com valores vazios),

p = número de fatores latentes

Saida : matrizes U (nxp), V (pxm) tais que RMSE(MU,UV) é minimal.

1. Pre-processamento da Matriz MU (n x m)

2. Inicializar U e V

3. Estipular um caminho x1,x2,...,xk, onde k = np+mp e xi são elementos da matriz U ou da matriz V

4. Condição de parada

Page 26: Sistemas de Recomendação – Filtragem Colaborativa

Etapas do algoritmo

1. Preprocessamento de MU Subtrair de cada elemento mij (não vazio) de MU a média

ei das notas dadas pelo usuário i Subtrair de cada elemento resultante a média fj das notas

obtidas pelo item j Pode-se inverter a ordem dos 2 procedimentos acima. Os

resultados não serão os mesmos mas serão próximos Sempre que se for fazer predições sobre notas, é preciso

“desfazer a normalização” no final. Se o valor previsto para mij for X, então o valor

recomendado deverá ser X + ei + fj

Page 27: Sistemas de Recomendação – Filtragem Colaborativa

Etapas do algoritmo

2. Inicialização de U e V Seja a = média dos valores de MU Inicializar U e V com o valor √a/p para cada elemento de U e de V Outra maneira:

Cada valor é inicializado de forma diferente considerando

o valor √a/p + x, onde x um número escolhido em um conjunto com distribuição normal com média 0 e desvio padrão c para algum c.

Page 28: Sistemas de Recomendação – Filtragem Colaborativa

Etapas do algoritmo

3. Estipular a ordem dos elementos de U e V em que é feita a otimização. Linha por linha: alternando linhas de U com linhas de V Visitar os elementos nesta ordem, de uma maneira round-robin Outra maneira: escolhe-se uma permutação qualquer do conjunto

{1,...,k} e visita os elementos das matrizes U e V nesta ordem.

Page 29: Sistemas de Recomendação – Filtragem Colaborativa

Etapas do algoritmo

4. Condição de parada

A cada iteração todos os k pontos são otimizados e o RMSE é calculado.

Caso RMSE < threshold dado, para-se o processo.

Outra variante: assim que o RMSE durante uma iteração for < threshold, pára.

Page 30: Sistemas de Recomendação – Filtragem Colaborativa

Problema com overfitting

Considere diversas decomposições UV A fim de inferir o valor de uma posição vazia

mij na MU considere a média das inferências feitas por cada decomposição para mij.

Page 31: Sistemas de Recomendação – Filtragem Colaborativa

Fórmula Geral para otimizar elemento urs

Seja P = UV Elemento urs só afeta a linha r de P

urs

Page 32: Sistemas de Recomendação – Filtragem Colaborativa

Exercicio para entregar

Deduzir fórmula análoga para obter o valor otimizado para o elemento vrs = y