Sistemas de Recomendação AULA 17 DATA MINING Sandra de Amo.

30
Sistemas de Recomendação AULA 17 DATA MINING Sandra de Amo

Transcript of Sistemas de Recomendação AULA 17 DATA MINING Sandra de Amo.

Page 1: Sistemas de Recomendação AULA 17 DATA MINING Sandra de Amo.

Sistemas de Recomendação

AULA 17

DATA MINING

Sandra de Amo

Page 2: 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

Page 3: Sistemas de Recomendação AULA 17 DATA MINING Sandra de Amo.

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

Page 4: Sistemas de Recomendação AULA 17 DATA MINING Sandra de Amo.

O que é um Sistema de Recomendação ?DADOS DE TREINAMENTO

USUÁRIOSITEMS

USUÁRIOS AVALIAM ITEMS

gostei

não gostei

Gostei muito

Odiei

Page 5: Sistemas de Recomendação AULA 17 DATA MINING Sandra de Amo.

O que é um Sistema de Recomendação ?

DADOS DE TREINAMENTO

Algoritmo de Aprendizagem

MODELO DE RECOMENDAÇÃO M

MODELO DE RECOMENDAÇÃO M

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

Page 6: Sistemas de Recomendação AULA 17 DATA MINING Sandra de Amo.

Principais Desafios

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

Page 7: Sistemas de Recomendação AULA 17 DATA MINING Sandra de Amo.

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.

Page 8: Sistemas de Recomendação AULA 17 DATA MINING Sandra de Amo.

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

Page 9: Sistemas de Recomendação AULA 17 DATA MINING Sandra de Amo.

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

HP1 HP2 HP3 TW SW1 SW2 SW3

A

B

C

D

USUARIOS

ITEMS (FILMES)

4 5 1

5 5 4

4 2 2

33

Característica da MU: muito esparsaEx. : filmes SW2, SW3, HP3 foram avaliados por somente 1 usuário

Page 10: Sistemas de Recomendação AULA 17 DATA MINING Sandra de Amo.

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 ranking de alguns items que seriam recomendados para o usuário.

Para fornecer um ranking, não é necessário predizer uma nota exata para os items.

Page 11: Sistemas de Recomendação AULA 17 DATA MINING Sandra de Amo.

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.

Page 12: Sistemas de Recomendação AULA 17 DATA MINING Sandra de Amo.

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

Page 13: Sistemas de Recomendação AULA 17 DATA MINING Sandra de Amo.

O Fenômeno da “Cauda Longa”

Items

Núm

ero

de a

valia

ções

Popularidade de um item = Número de avaliações do item

Page 14: Sistemas de Recomendação AULA 17 DATA MINING Sandra de Amo.

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.

Page 15: Sistemas de Recomendação AULA 17 DATA MINING Sandra de Amo.

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”

Page 16: Sistemas de Recomendação AULA 17 DATA MINING Sandra de Amo.

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.

Page 17: Sistemas de Recomendação AULA 17 DATA MINING Sandra de Amo.

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

Page 18: Sistemas de Recomendação AULA 17 DATA MINING Sandra de Amo.

SISTEMAS BASEADOS EM CONTEÚDO

Page 19: Sistemas de Recomendação AULA 17 DATA MINING Sandra de Amo.

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.

Page 20: Sistemas de Recomendação AULA 17 DATA MINING Sandra de Amo.

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

Page 21: Sistemas de Recomendação AULA 17 DATA MINING Sandra de Amo.

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)

Page 22: Sistemas de Recomendação AULA 17 DATA MINING Sandra de Amo.

Como medir a similaridade entre dois perfis Medida de similaridadeMedida 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.

Page 23: Sistemas de Recomendação AULA 17 DATA MINING Sandra de Amo.

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)

Page 24: Sistemas de Recomendação AULA 17 DATA MINING Sandra de Amo.

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 uusuá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 ?

Page 25: Sistemas de Recomendação AULA 17 DATA MINING Sandra de Amo.

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.

Page 26: Sistemas de Recomendação AULA 17 DATA MINING Sandra de Amo.

Exercício

Exercicio 9.2.1 – Capítulo 9 livro texto

Calcular similaridade entre perfis de items, com atributos numéricos

Page 27: Sistemas de Recomendação AULA 17 DATA MINING Sandra de Amo.

Items não convencionais: documentos, imagensDocumentos 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.

Page 28: Sistemas de Recomendação AULA 17 DATA MINING Sandra de Amo.

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.IDF em 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)

Page 29: Sistemas de Recomendação AULA 17 DATA MINING Sandra de Amo.

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

Page 30: Sistemas de Recomendação AULA 17 DATA MINING Sandra de Amo.

Uso de tags para recomendação

1. Para cada usuário temos um conjunto P de páginas por onde ele navegou ou que guardou em seu bookmark.

2. 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.