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 ?
DADOS DE
TREINAMENTO
MODELO DE
RECOMENDAÇÃO M
Algoritmo de
Aprendizagem
+
Uma sequência de items
<I1,I2,…,IK> que u ainda
não avaliou e que lhe serão
recomendados
Usuário ativo u
e algumas de
suas
avaliações
Principais Desafios

Esparsidade dos dados de treinamento (sparsity) :



Cold-start de usuário


alguns usuários avaliam poucos items
alguns items são avaliados por poucos usuários.
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
HP1
A
4
B
5
HP2
HP3 TW
5
5
C
3
ITEMS (FILMES)
1
4
4
D
SW1 SW2 SW3
2
2
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 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.
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,...



Examinando filmes que tiveram avaliações parecidas com as de
SW2




SW2 é parecido com SW1.
A não gostou de SW1, logo podemos concluir que A não gostaria 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
Número de avaliações
O Fenômeno da “Cauda
Longa”
Items
Popularidade de 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
SISTEMAS BASEADOS EM
CONTEÚDO
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.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)
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
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.
Download

Slides - Sandra de Amo