320 likes | 445 Views
Sistemas de Recomendação – Filtragem Colaborativa. AULA 18 DATA MINING Sandra de Amo. T écnicas: Filtragem Colaborativa. Por vizinhança (usando Clusterização)
E N D
Sistemas de Recomendação – Filtragem Colaborativa AULA 18 DATA MINING Sandra de Amo
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
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 ?
Perfis de items e de usuários SW2 SW3 HP1 HP2 HP3 TW SW1 4 5 1 Perfil do usuário A A B 5 5 4 C 4 2 2 D 3 3 Perfil do filme HP1
Medidas de similaridade • MU só contém 1 e vazios: item foi comprado ou não • Medida utilizada: distância de Jacquard • Exemplo: SW2 SW3 HP1 HP2 HP3 TW SW1 1 1 1 A B 1 1 1 C 1 1 1 D 1 1 Jacquard-Dist(A,B) = 4/5 Jacquard-Dist(A,C) = 1/2 A é mais similar a C do que a B
Medidas de similaridade • MU contém notas: distância de Jacquard não é adequada ! SW2 SW3 HP1 HP2 HP3 TW SW1 4 5 1 A B 5 5 4 C 2 2 4 D 3 3 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 ! Jacquard-Dist(A,B) = 4/5 Jacquard-Dist(A,C) = 1/2
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” SW2 SW3 HP1 HP2 HP3 TW SW1 4 5 1 A B 5 5 4 C 2 2 4 D 3 3 Cosseno(A,B) = 0,380 Cosseno(A,C) = 0.322 A é mais similar a B do que a C
Pré-processamento Arredondarnotas: Notas 5,4,3 = 1 e notas 1,2 = vazio SW2 SW3 HP1 HP2 HP3 TW SW1 4 5 1 A B 5 5 4 C 2 2 4 D 3 3 Jacquard-Dist(A,B) = 3/4 Jacquard-Dist(A,C) = 1 A é mais similar a B do que a C
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
Métodos de Recomendação Mé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
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
Método de lidar com a esparsidade Exemplo Passo 1 SW2 SW3 HP1 HP2 HP3 TW SW1 4 5 1 A B 5 5 4 C 2 2 4 D 3 3 M1 Clusters de items Vazios diminuiram
Método de lidar com a esparsidade Passo 2: • Clusteriza-se os usuários na MU obtida no passo 1. • Número de clusters = metade do número de usuários • Calcula-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
Como recomendarusando a matrizMn ? 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 • 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) • 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 • 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
Modelo de Fatores Latentes O quanto o usuáro 1 gosta de filmes da Julia Roberts A=JR G=Com Ator = Julia Roberts Gênero = Comédia O quanto o filme HP1 tem a ver com a atriz Julia Roberts Procura fatores “latentes” que relacionam características de preferências dos usuários com características dos items.
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
Como medir “proximidade” entre as matrizes • RMSE (root-mean-square error) MU
Exemplo MU RMSE = 1,086 U V UV
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.
Exemplo: melhorando o u11 Contribuição da 1a linha Soma dos erros quadráticos da 1a linha: Antes: 18 Depois : 5,2 RMSE Antes : 75 Depois: 62.2
Exemplo: quando a entrada a otimizar envolve espaços vazios da MU MU • Otimizando u31
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.
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. • Pre-processamento da Matriz MU (n x m) • Inicializar U e V • Estipular um caminho x1,x2,...,xk, onde k = np+mp e xi são elementos da matriz U ou da matriz V • Condição de parada
Etapas do algoritmo • 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
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.
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.
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.
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.
Fórmula Geral para otimizar elemento urs • Seja P = UV • Elemento urs só afeta a linha r de P urs
Exercicio para entregar • Deduzir fórmula análoga para obter o valor otimizado para o elemento vrs = y