Sistemas de Recomendação - Parte 1

104
Sistemas de Recomendação: uma visão geral (Parte 1) Ralph J. R. Filho

Transcript of Sistemas de Recomendação - Parte 1

Page 1: Sistemas de Recomendação - Parte 1

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

Ralph J. R. Filho

Page 2: Sistemas de Recomendação - Parte 1

Tópicos

Parte I● Conceitos básicos● Exemplos usando MovieLens

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

Page 3: Sistemas de Recomendação - Parte 1

Parte II. Conceitos Básicos

Page 4: Sistemas de Recomendação - Parte 1

3 bilhões de usuários de Internet

Page 5: Sistemas de Recomendação - Parte 1

Motivação

• Buscas • Comunicação• E-mail• Notícias• Artigos• Música• Videos• Filmes• Cursos• Compras

Page 6: Sistemas de Recomendação - Parte 1

Motivação

• Popularização da internet

• Primeiros motores de busca eram rudimentares

• Google revolucionou

• Os demais se aperfeiçoaram

• Artigos (Scopus, Scholar), Compras (Amazon) dentre outros

Page 7: Sistemas de Recomendação - Parte 1

Motivação

• ... desde que você saiba exatamente o quê está procurando

Page 8: Sistemas de Recomendação - Parte 1

Motivação

•Como encontrar conteúdo adequado, que satisfaça as minhas necessidades como consumidor, desde os momentos de estudo até os momentos de entretenimento?

•Eu sempre sei exatamente o que eu quero consumir (assistir, ler, ouvir, comprar)?

Page 9: Sistemas de Recomendação - Parte 1

Motivação

•Como os sites que eu frequento podem me ajudar a escolher?

•O que acontece quando eu me deparo com muitas opções?

•Quais as vantagens que um negócio tem em recomendar de forma eficaz e eficiente?

Page 10: Sistemas de Recomendação - Parte 1
Page 11: Sistemas de Recomendação - Parte 1
Page 12: Sistemas de Recomendação - Parte 1
Page 13: Sistemas de Recomendação - Parte 1
Page 14: Sistemas de Recomendação - Parte 1

O que é uma Recomendação?

Page 15: Sistemas de Recomendação - Parte 1

O que é uma recomendação?

• É uma lista de itens ordenados gerada para um usuário considerando suas preferências e em conformidade com um contexto

Page 16: Sistemas de Recomendação - Parte 1

O que é uma recomendação?

• É uma lista de itens ordenados gerada para um usuário considerando suas preferências e em conformidade com um contexto

• Normalmente, a recomendação é construída com base em previsões do quão provável será de que o usuário consumirá o item.

Page 17: Sistemas de Recomendação - Parte 1

O que é uma recomendação?

• É uma lista de itens ordenados gerada para um usuário considerando suas preferências e em conformidade com um contexto

• Normalmente, a recomendação é construída com base em previsões do quão provável será de que o usuário consumirá o item.

• As previsões são calculadas com entradas que inclui o perfil do usuário e suas ações históricas

Page 18: Sistemas de Recomendação - Parte 1

O que é um Sistema de Recomendação?

• Um Sistema de Recomendação (SR) é um software que• Antecipa as necessidades dos usuários

Page 19: Sistemas de Recomendação - Parte 1

O que é um Sistema de Recomendação?

Page 20: Sistemas de Recomendação - Parte 1

Objetos de Estudo

Page 21: Sistemas de Recomendação - Parte 1

Objetos de estudo

• Modelos que representam o perfil do usuário para capturar preferências e gostos

Page 22: Sistemas de Recomendação - Parte 1

Objetos de estudo

• Modelos que representam o perfil do usuário para capturar preferências e gostos

• Técnicas para calcular similaridades e relacionamentos

Page 23: Sistemas de Recomendação - Parte 1

Objetos de estudo

• Modelos que representam o perfil do usuário para capturar preferências e gostos• Técnicas para calcular similaridades e relacionamentos

• Condições que envolvem quais itens devem ser recomendados e como estes devem ser apresentados (acuracidade, serendipidade, cobertura, diversidade)

Page 24: Sistemas de Recomendação - Parte 1

Objetos de estudo

• Modelos que representam o perfil do usuário para capturar preferências e gostos• Técnicas para calcular similaridades e relacionamentos• Condições que envolvem quais itens devem ser recomendados e como estes

devem ser apresentados (acuracidade, serendipidade, cobertura, diversidade)

• Compreender o que os usuários querem, quando eles querem e porque eles querem (domínio).

Page 25: Sistemas de Recomendação - Parte 1

Sistemas de recomendação

• Variam de acordo com o domínio• Em alguns domínios o usuário consumirá um item

várias vezes (música, compras), em outros, o usuário consumirá apenas uma vez (na maioria das vezes) (filmes, notícias)

Page 26: Sistemas de Recomendação - Parte 1

Origem dos Dados

Page 27: Sistemas de Recomendação - Parte 1

Dados

•São de origem implícita ou explícita•Podem ser unários, binários ou contínuos

Page 28: Sistemas de Recomendação - Parte 1

Dados

•De onde vem os dados dos domínios

• Filmes

• Notícias

• e-Commerce

Page 29: Sistemas de Recomendação - Parte 1

Dados

•Filmes (memória longo prazo)

• Avaliação

• Tempo assistindo

• Quantas vezes assistiu

• Adicionou em uma lista

Page 30: Sistemas de Recomendação - Parte 1

Dados

•Notícias (memória de curto prazo)

• Clicou no artigo

• Compartilhou em rede social

• Escreveu um comentário

• Upvote/downvote

• Tempo de leitura

Page 31: Sistemas de Recomendação - Parte 1

Dados

•e-commerce

• Cliques

• Compras

• Comprou como presente

• Colocou no carrinho

• Escreveu comentários

• Avaliação

Page 32: Sistemas de Recomendação - Parte 1

Como resolver?

Page 33: Sistemas de Recomendação - Parte 1

Como resolver?

Page 34: Sistemas de Recomendação - Parte 1

Sistemas de recomendação

• Divido em duas categorias:

• Avaliações de vizinhos (filtro colaborativo)

• Análise de vetor de atributos (filtro baseado em

conteúdo)

• Alguns autores incluem também:

• Filtro demográfico

• Filtro baseado em conhecimento

Page 35: Sistemas de Recomendação - Parte 1

Filtro Colaborativo

• Utiliza apenas as avaliações dos usuários (implícito ou explícito)

Usuário Item 1 Item 2 Item 3 Item 4 Item 5

Usuário X 4.5 3.0 1.0 2.0 ?

José 3.5 2.5 1.5 ? 4.5

Ana 5.0 ? 3.0 ? 3.0

Catarina 2.0 4.0 4.5 3.0 ?

Bruno ? ? 1.0 2.0 4.0

Janice 2.5 ? ? 3.0 5.0

Page 36: Sistemas de Recomendação - Parte 1

Filtro Colaborativo

• Encontrar o(s) mais próximo(s)

Item 1

Item 2

Usuário X

José

Ana

CatarinaJanice

Page 37: Sistemas de Recomendação - Parte 1

Filtro Colaborativo

• Em função de usuários

Ana

José

Item 2

Item 1

Item 5Item 3

Page 38: Sistemas de Recomendação - Parte 1

Filtro Colaborativo

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

Page 39: Sistemas de Recomendação - Parte 1

Filtro Colaborativo

•k-NN de itens ou usuários•Medida de similaridade varia. Tradicional: Correlação de Pearson

•Cálculos de previsão das avaliações que o usuário dará para cada item varia (será visto na seção Algoritmos)

Page 40: Sistemas de Recomendação - Parte 1

Filtro baseado em conteúdo

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

Page 41: Sistemas de Recomendação - Parte 1

Filtro baseado em conteúdo

• Utiliza apenas os atributos e a preferência do usuário pelos mesmos

• Utilizado historicamente para documentos• Term Frequency Inverse Document Frequency (TFIDF)

• Information Retrieval, motores de busca

• Modelo de Espaço Vetorial• “Each dimension corresponds to a separate term. If a term

occurs in the document, its value in the vector is non-zero” Wikipedia

Page 42: Sistemas de Recomendação - Parte 1

Filtro baseado em conteúdo

• Atributos• Filmes

• Atores• Diretores• Gêneros• Tags• Ano• País

• Música• Cantor(a)• Componentes da banda• Estilo(s)

Page 43: Sistemas de Recomendação - Parte 1

Filtro baseado em conteúdo

• Domínio de filmes

Ação Comédia

Horror Romance

Sci-Fi …

Toy Story 0 1 0 0 0

Alien 1 0 1 0 1

Titanic 1 0 0 1 0

Indiana Jones and the Raiders… 1 1 0 0 0

Pirates of the Caribean and the Curse…

1 1 0 1 0

….

Page 44: Sistemas de Recomendação - Parte 1

Filtro baseado em conteúdo

• Exemplo avaliações do usuário “Alice”

Ação Comédia

Horror Romance

Sci-Fi …

Perfil do Usuário Alice +1 +2 -1 +2 -1

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

Page 45: Sistemas de Recomendação - Parte 1

Filtro baseado em conteúdo

Jing, Y. et al. - “Visual Search at Pinterest”, 2015

Page 46: Sistemas de Recomendação - Parte 1

Sistemas de Recomendação

•Outras técnicas

• Não-personalizado

• Ciente de contexto

• Demográficos

• Baseado em conhecimento

• Híbrido

Page 47: Sistemas de Recomendação - Parte 1

Não-personalizado

Page 48: Sistemas de Recomendação - Parte 1

Ciente de contexto

• Localização geográfica• Infraestrutura (casa, apartamento, garagem)• Humor• Ocasião• Condições climáticas• Horário• Iluminação• Temperatura• …

Page 49: Sistemas de Recomendação - Parte 1

Demográfico

• Idade• Gênero• Etnia• Orientação sexual• Educação• Tem crianças• Cidade / Estado / País• Renda• Ocupação• Religião• …

Page 50: Sistemas de Recomendação - Parte 1

Baseado em conhecimento

• O usuário sabe parte das especificações do que quer• Geralmente, para itens que são comprados uma vez ou poucas vezes

• Computador, carro, casa• Tela 13” ou 14”• Keyboard backlight• 8 GB RAM• SSD Hard Disk• Peso máximo

Page 51: Sistemas de Recomendação - Parte 1

Parte III. Exemplos no contexto MovieLens

Page 52: Sistemas de Recomendação - Parte 1

movielens.org

Page 53: Sistemas de Recomendação - Parte 1

Sistemas de Recomendação

• MovieLens (movielens.org) é mantido por GroupLens Research Project (University of Minnesota)

• DataSets públicos

• Stable (benchmarks) [100K / 1M / 10M / 20M]

• Current (playground) [100K / 22M]

• MovieLens Current (2016-01) DataSet (Small)

• ≈ 700 users

• ≈ 10,000 movies

• ≈ 100,000 ratings

http://grouplens.org/datasets/movielens/

Page 54: Sistemas de Recomendação - Parte 1

Sistemas de Recomendação

• A seguir serão apresentados algumas análises de recomendações do MovieLens para um usuário

• Abordagens

• Híbrido (preferência por grupos de itens gerados por clustering)

• Filtro colaborativo Item-Item

• Feature learning através de fatorização matricial usando SVD

Page 55: Sistemas de Recomendação - Parte 1

MovieLens

Page 56: Sistemas de Recomendação - Parte 1

MovieLens

Page 57: Sistemas de Recomendação - Parte 1

MovieLens

Page 58: Sistemas de Recomendação - Parte 1

Sistemas de Recomendação

• Porquê desta recomendação?• Previsão é 5 estrelas• Filtro colaborativo Item-Item

Page 59: Sistemas de Recomendação - Parte 1

Sistemas de Recomendação

•Gêneros: Adventure, Family, Fantasy

Page 60: Sistemas de Recomendação - Parte 1

Sistemas de Recomendação

• Preferências

Page 61: Sistemas de Recomendação - Parte 1

Sistemas de Recomendação

•Gêneros “History”, “Western” ou “Crime” seriam mais apropriados

•Mas neste caso está sendo utilizado filtro colaborativo item-item

•Que representa as preferências gerais de todos os outros usuários que avaliaram os filmes

•Quais itens similares o usuário avaliou?

Page 62: Sistemas de Recomendação - Parte 1

Sistemas de Recomendação

Page 63: Sistemas de Recomendação - Parte 1

Sistemas de Recomendação

•Pensando bem: muda a avaliação de “Raiders of the lost ark” de 5 para 4 estrelas.

Page 64: Sistemas de Recomendação - Parte 1

Sistemas de Recomendação

Ainda recomendado, mas houve queda de 4.87 para 4.73 na previsão (apenas mudando um pouco a avaliação de 1 filme)

Page 65: Sistemas de Recomendação - Parte 1

Sistemas de Recomendação

•Lembrando que filtro colaborativo ignora features, então o filme seria recomendado mesmo que o sistema pudesse inferir que o usuário não gosta do gênero Romance

Page 66: Sistemas de Recomendação - Parte 1

Sistemas de Recomendação

•Trocando o algoritmo para: Simon Funk’s SVD• Comprime os dados de avaliações em fatores que capturam as preferências essenciais dos usuários

http://sifter.org/~simon/journal/20061211.html

Page 67: Sistemas de Recomendação - Parte 1

Sistemas de Recomendação

Page 68: Sistemas de Recomendação - Parte 1

Sistemas de Recomendação

Page 69: Sistemas de Recomendação - Parte 1

Sistemas de Recomendação

• Preferências do usuário

Page 70: Sistemas de Recomendação - Parte 1

Sistemas de Recomendação

Avaliações para filmes deste diretor

Page 71: Sistemas de Recomendação - Parte 1

Sistemas de Recomendação

Avaliações para filmes do ator principal

Page 72: Sistemas de Recomendação - Parte 1

Sistemas de Recomendação

Al Pacino

Coppola

Gêneros•“The Godfather: Part II” parece ser uma boa recomendação

Page 73: Sistemas de Recomendação - Parte 1

Sistemas de Recomendação

•Outra recomendação•Ainda usando Simon Funk SVD

Page 74: Sistemas de Recomendação - Parte 1

Sistemas de Recomendação

Page 75: Sistemas de Recomendação - Parte 1

Sistemas de Recomendação

• Não tem os gêneros favoritos do usuário (Adventure, Fantasy, Animation)

• Não foi avaliado nada deste diretor nem do elenco

• Então, porquê esta recomendação?

Page 76: Sistemas de Recomendação - Parte 1

Sistemas de Recomendação

•Não tem os gêneros favoritos do usuário (Adventure, Fantasy, Animation)

•Não foi avaliado nada deste diretor nem do elenco

•Então, porquê esta recomendação?•Existem outras features

Page 77: Sistemas de Recomendação - Parte 1

Sistemas de Recomendação

•Foi traduzido para a língua Japonesa• Inclui 5 tags marcadas com sentimento positivo

•Tem boas avaliações

Page 78: Sistemas de Recomendação - Parte 1

Sistemas de Recomendação

As tags do filme recomendado

Page 79: Sistemas de Recomendação - Parte 1

Sistemas de Recomendação

Tags utilizadas pelo usuário em outros filmes, indicando sentimento positivo

Page 80: Sistemas de Recomendação - Parte 1

Sistemas de Recomendação

Page 81: Sistemas de Recomendação - Parte 1

Sistemas de Recomendação

Avaliados pelo usuário que foram traduzidos para a língua Japonesa

Page 82: Sistemas de Recomendação - Parte 1

Sistemas de Recomendação

http://www.huffingtonpost.com/2013/08/21/netflix-my-list_n_3790472.html

Page 83: Sistemas de Recomendação - Parte 1

Sistemas de Recomendação

• Features no MovieLens• Gêneros• Ano• Línguas• Diretores• Atores• Wish List• Tags

Page 84: Sistemas de Recomendação - Parte 1

MovieLens

Page 85: Sistemas de Recomendação - Parte 1

Sistemas de Recomendação

• Limites de Data Mining / Machine Learning: como ir além dos padrões e capturar a complexidade das necessidades humanas?

• A seguir exemplos hipotéticos

Page 86: Sistemas de Recomendação - Parte 1

Sistemas de Recomendação

Avaliações do Usuário “Alice”

Page 87: Sistemas de Recomendação - Parte 1

Sistemas de Recomendação

Avaliações do Usuário “Alice”

Page 88: Sistemas de Recomendação - Parte 1

Sistemas de Recomendação

Previsões para o usuário “Alice”

Page 89: Sistemas de Recomendação - Parte 1

Sistemas de Recomendação

•As previsões de avaliações resultariam em um ranking ordenado de forma decrescente o que significa que o usuário provavelmente iria selecionar o seguinte item:

Page 90: Sistemas de Recomendação - Parte 1

Sistemas de Recomendação

Page 91: Sistemas de Recomendação - Parte 1

Sistemas de Recomendação

•Mas, na maior parte do tempo em que consome filmes, o usuário está cansado de um dia corrido, e quer relaxar

•Então, a escolha é:

Page 92: Sistemas de Recomendação - Parte 1

Sistemas de Recomendação

Page 93: Sistemas de Recomendação - Parte 1

Sistemas de Recomendação

Page 94: Sistemas de Recomendação - Parte 1

Sistemas de Recomendação

•Outro exemplo

•O usuário avalia ao máximo os seguintes filmes

Page 95: Sistemas de Recomendação - Parte 1

Sistemas de Recomendação

Page 96: Sistemas de Recomendação - Parte 1

Sistemas de Recomendação

•Um algoritmo inspirado em filtro baseado em conteúdo poderá detectar que este usuário gosta de:

• Filmes aonde Silvester Stallone é o ator principal

• Filmes do gênero ação

Page 97: Sistemas de Recomendação - Parte 1

Sistemas de Recomendação

•Portanto, um filme de ação estrelando Silvester Stallone seria muito bom para este usuário, certo?

•Então, eis a recomendação

Page 98: Sistemas de Recomendação - Parte 1

Sistemas de Recomendação

Page 99: Sistemas de Recomendação - Parte 1

Sistemas de Recomendação

Page 100: Sistemas de Recomendação - Parte 1

Sistemas de Recomendação

Page 101: Sistemas de Recomendação - Parte 1

Sistemas de Recomendação

•Usando filtro colaborativo o resultado poderia ter sido diferente

•Ou ainda, usando apenas a informação da avaliação disponível para este filme

Page 102: Sistemas de Recomendação - Parte 1

Sistemas de Recomendação

Page 103: Sistemas de Recomendação - Parte 1

Sistemas de Recomendação

• Filtro baseado em conteúdo elimina o cold-start para itens, mas nem sempre captura adequadamente as preferências do usuário

• Filtro colaborativo é um modelo fácil de replicar para qualquer domínio, mas ignora as features, o que pode favorecer itens populares

• Preferências por features podem ser induzidas através das avaliações

Page 104: Sistemas de Recomendação - Parte 1