SlideShare uma empresa Scribd logo
Sistemas de Recomendação usando Mahout

Alison Marczewski
Álvaro Reis Neto
Workshop de Mineração de Dados
Julho de 2012
Agenda
Fazendo Recomendações

●

●
●

Entendendo Recomendação Baseada em usuário
Explorando Recomendação baseada em usuário
●
●
●

O algoritmo
GenericUserBasedRecommender
Explorando user neighborhoods
●
Neighborhoods de tamanho fixo
●
Neighborhoods por limite de similaridade
Agenda
●

Explorando métricas de similaridade
●
●
●
●

●

Recomendação baseada em item
●
●

●

Correlação de Pearson
Distância Euclidiana
Correlação de Spearman
Coeficiente de Tanimoto
O algoritmo
Explorando recomendação baseada em item

Recomendador Slope-one
Pensando rápido...

Por que não perguntamos ao
usuário do que ele gosta?
Entendendo recomendação
baseada em usuários
Entendendo Recomendação
Baseada em usuário
●
Situação I
●

➢

➢

➢

➢
➢
➢

adulto: Quero comprar um CD para um
adolescente
vend: qual tipo de música ou banda que ele
gosta?
adulto: de tudo que os jovens gostam hoje em
dia
vend: qual tipo de música ou banda?
adulto: não sei, pra mim é tudo barulhento.
vend: bom, muitos adolescentes estão
comprando o cd da banda restart.
adulto: vou querer esse!
Entendendo recomendação
baseada em usuários
●

➢

➢

➢

➢

➢

Situação II
adulto: Quero comprar um CD para
um adolescente
vend: qual tipo de música ou banda
que ele gosta?
adulto: eu não sei, mas o seu melhor
amigo gosta de metal
vend: bom, iron maiden é a banda
mais famosa de metal.
adulto: então vou querer o álbum
mais recente dessa banda.
Entendendo recomendação
baseada em usuários
●

➢

➢

➢

➢

➢

Situação III
adulto: Quero comprar um CD para um
adolescente
vend: qual tipo de música ou banda que ele
gosta?
adulto: música? Bom, eu não sei. Mas anotei o
nome das bandas presentes nos posters que
tem no quarto dele. São as bandas: sonata
arctica, rammstein, helloween, blind guardian,
rhapsody of fire, soad.
vend: bom, meu filho também gosta muito
dessas bandas. Ultimamente ele tem
comentado sobre a banda stratovarius.
adulto: interessante, vou querer um CD deles.
Explorando recomendação
baseada em usuários
●

Algoritmo
para cada item i que u não tem avaliado ainda
para cada outro usuario v que tem avaliado i
calcular a similaridade s entre u e v
incorporar as preferencias de v para i, levando em
consideração a similaridade s
retornar os itens ordenados de forma decrescente pela nota
Explorando recomendação
baseada em usuários
●

GenericUserBasedRecommender
para cada outro usuario w
calcular a similaridade s entre u e w
guardar em n(vizinhança) os usuários mais similares
para cada item i que algum usuário em n tenha avaliado, mas
que u não tenha avaliado ainda
para cada outro usuario v em n que tem avaliado i
calcular a similaridade s entre u e v
incorporar as preferencias de v para i, levando em
consideração a similaridade s
retornar os itens ordenados de forma descrescente pela nota
Explorando recomendação
baseada em usuários
●

Neighborhood
Explorando recomendação
baseada em usuários
●

Explorando user neighborhoods
●
Neighborhoods de tamanho fixo
●
NearestNUserNeighborhood(100, similarity,
model);
Explorando recomendação
baseada em usuários
●

Explorando user neighborhoods
●
Neighborhoods por limite de similaridade
●
ThresholdUserNeighborhood(0.7, similarity,
model)
Explorando recomendação
baseada em usuários
•

Explorando user neighborhoods
DataModel model = new GroupLensDataModel (new File("ratings.dat"));
RecommenderEvaluator evaluator = new
AverageAbsoluteDifferenceRecommenderEvaluator ();
RecommenderBuilder recommenderBuilder = new RecommenderBuilder() {
@Override
public Recommender buildRecommender(DataModel model) throws
TasteException {
UserSimilarity similarity = new
PearsonCorrelationSimilarity(model);
UserNeighborhood neighborhood = new NearestNUserNeighborhood(100,
similarity, model);
return new GenericUserBasedRecommender(model, neighborhood,
similarity);
}
};
double score = evaluator.evaluate(recommenderBuilder, null, model,
0.95, 0.05);
System.out.println(score);
Explorando métricas de
similaridade
●

Correlação de Pearson
●
PearsonCorrelationSimilarity
●
Varia entre -1 e 1. Mede a tendência que duas
séries possuem de se descolocarem juntas
Explorando métricas de
similaridade
●

Correlação de Pearson
Explorando métricas de
similaridade
●

Correlação de Pearson
●
Problemas apresentados
●
Usa como base apenas itens que ambos
avaliaram
●
Não faz o cálculo caso tenha apenas um item em
comum
●
Se todos os valores de uma série forem idênticos,
o cálculo também não é realizado
Explorando métricas de
similaridade
●

Distância Euclidiana
●
EuclideanDistanceSimilarity
●
Calcula-se a “distância” d entre dois usuários
●
Cada item é uma dimensão
●
Retorna 1 / (1 + d)
●
1: os usuários possuem preferências idênticas (d
= 0)
●
Quanto mais próximo de 0(valor de d
aumentando), menos similares.
Cosseno?
Explorando métricas de
similaridade
●

Distância Euclidiana
Explorando métricas de
similaridade
●

Correlação de Spearman
●
SpearmanCorrelationSimilarity
●
Variante da correlação de Pearson
●
Retorna sempre -1 ou 1
●
Para a menor nota, atribui 1. Para segunda menor,
atribui 2 e assim por diante. Após esse processo,
aplicar pearson sobre os valores transformados
●
Muito lento
●
Muito usado para fins de análise, mas para
comerciais não
●
Pode-se usar o CachingUserSimilarity(faz um préprocessamento e armazena o resultado em cache)
Explorando métricas de
similaridade
●

Correlação de Spearman
Explorando métricas de
similaridade
●

Correlação de Tanimoto
●
TanimotoCoefficientSimilarity
●
Ignora preferência de valores
●
Retorna valores entre 0 e 1
●
É possível transformar esse resultado para [-1, 1].
●
similarity = 2 * similarity - 1
Explorando métricas de
similaridade
●

Correlação de Tanimoto
●

similarity = C / (A + B – C)
●
A = Num.Itens avaliados por a
●
B = Num.Itens avaliados por b
●
C = Item avaliados por a e b
Explorando métricas de
similaridade
●

Correlação de Tanimoto
Recomendação baseada em
item
●

Entendendo a recomendação baseada em item
●
Situação
➢
➢
➢

➢

➢

adulto: Quero comprar um CD para um adolescente
vend: qual tipo de música ou banda que ele gosta?
adulto: não sei, mas ele está sempre usando alguma
blusa do Serj Tankian
vend: bom, quase todo mundo que eu conheço que gosta
de escutar Serj Tankian, parece gostar da banda Scars on
Broadway
adulto: vou querer um CD deles!
Recomendação baseada em
item
●

Pandora
●
Eles acreditam que uma música é composta por
uma série de características
●
Assim como o genoma descreve uma pessoa,
essas características descrevem uma música
●
Aproximadamente 400 parâmetros, como:
melodia, harmonia, ritmo, instrumentação,
performance vocal...
●
Análise feita manualmente(gargalo)
●
Como resolver?
●
Rede de confiança
●
Gostou/não gostou da música
Recomendação baseada em
item
●

Diferença entre recomendação baseada em usuário
e por item
●
Usuário: Quem é similar a esta pessoa e que
gosta do que ela gosta?
●
Item: O que é similar ao que ele gosta?
Recomendação baseada em
item
●

Algoritmo
para cada item i que u não avaliou ainda
para cada item j que u avaliou
calcular a similaridade s entre i e j
guardar as preferencias de u para j, levando em
consideração a similaridade s
retornar os itens ordenados de forma decrescente pela nota.

vizinhança?
Recomendação baseada em
item
●

Explorando recomendação baseada em item
●

As métricas de similaridade também funcionam para
item, pois implementam a interface ItemSimilarity

public Recommender buildRecommender(DataModel model)
throws TasteException {
ItemSimilarity similarity = new
PearsonCorrelationSimilarity(model);
return new GenericItemBasedRecommender(model,
similarity);
}
Recomendador slope-one
Ideia:

A maioria das pessoas que gostam do filme A
também gostam do filme B. Mas as pessoas
tendem a gostar um pouco mais do filme B.
Agora vamos imaginar que a maioria das pessoas
que avaliaram o filme A com 4, avaliaram o filme B
com 5 e a maioria das que avaliaram o filme A com
3, avaliaram o filme B com 4. Podemos concluir que
em média, o filme B é avaliado com um ponto a
mais em relação a A.
Recomendador slope-one
●

Exemplo:

Vamos imaginar que as pessoas avaliaram, em
média, o filme Scarface com um ponto a mais que
Carlito's Way. Vamos imaginar também que todos
avaliaram, em média, com a mesma nota os filmes
Scarface e The Godfather. Supomos agora que há
um usuário que avaliou Carlito's Way com 2 e The
Godfather com 4. Qual a estimativa de nota desde
usuário para o filme Scarface?
Recomendador slope-one
●

Algoritmo:
para cada item i
para cada outro item j
para cada usuario u que avaliou i e j
adicionar a diferenca nas preferencias de u para i e j em
média
para cada item i que o usuario u nao avaliou
para cada item j que o usuario u avaliou
encontrar a diferenca média na preferencia entre j e i
add esta diferenca nas preferencia de u para j
add tal diferença para a media em execucao
retornar os itens ranqueados por essas medias
Recomendador slope-one
●
●

●
●
●

SlopeOneRecommender
É uma ótima escolha em contextos onde as
preferências mudam rapidamente
Esté método funciona muito bem em muitos casos
O algoritmo não faz uso de métricas de similaridade
O DiffStorage consome muita memória. Para resolver
tal problema, os dados são pré-processados e
armazenados em uma base de dados
●
Tal pré-processamento demanda muito
processador. É aconselhável que este préprocessamento seja realizado de forma distribuída.
Recomendador slope-one
●

Sistemas de recomendação que usam essa métrica
●
Hitflip: sistema de recomendação de dvds
●
InDiscover: sistema de recomendação de mp3
●
Value Investing News
●
AllTheBests
●
AllFamo
●
Qué libro me recomiendas
Pensando mais um pouco...
●

●
●

●

Como será a métrica de recomendação do(a):
●
Last.fm
●
Stumbleupon
●
Amazon
●
Limbíseti
●
Curiosidades: vinhança(2, dist. euclidiana) e filtro
●
Outros?
Recomendação baseada em contexto
Recomendação baseada em rede de confiança.
●
E a desconfiança?
Sugestões?
Análise de dados
●

Análise de dados - limbiseti
Sistemas de Recomendação Usando Mahout - Dia 2

Mais conteúdo relacionado

PDF
Sistemas de Recomendação Usando Mahout - Dia 1
PDF
RECOMENDAÇÃO DE DOCUMENTOS PARA OS USUÁRIOS DO AVA MOODLE A PARTIR DAS HASHTA...
PDF
Sistemas de Recomendação e Mobilidade
PDF
Sistemas de Recomendação
PDF
Introdução à sistemas de recomendação
PPT
Sistemas de recomendação
PDF
Sistemas recomendacao para Marketing e Propaganda
PDF
Sistemas de Recomendação Aplicados a WebComo converter visitantes em comprado...
Sistemas de Recomendação Usando Mahout - Dia 1
RECOMENDAÇÃO DE DOCUMENTOS PARA OS USUÁRIOS DO AVA MOODLE A PARTIR DAS HASHTA...
Sistemas de Recomendação e Mobilidade
Sistemas de Recomendação
Introdução à sistemas de recomendação
Sistemas de recomendação
Sistemas recomendacao para Marketing e Propaganda
Sistemas de Recomendação Aplicados a WebComo converter visitantes em comprado...

Destaque (12)

PDF
Sistemas de recomendação
PDF
Um Modelo de Negociação de Privacidade para Sistemas de Recomendação Social
PDF
Sistemas Recomendação em Redes Sociais
PDF
Conceitos e práticas em Sistemas de Recomendação
PDF
Co-occurrence Based Recommendations with Mahout, Scala and Spark
KEY
Sistemas de Recomendação e Inteligência Coletiva
PDF
Sistemas de recomendação
PDF
Técnicas de Mineração de Dados Aplicadas a Sistemas de Recomendação
PPTX
Comparative Recommender System Evaluation: Benchmarking Recommendation Frame...
PDF
Apache Mahout Tutorial - Recommendation - 2013/2014
PPTX
Shideshare
PPTX
How to Build a Recommendation Engine on Spark
Sistemas de recomendação
Um Modelo de Negociação de Privacidade para Sistemas de Recomendação Social
Sistemas Recomendação em Redes Sociais
Conceitos e práticas em Sistemas de Recomendação
Co-occurrence Based Recommendations with Mahout, Scala and Spark
Sistemas de Recomendação e Inteligência Coletiva
Sistemas de recomendação
Técnicas de Mineração de Dados Aplicadas a Sistemas de Recomendação
Comparative Recommender System Evaluation: Benchmarking Recommendation Frame...
Apache Mahout Tutorial - Recommendation - 2013/2014
Shideshare
How to Build a Recommendation Engine on Spark
Anúncio

Semelhante a Sistemas de Recomendação Usando Mahout - Dia 2 (16)

PDF
Sistemas de Recomendação - Parte 2
PPTX
WTA2012 - Proposta de Modelo Adaptativo para Geração de Contextos na Recome...
PPTX
WTA 2012 - Proposta de Modelo Adaptativo para Geração de Contextos na Recom...
PDF
Sistemas de Recomendação na web
PDF
Tchêlinux Porto Alegre 2013 - Sistemas de Recomendação
PDF
Sistemas de Recomendação - Parte 1
PDF
Personalização: O que é?
PPTX
Palestra unesp 2012
PPT
Um Estudo de Caso para verificar a suscetibilidade a incentivos de avaliadore...
PDF
Talk conexao
PPT
Collaborative filtering
PDF
Oferecendo soluções mais assertivas para os usuários de um serviço combinan...
PPTX
Choose your weapon - TDC Floripa 2019
PPT
SC-cap15-recomendacao-apresentacao.ppt
PDF
Minerando dados com Python
PPTX
[Jose Ahirton Lopes] Algoritmos de Recomendacao
Sistemas de Recomendação - Parte 2
WTA2012 - Proposta de Modelo Adaptativo para Geração de Contextos na Recome...
WTA 2012 - Proposta de Modelo Adaptativo para Geração de Contextos na Recom...
Sistemas de Recomendação na web
Tchêlinux Porto Alegre 2013 - Sistemas de Recomendação
Sistemas de Recomendação - Parte 1
Personalização: O que é?
Palestra unesp 2012
Um Estudo de Caso para verificar a suscetibilidade a incentivos de avaliadore...
Talk conexao
Collaborative filtering
Oferecendo soluções mais assertivas para os usuários de um serviço combinan...
Choose your weapon - TDC Floripa 2019
SC-cap15-recomendacao-apresentacao.ppt
Minerando dados com Python
[Jose Ahirton Lopes] Algoritmos de Recomendacao
Anúncio

Último (11)

PPTX
Utilizando code blockes por andre backes
PDF
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PDF
Manejo integrado de pragas na cultura do algodão
PDF
eBook - GUIA DE CONSULTA RAPIDA EM ROTEADORES E SWITCHES CISCO - VOL I.pdf
PPTX
Tipos de servidor em redes de computador.pptx
PPTX
Viasol Energia Solar -Soluções para geração e economia de energia
PPTX
Proposta de Implementação de uma Rede de Computador Cabeada.pptx
PPTX
Eng. Software - pontos essenciais para o início
PPTX
Design - Introdução a Gestalt e teoria das formas
PPTX
Arquitetura de computadores - Memórias Secundárias
Utilizando code blockes por andre backes
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Manejo integrado de pragas na cultura do algodão
eBook - GUIA DE CONSULTA RAPIDA EM ROTEADORES E SWITCHES CISCO - VOL I.pdf
Tipos de servidor em redes de computador.pptx
Viasol Energia Solar -Soluções para geração e economia de energia
Proposta de Implementação de uma Rede de Computador Cabeada.pptx
Eng. Software - pontos essenciais para o início
Design - Introdução a Gestalt e teoria das formas
Arquitetura de computadores - Memórias Secundárias

Sistemas de Recomendação Usando Mahout - Dia 2

  • 1. Sistemas de Recomendação usando Mahout Alison Marczewski Álvaro Reis Neto Workshop de Mineração de Dados Julho de 2012
  • 2. Agenda Fazendo Recomendações ● ● ● Entendendo Recomendação Baseada em usuário Explorando Recomendação baseada em usuário ● ● ● O algoritmo GenericUserBasedRecommender Explorando user neighborhoods ● Neighborhoods de tamanho fixo ● Neighborhoods por limite de similaridade
  • 3. Agenda ● Explorando métricas de similaridade ● ● ● ● ● Recomendação baseada em item ● ● ● Correlação de Pearson Distância Euclidiana Correlação de Spearman Coeficiente de Tanimoto O algoritmo Explorando recomendação baseada em item Recomendador Slope-one
  • 4. Pensando rápido... Por que não perguntamos ao usuário do que ele gosta?
  • 5. Entendendo recomendação baseada em usuários Entendendo Recomendação Baseada em usuário ● Situação I ● ➢ ➢ ➢ ➢ ➢ ➢ adulto: Quero comprar um CD para um adolescente vend: qual tipo de música ou banda que ele gosta? adulto: de tudo que os jovens gostam hoje em dia vend: qual tipo de música ou banda? adulto: não sei, pra mim é tudo barulhento. vend: bom, muitos adolescentes estão comprando o cd da banda restart. adulto: vou querer esse!
  • 6. Entendendo recomendação baseada em usuários ● ➢ ➢ ➢ ➢ ➢ Situação II adulto: Quero comprar um CD para um adolescente vend: qual tipo de música ou banda que ele gosta? adulto: eu não sei, mas o seu melhor amigo gosta de metal vend: bom, iron maiden é a banda mais famosa de metal. adulto: então vou querer o álbum mais recente dessa banda.
  • 7. Entendendo recomendação baseada em usuários ● ➢ ➢ ➢ ➢ ➢ Situação III adulto: Quero comprar um CD para um adolescente vend: qual tipo de música ou banda que ele gosta? adulto: música? Bom, eu não sei. Mas anotei o nome das bandas presentes nos posters que tem no quarto dele. São as bandas: sonata arctica, rammstein, helloween, blind guardian, rhapsody of fire, soad. vend: bom, meu filho também gosta muito dessas bandas. Ultimamente ele tem comentado sobre a banda stratovarius. adulto: interessante, vou querer um CD deles.
  • 8. Explorando recomendação baseada em usuários ● Algoritmo para cada item i que u não tem avaliado ainda para cada outro usuario v que tem avaliado i calcular a similaridade s entre u e v incorporar as preferencias de v para i, levando em consideração a similaridade s retornar os itens ordenados de forma decrescente pela nota
  • 9. Explorando recomendação baseada em usuários ● GenericUserBasedRecommender para cada outro usuario w calcular a similaridade s entre u e w guardar em n(vizinhança) os usuários mais similares para cada item i que algum usuário em n tenha avaliado, mas que u não tenha avaliado ainda para cada outro usuario v em n que tem avaliado i calcular a similaridade s entre u e v incorporar as preferencias de v para i, levando em consideração a similaridade s retornar os itens ordenados de forma descrescente pela nota
  • 10. Explorando recomendação baseada em usuários ● Neighborhood
  • 11. Explorando recomendação baseada em usuários ● Explorando user neighborhoods ● Neighborhoods de tamanho fixo ● NearestNUserNeighborhood(100, similarity, model);
  • 12. Explorando recomendação baseada em usuários ● Explorando user neighborhoods ● Neighborhoods por limite de similaridade ● ThresholdUserNeighborhood(0.7, similarity, model)
  • 13. Explorando recomendação baseada em usuários • Explorando user neighborhoods DataModel model = new GroupLensDataModel (new File("ratings.dat")); RecommenderEvaluator evaluator = new AverageAbsoluteDifferenceRecommenderEvaluator (); RecommenderBuilder recommenderBuilder = new RecommenderBuilder() { @Override public Recommender buildRecommender(DataModel model) throws TasteException { UserSimilarity similarity = new PearsonCorrelationSimilarity(model); UserNeighborhood neighborhood = new NearestNUserNeighborhood(100, similarity, model); return new GenericUserBasedRecommender(model, neighborhood, similarity); } }; double score = evaluator.evaluate(recommenderBuilder, null, model, 0.95, 0.05); System.out.println(score);
  • 14. Explorando métricas de similaridade ● Correlação de Pearson ● PearsonCorrelationSimilarity ● Varia entre -1 e 1. Mede a tendência que duas séries possuem de se descolocarem juntas
  • 16. Explorando métricas de similaridade ● Correlação de Pearson ● Problemas apresentados ● Usa como base apenas itens que ambos avaliaram ● Não faz o cálculo caso tenha apenas um item em comum ● Se todos os valores de uma série forem idênticos, o cálculo também não é realizado
  • 17. Explorando métricas de similaridade ● Distância Euclidiana ● EuclideanDistanceSimilarity ● Calcula-se a “distância” d entre dois usuários ● Cada item é uma dimensão ● Retorna 1 / (1 + d) ● 1: os usuários possuem preferências idênticas (d = 0) ● Quanto mais próximo de 0(valor de d aumentando), menos similares. Cosseno?
  • 19. Explorando métricas de similaridade ● Correlação de Spearman ● SpearmanCorrelationSimilarity ● Variante da correlação de Pearson ● Retorna sempre -1 ou 1 ● Para a menor nota, atribui 1. Para segunda menor, atribui 2 e assim por diante. Após esse processo, aplicar pearson sobre os valores transformados ● Muito lento ● Muito usado para fins de análise, mas para comerciais não ● Pode-se usar o CachingUserSimilarity(faz um préprocessamento e armazena o resultado em cache)
  • 21. Explorando métricas de similaridade ● Correlação de Tanimoto ● TanimotoCoefficientSimilarity ● Ignora preferência de valores ● Retorna valores entre 0 e 1 ● É possível transformar esse resultado para [-1, 1]. ● similarity = 2 * similarity - 1
  • 22. Explorando métricas de similaridade ● Correlação de Tanimoto ● similarity = C / (A + B – C) ● A = Num.Itens avaliados por a ● B = Num.Itens avaliados por b ● C = Item avaliados por a e b
  • 24. Recomendação baseada em item ● Entendendo a recomendação baseada em item ● Situação ➢ ➢ ➢ ➢ ➢ adulto: Quero comprar um CD para um adolescente vend: qual tipo de música ou banda que ele gosta? adulto: não sei, mas ele está sempre usando alguma blusa do Serj Tankian vend: bom, quase todo mundo que eu conheço que gosta de escutar Serj Tankian, parece gostar da banda Scars on Broadway adulto: vou querer um CD deles!
  • 25. Recomendação baseada em item ● Pandora ● Eles acreditam que uma música é composta por uma série de características ● Assim como o genoma descreve uma pessoa, essas características descrevem uma música ● Aproximadamente 400 parâmetros, como: melodia, harmonia, ritmo, instrumentação, performance vocal... ● Análise feita manualmente(gargalo) ● Como resolver? ● Rede de confiança ● Gostou/não gostou da música
  • 26. Recomendação baseada em item ● Diferença entre recomendação baseada em usuário e por item ● Usuário: Quem é similar a esta pessoa e que gosta do que ela gosta? ● Item: O que é similar ao que ele gosta?
  • 27. Recomendação baseada em item ● Algoritmo para cada item i que u não avaliou ainda para cada item j que u avaliou calcular a similaridade s entre i e j guardar as preferencias de u para j, levando em consideração a similaridade s retornar os itens ordenados de forma decrescente pela nota. vizinhança?
  • 28. Recomendação baseada em item ● Explorando recomendação baseada em item ● As métricas de similaridade também funcionam para item, pois implementam a interface ItemSimilarity public Recommender buildRecommender(DataModel model) throws TasteException { ItemSimilarity similarity = new PearsonCorrelationSimilarity(model); return new GenericItemBasedRecommender(model, similarity); }
  • 29. Recomendador slope-one Ideia: A maioria das pessoas que gostam do filme A também gostam do filme B. Mas as pessoas tendem a gostar um pouco mais do filme B. Agora vamos imaginar que a maioria das pessoas que avaliaram o filme A com 4, avaliaram o filme B com 5 e a maioria das que avaliaram o filme A com 3, avaliaram o filme B com 4. Podemos concluir que em média, o filme B é avaliado com um ponto a mais em relação a A.
  • 30. Recomendador slope-one ● Exemplo: Vamos imaginar que as pessoas avaliaram, em média, o filme Scarface com um ponto a mais que Carlito's Way. Vamos imaginar também que todos avaliaram, em média, com a mesma nota os filmes Scarface e The Godfather. Supomos agora que há um usuário que avaliou Carlito's Way com 2 e The Godfather com 4. Qual a estimativa de nota desde usuário para o filme Scarface?
  • 31. Recomendador slope-one ● Algoritmo: para cada item i para cada outro item j para cada usuario u que avaliou i e j adicionar a diferenca nas preferencias de u para i e j em média para cada item i que o usuario u nao avaliou para cada item j que o usuario u avaliou encontrar a diferenca média na preferencia entre j e i add esta diferenca nas preferencia de u para j add tal diferença para a media em execucao retornar os itens ranqueados por essas medias
  • 32. Recomendador slope-one ● ● ● ● ● SlopeOneRecommender É uma ótima escolha em contextos onde as preferências mudam rapidamente Esté método funciona muito bem em muitos casos O algoritmo não faz uso de métricas de similaridade O DiffStorage consome muita memória. Para resolver tal problema, os dados são pré-processados e armazenados em uma base de dados ● Tal pré-processamento demanda muito processador. É aconselhável que este préprocessamento seja realizado de forma distribuída.
  • 33. Recomendador slope-one ● Sistemas de recomendação que usam essa métrica ● Hitflip: sistema de recomendação de dvds ● InDiscover: sistema de recomendação de mp3 ● Value Investing News ● AllTheBests ● AllFamo ● Qué libro me recomiendas
  • 34. Pensando mais um pouco... ● ● ● ● Como será a métrica de recomendação do(a): ● Last.fm ● Stumbleupon ● Amazon ● Limbíseti ● Curiosidades: vinhança(2, dist. euclidiana) e filtro ● Outros? Recomendação baseada em contexto Recomendação baseada em rede de confiança. ● E a desconfiança? Sugestões?
  • 35. Análise de dados ● Análise de dados - limbiseti