sistemas de recomendação - parte 1
TRANSCRIPT
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