Sistemas de Recomendação - Parte 2

Preview:

Citation preview

Sistemas de Recomendação: uma visão geral (Parte 2)

Ralph J. R. Filho

Tópicos

Parte I● Conceitos básicos● Exemplos usando MovieLens

Parte II● Algoritmos● Aplicações na Indústria● Pesquisa● Considerações Finais

Parte IIIII. Algoritmos

/ralphrass/recsysQuick and dirty

COMO FAZER?Filtro colaborativo usuário-usuário

Implementação

• Montar matriz de avaliações (Usuário x Item)• Calcular similaridades• Montar matriz de correlações

• Prever notas

• Ordenar as previsões • Mostrar os resultados

Correlação

Toy Story Shawshank Redemption

Shindler’s list

Silence of the Lambs

Ana 4.5 5 4.5 4

Bruno 4 5 5 4.5

Similaridade: 0.426

Correlação

Toy Story Shawshank Redemption

Shindler’s list

Silence of the Lambs

Filme Raro X

Ana 4.5 5 4.5 4 4

Bruno 4 5 5 4.5 1

Similaridade: 0.607

Toy Story Shawshank Redemption

Shindler’s list

Silence of the Lambs

Filme Raro X

Ana 4.5 5 4.5 4 4

Bruno 4 5 5 4.5 1

Correlação

Similaridade: 0.607

Correlação

• Simples e eficiente

• Ganha de várias outras medidas de similaridades para o filtro colaborativo entre usuários [Herlocker et al. 1999]

• Desconsidera popularidade dos itens (boa ou ruim)

• Predições saem da escala de avaliação (1-5 pode produzir predições de 6 ou até 7)

• Usuários que concordam em poucos, mas importantes, itens podem ter uma baixa correlação

Filtro Colaborativo

•k-NN

• k entre 20 e 50 (Herlocker et al. 2002)

• k entre 20 e 30 (Coursera MOOC)

Filtro Colaborativo

• Entre itens (Amazon)

• Pode ser calculado off-line porque as notas dos itens tendem a ser mais estáveis que as dos usuários (Sarwar B. et al. 2001)

• Indicado utilizar similaridade cosseno (Sarwar B. et al. 2001)

COMO FAZER?Filtro colaborativo entre itens

Implementação

• Montar matriz de avaliações (Item x Usuário)• Montar matriz de correlações (cosseno ajustado –

média do usuário)

• Prever avaliações para cada item para cada usuário com base na similaridade entre itens que o usuário avaliou

• Ordenar as previsões e apresentar as recomendações

Filtro Colaborativo

• Quando escolher I-I ou U-U?

Filtro Colaborativo

• Quando escolher I-I ou U-U?• p = max de avaliações por usuário• q = max de avaliações por item• k = max de vizinhos

Ricci, F. et al. (eds.), Recommender Systems Handbook pg. 120

Filtro Colaborativo

• DataSet MovieLens:• ≈ 700 users• ≈ 10,000 movies• ≈ 100,000 ratings

Ricci, F. et al. (eds.), Recommender Systems Handbook pg. 120

Filtro Colaborativo

• Quando escolher I-I ou U-U?

• Preferências dos itens tendem a ser mais estáveis do que as preferências dos usuários

• Avaliar nro de itens versus usuários

• U-U favorece serendipidade (Ekstrand et al. 2011)

• Ressaltando, filtro colaborativo utiliza unicamente as avaliações, ignorando completamente os atributos

Filtro Colaborativo

• Para o filtro baseado em conteúdo, a abordagem mais utilizada é a similaridade cosseno.

• É claro, pode ter várias dimensões

https://kallistec.wordpress.com/tag/k-nearest-neighbors/

COMO FAZER?Filtro baseado em conteúdo

Implementação ingênua

• Definir vetor de palavras-chave• Construir perfil dos itens (vetor binário assimétrico)

• temFeatureX = 1• Construir perfil dos usuários (contagem simples)

• (rating > limiar) ? +1

• (rating < limiar) ? -1

• senão, 0• Calcular dot-product entre os perfis de itens e usuários• Ordenar e mostrar os resultados

Sistemas de Recomendação

• Desafios

• 0-1 ou contagem

• Feedback implícito

• Preferência versus importância de palavra-chave

• Como normalizar os vetores?

• Como atribuir pesos?

• Melhores formas de atualizar os vetores (on-line)?

Sistemas de Recomendação

• Como extrair atributos qualitativos (contexto)?• Se eu avaliar bem um filme de comédia, não quer dizer que o

gênero apenas seja representativo o suficiente para a minha preferência

• Tags tentam capturar isto

• “Genres, actors, director are not the content of a movie. It is knowledge about it” Recommender Systems – An Introduction

• Fatoração matricial (filtro colaborativo)

Sistemas de Recomendação

• Combinação de dois ou mais algoritmos

http://dataconomy.com/an-introduction-to-recommendation-engines/

Sistemas de Recomendação

Burke, R., 2002 - Hybrid Recommender Systems: Survey and Experiments

Técnica Vantagens Desvantagens

Filtro Colaborativo A. Pode identificar nichosB. Conhecimento de domínio

não é necessárioC. Feedback implícito é

suficienteD. A qualidade melhora com o

tempo

E. Cold-start para usuário F. Cold-start para itemG. Problema da ovelha-

negraH. Qualidade depende do

históricoI. Problema da

estabilidade VS Plasticidade

Baseado em conteúdo

B, C, D E, H, I

Sistemas de Recomendação

Burke, R., 2002 - Hybrid Recommender Systems: Survey and Experiments

Método Descrição

Pesos Combinar os escores de diferentes técnicas de recomendação para produzir uma única recomendação

Switching Muda o algoritmo dependendo da situação

Misto Mistura as recomendações geradas por diferentes técnicas

Combinação de características

Características de diferentes técnicas de recomendação são unidas em um único algoritmo

Cascata Um algoritmo filtra as recomendações gerada por outo

Ampliação de características

A saída de uma técnica é usada como entrada de outra

Meta-nível O modelo aprendido por uma técnica é usado como entrada para outra

Sistemas de Recomendação

•Avaliação

• Esparcidade

• MAE / NMAE, RMSE

• Precision, Recall e Medida-F

• Rank

• Cobertura

Avaliação

• R = avaliações, I = Itens, U = Usuários

• MovieLens 100k current DataSet tem esparcidade = 0,978 (2,2%)

Avaliação

• U = Usuários• testsetu = Conjunto de itens que o usuário u avaliou

• rec(u, i) = avaliação prevista para o usuário u no item i• ru,i é a avaliação real do usuário u para o item i

• MovieLens MAE = 0.83

Avaliação

• Precision (relevância) (Pu), Recall (entre os top) (Ru) e Medida-F (F1)

• hitsu é o número de recomendações relevantes presentes no top-n

• recsetu é o valor de top-n

• testsetu é o total de recomendações relevantes

http://aimotion.blogspot.com.br/2011/05/evaluating-recommender-systems.html

Avaliação

• Usuário “Alice”

Filme Avaliação (0.5 – 5.0)

Toy Story 5.0

Alien 2.0

Titanic 4.5

Indiana Jones and the Raiders… 3.0

Pirates of the Caribean and the Curse…

3.5

Avaliação

Filme Recomendado Previsão

Toy Story 4,89

Matrix 4,78

Inception 4,32

Titanic 4,18

Band of Brothers 3,99

Precisão: 1/3Recall: 1/2

Recomendações, Top-3

Avaliação

Filme Recomendado Previsão

Iron Man 4,95

Mulan 4,77

Prometheus 4,71

Alien 4,63

Terminator 2 4,61

Predator 4,59

The Expandables 4,50

First Blood 4,42

Precision: ?Recall: ?

Recomendações, Top-5

Usuário assistiu e gostou (top)

Usuário assistiu e gostou

Avaliação

Filme Recomendado Previsão

Iron Man 4,95

Mulan 4,77

Prometheus 4,71

Alien 4,63

Terminator 2 4,61

Predator 4,59

The Expandables 4,50

First Blood 4,42

Precision: 2/5Recall: 2/4

Recomendações, Top-5

Usuário assistiu e gostou (top)

Usuário assistiu e gostou

Avaliação

• Qualidade do ranking

Avaliação

• Usuário “234” com 20 itens na lista de recomendação e hits nas posições 04 e 20

• Pode-se notar que um item posicionado acima no ranking tem um peso maior

Avaliação

• Cobertura de Usuários (Ucov), Cobertura de Catálogo (Ccov)

• Útil para avaliar usuários com poucas avaliações (listas não-vazias de recomendações são geradas)

• Deve ser usado em conjunto com métricas de erro (MAE)

Avaliação

•Existem outras•Área em aberto para pesquisa•Para Herlocker e McLaughlin (2004) Precision e Recall reflete melhor a experiência do usuário do que MAE

•No entanto, vários experimentos usam MAE / RMSE como medida

•Netflix Prize pedia para reduzir o RMSE em 10%

Avaliação

•Como ranquear?

http://www.evanmiller.org/how-not-to-sort-by-average-rating.html

Avaliação

•#Up - #Down

http://www.evanmiller.org/how-not-to-sort-by-average-rating.html

Avaliação

•#Up - #Down

http://www.evanmiller.org/how-not-to-sort-by-average-rating.html

Avaliação

•#Up / #Total

http://www.evanmiller.org/how-not-to-sort-by-average-rating.html

Avaliação

•#Up / #Total

http://www.evanmiller.org/how-not-to-sort-by-average-rating.html

Avaliação

● Balancear a proporção de avaliações positivas com um grau de incerteza de uma parte das observações (Edwin Wilson)

● 95% de chance da fração “real” de avaliações positivas ser de “quanto” (valor mínimo)?

http://www.evanmiller.org/how-not-to-sort-by-average-rating.html

Sistemas de Recomendação

• Ferramentas• Apache Mahout (Java)• MyMediaLight (C# / .Net)• GraphLab (C++ / Java)• HTTP REST (EasyRec, PredictionIO)

• Libs• crab (Python)• mrec (Python)• recommenderlab (R)• SUGGEST (C)• RecDB (PostgreSQL)

Parte IIIV. Exemplos na Indústria

Sistemas de Recomendação

• Exemplos na Indústria

• Spotify

• Facebook

• Amazon

• Netflix

• Baidu

• Target

Sistemas de Recomendação

• Uma pergunta antes

Um motor de busca é um sistema de recomendação?

Sistemas de Recomendação

• Motor de Busca

• Busca

• Filtra

• Faz previsões

• Apresenta uma lista

• Falta apenas uma coisa

As preferências do usuário

a.k.a. Perfil do Usuário

Sistemas de Recomendação

• O motor de busca considera aspectos como:

• Histórico de navegação

• Localização geográfica

• Línguas de domínio

• Caso positivo, pode sim ser considerado um SR

• CBF ou CF?

• Caso contrário, pode ser considerado SR não-personalizado

Sistemas de Recomendação

Sistemas de Recomendação

duckduckgo.com

Sistemas de Recomendação

• Busca personalizada do Google pode ser desligada

Sistemas de Recomendação

• Facebook

• 1 bilhão de usuários

• 100 bilhões de avaliações (likes)

• Milhões de itens (grupos, jogos, etc.)

https://code.facebook.com/posts/861999383875667/recommending-items-to-more-than-a-billion-people

Sistemas de Recomendação

https://code.facebook.com/posts/861999383875667/recommending-items-to-more-than-a-billion-people

Sistemas de Recomendação

• Amazon

• Exemplo clássico de aplicação de sistemas de recomendação com sucesso

• Filtro colaborativo Item-Item

Sistemas de Recomendação

• “Our mission is to delight our customers by allowing them to serendipitously discover great products”

http://fortune.com/2012/07/30/amazons-recommendation-secret/

Sistemas de Recomendação

• Patentes

Sistemas de Recomendação

Sistemas de Recomendação

•A Amazon permite a edição do histórico de navegação para melhorar a acurácia das recomendações

Sistemas de Recomendação

Sistemas de Recomendação

Sistemas de Recomendação

•Panaceia de Sistemas de Recomendação da Amazon

Sistemas de Recomendação

Sistemas de Recomendação

• Netflix• 3 mil títulos (em media, por país)• 75 milhões de usuários• 75% das visualizações vem de recomendações• “Search is that thing the people do when they don’t get

good recommendations” Xavier A.• As categorias representam não apenas gêneros, mas

também o humor do usuário

Sistemas de Recomendação

• Netflix mantém controle de muitos dados implícitos• Pause, rewind ou fast forward

• O dia da semana em que cada conteúdo é acessado

• Horas e minutos em que cada conteúdo é acessado

• Localização geográfica

• Aparelhos utilizados

• Avaliações (explícito)

• Buscas

• “We are not optimizing for ratings” Xavier A.• Avaliações explícitas diminuíram

Sistemas de Recomendação

http://pt.slideshare.net/xamat/recsys-2014-tutorial-the-recommender-problem-revisited

Sistemas de Recomendação

http://pt.slideshare.net/xamat/recsys-2014-tutorial-the-recommender-problem-revisited

Sistemas de Recomendação

http://pt.slideshare.net/xamat/recsys-2014-tutorial-the-recommender-problem-revisited

Sistemas de Recomendação

• Motor de busca dominante na China (80%)

• Um país com 700 milhões de internautas

• Está ganhando destaque por inovar os filtros de conteúdo

Sistemas de Recomendação

• “Baidu invested over U$ 100,000,000 in Content Recommendation Engine “Teboola””

• Querem usar o contexto do usuário como parâmetros para as buscas

• Querem evoluir as propagandas, evitar mais do mesmo (se eu compro item x não quero ver mais propaganda do mesmo item)

http://www.geektime.com/2015/05/18/baidu-invests-millions-in-content-recommendation-engine-taboola/

Sistemas de Recomendação

• 1792 lojas nos EUA

• 347000 funcionários

• U$ 72 bilhões em faturamento (2014)

https://corporate.target.com/press/corporate

Sistemas de Recomendação

• “Every time you go shopping, you share intimate details about your consumption patterns with retailers”

• “And many of those retailers are studying those details to figure out what you like, what you need, and which coupons are most likely to make you happy”

http://www.forbes.com/sites/kashmirhill/2012/02/16/how-target-figured-out-a-teen-girl-was-pregnant-before-her-father-did/#44c424c434c6

http://www.nytimes.com/2012/02/19/magazine/shopping-habits.html

Sistemas de Recomendação

• Estatísticos contratados pela empresa descobriram que uma alta porcentagem de mulheres no registro de bebês que estavam no segundo trimestre compraram loção sem cheiro e suprimentos de cálcio, magnésio e zinco (regras de associação)

Sistemas de Recomendação

• Target passou a enviar cupons para itens de bebês de acordo com a probabilidade de gravidez (Recomendações orgânicas)

• Mulheres que compravam os itens e que atendiam aos requisitos demográficos (faixa etária, renda, se era casada, se já tinha filhos, etc.)

• Faturamento • U$ 44 bilhões em 2002 • U$ 67 bilhões em 2010

Sistemas de Recomendação

• “For companies like Target, the exhaustive rendering of our conscious and unconscious patterns into data sets and algorithms has revolutionized what they know about us and, therefore, how precisely they can sell.”

Sistemas de Recomendação

• Streaming de música sob demanda

• 40 milhões de músicas

• 24 milhões de usuários ativos

• 1 bilhão de playlists

• Filtro colaborativo em produção

• Filtro baseado em conteúdo usando espectros de áudio e letras em estudo.

• Criar filtros representativos baseado em padrões encontrados nas músicas

Sistemas de Recomendação

http://pt.slideshare.net/erikbern/music-recommendations-mlconf-2014

Sistemas de Recomendação

“[…] our main problem: how do you model a function similarity(x, y)

For item similarity it’s also much easier to acquire good test set data, unlike personal recommendations. It’s hard to evaluate personal recommendations – most offline metrics like precision are irrelevant.”

Erik Bernhardsson – Gerente de Engenharia

http://pt.slideshare.net/erikbern/music-recommendations-mlconf-2014

Sistemas de Recomendação

http://pt.slideshare.net/erikbern/music-recommendations-mlconf-2014

Sistemas de Recomendação

• Music Genome Project• Patente US 7003515 B1 (2006) – Consumer item matching

method and system (Pandora Media, Inc.)

“25 or so music analysts have to assign either one-to-five rankings or more quantitative measures (say, beats per minute) for as many as 450 "genome units" per song”

http://boingboing.net/2014/05/24/pandoras-music-genome-proj.html

Sistemas de Recomendação

• Oord A. – “Deep content-based music recommendation”, 2013 propõe encontrar funcionalidades latentes utilizando rede neural (algoritmo t-SNE)

• Fragmentos de 3 segundos de espectrogramas de áudios em duas redes convolucionais com duas camadas

Sistemas de Recomendação

Sistemas de Recomendação

• Dieleman, S. “End-to-End learning for music audio”, 2015

Sistemas de Recomendação

http://benanne.github.io/2014/08/05/spotify-cnns.html

Parte IIV. Pesquisa

Sistemas de Recomendação

•Mais dados ou melhores modelos?•Qual técnica é melhor?

Sistemas de Recomendação

Sistemas de Recomendação

• Netflix (2012)

Sistemas de Recomendação

Sistemas de Recomendação

• No centro do Sistema de recomendação está o usuário e suas preferências

• Contraexemplo: loja de departamentos

• Usuário: “Procuro uma televisão”

• Vendedor: “Tenho o modelo perfeito para você! A recém-chegada 104 polegadas 8K”

Sistemas de Recomendação

Artigos por ano

Artigos por domínio

Park, D. H. et al - A literature review and classification of recommender systems research (2011)

2006: Netflix Prize2007: ACM RecSys

Sistemas de Recomendação

Bobadilla, J. et al – Recommender Systems Survey (2013)

Sistemas de Recomendação

Bobadilla, J. et al – Recommender Systems Survey (2013)

Sistemas de Recomendação

• Uma recomendação é um problema que pode ser resolvido com técnicas de aprendizado de máquina / data mining

• Áreas relacionadas

• Information Retrieval

• Information Filtering

• Data Mining

• Machine Learning

RS + Data Mining

Amatriain, X. et al - Data Mining Methods for Recommender Systems

Visualização

Em aberto

• Explicações

• Ataques

• Confiança

• Cold-Start

• Esparcidade

• Escalabilidade

• Métodos de avaliação

• Técnicas de ranking

• Implementações ad-hoc

Parte VIConsiderações finais

Sistemas de Recomendação

•Alto interesse da indústria•“[...] common problem at Silicon Valley”•“[...] little atention of the research community”

•Andrew Ng (2011)

Sistemas de Recomendação

• Internet amadureceu e hoje oferece (muita) informação

• A era da informação (overload) está se tornando a era da recomendação

• “The coming era of on-demand marketing”

• Serviços tendem a serem personalizados para os usuários

• Recomendações podem ser Orgânicas ou Explícitas

• Explícitas pode dar a sensação de espionagem (caso da Target)

http://www.mckinsey.com/business-functions/marketing-and-sales/our-insights/the-coming-era-of-on-demand-marketing

Steam

“Dress like a celebrity”

“Dress like a celebrity”

Shazam

Quora

Linkedin

Matching de Pessoas

Sistemas de Recomendação

•"Too many choices cause paralysis on people“

Barry Schwartz, “The Paradox of Choice”

Sistemas de Recomendação

Sistemas de Recomendação

• Acuracidade de predição de avaliação não significa boas recomendações

• Dados úteis vem de feedbacks implícitos• Não há um modelo ideal para todos os cenários (No Free Lunch)

• Construir e tunar bons modelos é um problema em aberto

• Carência de bons DataSets para pesquisa• Trade-off entre performance e acurácia (online / offline)

Referências

• Coursera

• https://www.coursera.org/learn/recommender-systems/

• ACM RecSys Wiki

• ACM RecSys Conference

Referências - Livros

Recommended