310 likes | 475 Views
Sistemas de Recomendação. AULA 17 DATA MINING Sandra de Amo. Esquema Geral. Aula 1: Introdução: Filtragem Colaborativa versus Baseados em Conteúdo Sistemas baseados em conteúdo Aula 2: Sistemas baseados em filtragem colaborativa Aula 3: Um sistema Hibrido: PrefRec Fatores latentes
E N D
Sistemas de Recomendação AULA 17 DATA MINING Sandra de Amo
Esquema Geral • Aula 1: • Introdução: • Filtragem Colaborativa versus Baseados em Conteúdo • Sistemas baseados em conteúdo • Aula 2: • Sistemas baseados em filtragem colaborativa • Aula 3: • Um sistema Hibrido: PrefRec • Fatores latentes • Aula 4: • Sistemas baseados em filtragem colaborativa híbridos: vizinhança e fatores latentes • Aula 5: • Sistemas de Recomendação Sociais: introdução, conceitos sobre redes complexas • Aula 6: • Um exemplo de Sistema de Recomendação Social
Referências • Anand Rajaraman, Jure Leskovec, Jeffrey D. Ullman - Mining Massive Datasets, Cambridge University Press, 2012. – Capitulo 9 • Yehuda Koren: Matrix Factorization Techniques for Recommender Systems – 2009 • Yehuda Koren: Factorization meets the neighborhood: A multifaceted collaborative filtering model – KDD 2008
O que é um Sistema de Recomendação ? DADOS DE TREINAMENTO gostei não gostei Odiei Gostei muito USUÁRIOS ITEMS USUÁRIOS AVALIAM ITEMS
O que é um Sistema de Recomendação ? MODELO DE RECOMENDAÇÃO M DADOS DE TREINAMENTO Algoritmo de Aprendizagem + Usuário ativo u e algumas de suas avaliações Uma sequência de items <I1,I2,…,IK> que u ainda não avaliou e que lhe serão recomendados
PrincipaisDesafios • Esparsidade dos dados de treinamento (sparsity) : • alguns usuários avaliam poucos items • alguns items são avaliados por poucos usuários. • Cold-start de usuário • Dificil recomendar items para um usuário que não avaliou nenhum item. • Cold-start de item • Dificil recomendar items que nunca foram avaliados por nenhum usuário ainda
O que é um “bom” Sistema de Recomendação • Tem boa acurácia: Recomenda items que são do agrado do novo usário • Recomendação é um processo rápido executado online. • Recomenda items que “surpreendem” o usuário • Recomenda items que não são populares. • Consegue recomendar items e agradar o usuário sem exigir um grande número de avaliações prévias do novo usuário. • Consegue recomendar novos items que ainda não foram avaliados por nenhum usuário.
Aplicações de SR • Recomendações de produtos: • Livros (Amazon, Liv. Cultura, etc) • Música (Itunes) • Recomendações de filmes • Netflix • Concurso Netflix em 2006: 1 milhão de dólares para o primeiro algoritmo que superasse em 10% a acurácia de seu SR (Cinematch) • Prêmio vencido em 2009 pelo grupo de pesquisadores “Bellkor’s Pragmatic Chaos” – 3 anos de trabalho. • Algoritmo vencedor nunca foi utilizado: baixissima escalabilidade. • Recomendações de artigos de notícias ou outro conteúdo • New York Times • Blogs • You Tube
Um modelo simples de SR • Dados de entrada (treinamento) : • Duas entidades principais: usuários e items • Relacionamento: Preferências (notas) • Matriz de utilidade (MU) : usuários versus items SW2 SW3 HP1 HP2 HP3 TW SW1 ITEMS (FILMES) 4 5 1 A B 5 5 4 C 4 2 2 D 3 3 USUARIOS Característica da MU: muito esparsa Ex. : filmes SW2, SW3, HP3 foram avaliados por somente 1 usuário
Um modelo simples de SR • Objetivo: • predizer os lugares vagos na MU • Ex: Qual seria a nota que o usuário C daria para o filme HP1 ? • Predizer notas é dificil. SR que predizem notas normalmente não têm boa acurácia. • Não é necessário predizer todos os lugares vagos (notas), mas sim, fornecer um rankingde alguns items que seriam recomendados para o usuário. • Para fornecer um ranking, não é necessário predizer uma nota exata para os items.
Como predizer as notas que seriam dadas por A para o filme SW2 ? • Examinando filmes parecidos com SW2 a partir de seus conteúdos: diretor, gênero,... • SW2 é parecido com SW1. • A não gostou de SW1, logo podemos concluir que A não gostaria de SW2. • Examinando filmes que tiveram avaliações parecidas com as de SW2 • Por exemplo: C avaliou SW1 e SW2 e gostou de ambos • Assim, infere-se que os usuários normalmente tem preferências similares por estes dois filmes • Como A não gostou de SW1 então não gostaria de SW2. • Examinando usuários parecidos com A em termos de gosto: • O usuário C avaliou os mesmos filmes que A avaliou, e ambos deram notas parecidas para tais filmes. • C não gostou de SW2. • Logo poderíamos concluir que A também não gostaria.
Porque Sistemas de Recomendação são necessários ? • Lojas fisicas versus lojas virtuais • Fisicas: Estoque disponivel << estoque real Virtuais:Estoque disponivel = estoque real • Recomendações no “mundo fisico”: baseada na popularidade dos items • Lojas fisicas só podem mostrar os items populares. • Somente os livros best-sellers são expostos • Somente notícias que atraem a maioria dos leitores são divulgadas nos jornais fisicos
O Fenômeno da “Cauda Longa” Número de avaliações Items Popularidadede um item = Número de avaliações do item
Sistemas de Recomendação são imprescindíveis no mundo online • Lojas online não tem problemas para disponibilizar tudo o que têm. • Usuários não tem condições de verificar tudo o que está disponível • Usuários precisam ter uma idéia se gostariam ou não de um produto que desconhecem.
Um exemplo típico da utilidade dos sistemas de recomendação • Livros “Touching the void” e “Into the air” sobre montanhismo • "Touching the void “ : nada popular quando publicado • Anos depois, “Into the air” é publicado • Sistema de recomendação da Amazon: • Notou alguns usuários que compravam os dois livros. • Começou a recomendar “Touching the Void” a clientes que compraram “ Into the air” • Resultado: Popularidade de “ Touching the Void” aumenta – ultrapassa “ Into the air” • Sem um sistema de recomendação, usuários dificilmente conheceriam “Touching the Void”
Técnicas • Filtragem Colaborativa • 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. • Modelos de Fatores Latentes • Baseada em Conteúdo • Mineração de Preferências • Utiliza informações sobre as características dos items para criar um modelo de recomendação • Modelos enfrentam bem o desafio do cold-start de item. • Híbrida • Mescla filtragem colaborativa e técnicas baseadas em conteúdo.
Dados de treinamento: Como obtê-los ? • Dados de treinamento: = matriz de utilidade • Técnicas para preencher a MU: • Diretas • Pedir a um grupo de usuários que avalie items de um conjunto fixado. • A maioria dos usuários não gosta de dar notas • Os dados obtidos desta maneira são tendenciosos: provém de um tipo preciso de usuário que gosta de avaliar produtos • Indiretas: fazer inferências sobre preferências a partir de ações tomadas pelo usuário • Viu um filme, leu um artigo gostou ! • Viu informações sobre um livro na Amazon tem interesse no livro ! • Avaliações são do tipo 1 ou 0. • Somente o valor 1 tem significado. • Valor zero = ausência de nota
Técnicas • Similaridade de perfis: item x usuário • Recomenda-se items cujo perfil é mais próximo do perfil do usuário. • Não se cria um modelo de recomendação • Vantagem: rapidez na recomendação • Desvantagem: acurácia baixa • Classificadores: • Cria-se um modelo de recomendação para cada usuário. • Classes: notas ou “gosta/não-gosta” • Para cada usuário: • Treina-se um classificador onde os dados de treinamento são os items com suas características e sua classe (com o valor da preferência deste usuário: gosta/não-gosta) • Recomenda-se items a um usuário utilizando o classificador treinado para este usuário. • Vantagem: acurácia melhor do que a técnica de similaridade de perfis. • Desvantagem: treinamento para cada usuário pode levar tempo.
Técnica de Similaridade de Perfis • Perfil do item:atributos importantes dos items são selecionados • Filme: Diretor, Gênero, Ano, Ator principal • Livro: Autor, Pais, Gênero, Ano • Música: Gênero, Compositor, Tipo, Ano • Características : Atributo = Valor • Exemplo: características escolhidas são Ator = X, onde X é o nome de um ator. Existem infinitas características deste tipo, uma para cada possivel ator. • Um filme que tem os atores Julia Roberts e Mel Gibson, teria valores 1 para as caracteristicas Ator = Julia Roberts e Ator = Mel Gibson • Perfil do usuário: vetor que sumariza as preferências do usuário com relação às características dos items. • Exemplo: a coordenada referente à característica Ator = Julia Roberts é 20% (0.2), significando que 20% dos filmes que o usuário gosta têm a atriz Julia Roberts
Como representar o perfil do item • Vetor: coordenadas boleanas, coordenadas numéricas • Exemplo: • Items = filmes. • Atributo = ator. • A = conjunto de todos os atores. • Seja • f1: filme com 5 atores A2,A3,A5,A6,A8 • f2: filme com 5 atores A1,A2,A4,A6,A7 • Média de notas de f1 = 3; Média de notas de f2 = 4 • As características escolhidas são 9: Ator = A1, Ator = A2, ..., Ator = A8 e Média. • Perfil de f1 = p1 = (0,1,1,0,1,1,0,1,3) • Perfil de f2 = p2 = (1,1,0,1,0,1,1,0,4)
Como medir a similaridade entre dois perfis • Medida de similaridade entre os perfis dos items = cosseno(p1,p2) = p1.p2/ |p1||p2| • Obervação: p1 e p2 têm infinitas coordenadas, mas somente as mostradas no perfil são distintas de zero para ambos os vetores.As outras coordenadas que não aparecem não influenciam no cálculo do cosseno. • Cuidado com escala utilizada em coordenadas com valores numéricos (como a média das notas): • Exemplo: suponha que se utilize um fator de escala ɑ > 0 para a média das notas. • Logo p1 = (0,1,1,0,1,1,0,1,3ɑ) e p2 = (1,1,0,1,0,1,1,0,4ɑ) • Cosseno(p1,p2) = 2 + 12ɑ2 / 25 + 125ɑ2 + 144ɑ4 • Se ɑ = 1 : cosseno(p1,p2) = 0.816 • Se ɑ = 2 : cosseno(p1,p2) = 0.940 • Se ɑ = 1/2 : cosseno(p1,p2) = 0.619 • A similaridade entre os vetores depende da escala utilizada para os valores numéricos.
Como representar o perfil do usuário ? • Vetor contendo as preferências do usuário • Uma coordenada por característica do produto • Caso em que a MU só contém 1’s ou 0’s • Valor da coordenada = X% • X por cento dos produtos que o usuário gosta tem a característica representada pela coordenada. • Exemplo (preferência do usuário é binária: gostou/não gostou • Supondo Items = filmes; Atributo = Ator; características escolhidas Ator = A1, Ator = A2, ..., Ator = A8 • Para cada i = 1,...,8, seja xi = porcentagem de filmes contendo o ator Ai que o usuário u gostou. • Perfil de u = (x1,x2,...,x8)
Como representar o perfil do usuário ? Exemplo (preferência do usuário é uma nota de 1 a 5): Supondo Items = filmes; Atributo = Ator; características escolhidas Ator = A1, Ator = A2, ..., Ator = A8 A média das notas dadas pelo usuário u é 3 Suponha que dos filmes avaliados por u, 3 deles contém o ator A1, com notas 5, 4 e 3 Então o valor da coordenada 1 (referente ao ator A1) no perfil de u é a média entre 5-3, 4-3 e 3-3 = 1 Exercício:suponha usuário V avaliou 3 filmes com o ator A1, com notas 2, 3 e 5. Qual a componente relativa ao ator A1 para o perfil do usuário A1 ?
Como recomendar items utilizando a técnica da similaridade de perfis ? • “grau” de preferência de um usuário u sobre um item i = similaridade entre perfil(u) e perfil(i) • Itens com perfis mais próximos ao perfil(u) serão recomendados. Exercício: Proponha outras maneiras de recomendar itens a um usuário a partir de seus perfis.
Exercício Exercicio 9.2.1 – Capítulo 9 livro texto Calcular similaridade entre perfis de items, com atributos numéricos
Items não convencionais: documentos, imagens Documentos podem ser items a serem recomendados: artigos, notícias, blogs, web pages, ... Que atributos utilizar para caracterizar um documento ? • Seja BD = {D1,D2,...,Dn} um banco de dados de documentos. • Di = conjunto de palavras = {w1,w2, ..., wn} (após eliminação de stop words) • Stop words = pronomes, conectivos, ... (dizem muito pouco sobre o documento, estão presentes na maioria dos documentos) • Para cada palavra wi de Dj, calcula-se seu score TF.IDF (Term Frequency times Inverse Document Frequency) • Tij = fij/max fkj (fij = número de vezes que wi aparece no documento Di) • IDFi = log2(n/ni) onde ni = número de documentos do BD onde wi aparece • O TF.IDF de wi em Di = Tij . IDFi • Um score TF.IDF alto de wi em Di significa que wi aparece muito em Di e pouco em outros documentos.
Perfil de um documento D • Considera-se as n palavras de D com os mais altos scores TD.IDF. • W_D = {w1,...,wn} • Por exemplo: se D é uma notícia, estas palavras incluiriam os nomes das pessoas que aparecem na notícia, palavras descrevendo os eventos que aparecem na notícia, etc • Considera-se W = união dos W_D = conjunto das palavras que têm alto score TD.IDFem algum documento do BD. • Seja K = tamanho de W. • Perfil(D) = vetor de K coordenadas = (0,1,1,....) • Uma coordenada por palavra de W. • Se a palavra aparece em D, a coordenada = 1 (e zero em caso contrário)
Perfil de uma imagem I Imagem = vetores caracteristica (histograma de cores, forma, textura) Imagem = conjunto de tags = palavras que descrevem a imagem • Por-do-sol em Malibu, Praça da Sé, ... Exemplo: site del.icio.us pede aos usuários para associar tags para páginas web Objetivo inicial de del.icio.us: • novo método de busca de páginas: 1. usuário entra um conjunto de tags, 2. Sistema busca páginas web com perfis similares
Uso de tags para recomendação • Para cada usuário temos um conjunto P de páginas por onde ele navegou ou que guardou em seu bookmark. • Recomenda-se páginas cujo perfil é similar ao perfil das páginas de P. • Exercicio: propor novas maneiras de recomendar páginas para um usuário, utilizando informações sobre tags.