Sistemas de Recomendação - Parte 1

Post on 13-Apr-2017

111 views 2 download

Transcript of Sistemas de Recomendação - Parte 1

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

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 II. Conceitos Básicos

3 bilhões de usuários de Internet

Motivação

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

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

Motivação

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

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)?

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?

O que é uma Recomendação?

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

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.

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

O que é um Sistema de Recomendação?

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

O que é um Sistema de Recomendação?

Objetos de Estudo

Objetos de estudo

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

Objetos de estudo

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

• Técnicas para calcular similaridades e relacionamentos

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)

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

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)

Origem dos Dados

Dados

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

Dados

•De onde vem os dados dos domínios

• Filmes

• Notícias

• e-Commerce

Dados

•Filmes (memória longo prazo)

• Avaliação

• Tempo assistindo

• Quantas vezes assistiu

• Adicionou em uma lista

Dados

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

• Clicou no artigo

• Compartilhou em rede social

• Escreveu um comentário

• Upvote/downvote

• Tempo de leitura

Dados

•e-commerce

• Cliques

• Compras

• Comprou como presente

• Colocou no carrinho

• Escreveu comentários

• Avaliação

Como resolver?

Como resolver?

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

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

Filtro Colaborativo

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

Item 1

Item 2

Usuário X

José

Ana

CatarinaJanice

Filtro Colaborativo

• Em função de usuários

Ana

José

Item 2

Item 1

Item 5Item 3

Filtro Colaborativo

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

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)

Filtro baseado em conteúdo

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

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

Filtro baseado em conteúdo

• Atributos• Filmes

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

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

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

….

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

Filtro baseado em conteúdo

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

Sistemas de Recomendação

•Outras técnicas

• Não-personalizado

• Ciente de contexto

• Demográficos

• Baseado em conhecimento

• Híbrido

Não-personalizado

Ciente de contexto

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

Demográfico

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

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

Parte III. Exemplos no contexto MovieLens

movielens.org

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/

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

MovieLens

MovieLens

MovieLens

Sistemas de Recomendação

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

Sistemas de Recomendação

•Gêneros: Adventure, Family, Fantasy

Sistemas de Recomendação

• Preferências

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?

Sistemas de Recomendação

Sistemas de Recomendação

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

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)

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

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

Sistemas de Recomendação

Sistemas de Recomendação

Sistemas de Recomendação

• Preferências do usuário

Sistemas de Recomendação

Avaliações para filmes deste diretor

Sistemas de Recomendação

Avaliações para filmes do ator principal

Sistemas de Recomendação

Al Pacino

Coppola

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

Sistemas de Recomendação

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

Sistemas de Recomendação

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?

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

Sistemas de Recomendação

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

•Tem boas avaliações

Sistemas de Recomendação

As tags do filme recomendado

Sistemas de Recomendação

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

Sistemas de Recomendação

Sistemas de Recomendação

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

Sistemas de Recomendação

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

Sistemas de Recomendação

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

MovieLens

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

Sistemas de Recomendação

Avaliações do Usuário “Alice”

Sistemas de Recomendação

Avaliações do Usuário “Alice”

Sistemas de Recomendação

Previsões para o usuário “Alice”

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:

Sistemas de Recomendação

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 é:

Sistemas de Recomendação

Sistemas de Recomendação

Sistemas de Recomendação

•Outro exemplo

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

Sistemas de Recomendação

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

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

Sistemas de Recomendação

Sistemas de Recomendação

Sistemas de Recomendação

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

Sistemas de Recomendação

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