Upload
internet
View
107
Download
1
Embed Size (px)
Citation preview
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
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
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
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 !
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
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
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çã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
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
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
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
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
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.
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
U UVV
RMSE = 1,086
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
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
Exemplo: melhorando o v11
Exemplo: quando a entrada a otimizar envolve espaços vazios da MU
Otimizando u31 MU
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.
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
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
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