Um estudo de recomendadores baseados em conteúdo e redes sociais
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Um estudo de recomendadores baseados em conteúdo e redes sociais

on

  • 2,357 views

São duas as contribuições deste trabalho: (1) analisar a empregabilidade de algoritmos de recomendação para redes sociais. Tais algoritmos de recomendação podem receber como entrada não ...

São duas as contribuições deste trabalho: (1) analisar a empregabilidade de algoritmos de recomendação para redes sociais. Tais algoritmos de recomendação podem receber como entrada não somente o grafo social destas redes como também características do conteúdo de itens a serem recomendados para usuários finais.

Para tal, serão levantadas as principais características das redes sociais e as técnicas de recomendação automática que podem ser empregadas para essas tarefas. Especial atenção será dada à rede social online \emph{Flickr} para compartilhamento de fotos e ao emprego de métricas de semelhança visual entre imagens.

A segunda contribuição (2) é a construção de uma \emph{framework} para a modelagem e análise de redes sociais, bem como o estudo do desempenho de algoritmos de recomendação nestes contextos. Estarão nela contidas as melhores práticas adotadas ao longo do estudo, como técnicas para coleta, análise e visualização de dados, classificação de redes sociais e tarefas de recomendação dentro destas, implementação dos algoritmos e arquiteturas de recomendadores.

A relevância de tais contribuições advém da enorme quantidade de informação disponível online e a crescente complexidade dos inter-relacionamentos entre esses dados. Sistemas recomendadores nesse contexto podem oferecer grande ajuda para usuários finais.

A study on recommender systems based on content and social networks

This dissertation offers two major contributions: (1) to evaluate the suitability of recommender algorithms for social networks. Such recommender algorithms may receive as input not only the social graph of these networks but also content-based data from recommended items.

For such, the relevant characteristics of social networks and the most important recommender techniques for these tasks will be surveyed. Special attention is given to the web-based system for social photo-sharing called \emph{Flickr} and to the employment of visual metrics for image similarity.

The second contribution (2) is the construction of a framework for the modeling and analysis of social networks, as well as aiding the empirical study of recommender algorithms on these contexts. Also part of this framework are the best practices adopted throughout the work done on this dissertation, such as: techniques for the gathering, analysis and visualization of data; social networks classification; identification and modeling of recommending tasks within these contexts; implementation of algorithms and their architecture.

The relevance of such contributions lies on the enormous amount of information available online and on the ever-growing complexity of the relationships between this data. In this context, recommender systems may provide a great aid for end-users.

Statistics

Views

Total Views
2,357
Views on SlideShare
2,356
Embed Views
1

Actions

Likes
2
Downloads
53
Comments
0

1 Embed 1

http://www.slideshare.net 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Um estudo de recomendadores baseados em conteúdo e redes sociais Presentation Transcript

  • 1. Introdução Framework Recomendadores Flickr Conclusão Um estudo de recomendadores baseados em conteúdo e redes sociais Ricardo Niederberger Cabral (ricardo at isnotworking.com) Departamento de Informática Pontifícia Universidade Católica do Rio de Janeiro Novembro de 2008
  • 2. Introdução Framework Recomendadores Flickr Conclusão Visão geral 1 3 Introdução Recomendadores Flickr Problema Conceitos Coleta de dados 2 Framework Objetivos Caracterização dos relacionamentos Contribuições da web Avaliação das possibilidades de recomendações semântica Grupos para fotos Modelagem da rede Grupos para fotos utilizando conteúdo visual social e tarefas de Grupos para usuários recomendação Usuários para usuários Realização de Fotos para usuários experimentos 4 Conclusão Resultados e contribuições Trabalhos futuros
  • 3. Introdução Framework Recomendadores Flickr Conclusão Visão geral 3 Recomendadores Flickr 1 Introdução Problema Conceitos 2 Framework Coleta de dados Objetivos Caracterização dos relacionamentos Contribuições da web Avaliação das possibilidades de recomendações semântica Grupos para fotos Modelagem da rede Grupos para fotos utilizando conteúdo visual social e tarefas de Grupos para usuários recomendação Usuários para usuários Realização de Fotos para usuários experimentos 4 Conclusão Resultados e contribuições Trabalhos futuros
  • 4. Introdução Framework Recomendadores Flickr Conclusão Problema Excesso de informação online Volume de informações em forma digital1 em 2007: 281 exabytes, em 2011: 10x isso 1 1,4 bi pessoas ( 4 do mundo) na internet em 2008, em 2012: 1,9 bi Recomendadores são uma resposta para tanta informação 1 The Diverse and Exploding Digital Universe - IDC
  • 5. Introdução Framework Recomendadores Flickr Conclusão Problema Redes sociais e serviços online de mídia social Componentes: nós, vértices ⇒ estrutura Exemplos: Co-autores, empresas, troca de emails, ... Emergência de sites de mídia social como Flickr e Last.FM2 , que aglutinam pessoas ao redor de um interesse comum Estrutura de sua rede social induz possibilidades para recomendação. Por exemplo no Flickr, recomendar um grupo para uma foto, ou uma pessoa como contato para outra, ou uma foto para uma pessoa etc... Oportunidade de usar conhecimento indireto disponível nas diversas relações entre as entidades dessa rede 2 http://ickr.com e http://last.fm
  • 6. Introdução Framework Recomendadores Flickr Conclusão Problema Recomendadores tradicionais Baseados em ltragem colaborativa existem há bastante tempo [Resnick, 97] Dependem de alguma relação entre os indivíduos para obter conhecimento sobre os itens, além das relações diretas (similaridade) entre eles Exemplos: quem comprou esse item comprou também..., quem deu ratings parecidos com os seus anteriormente deram rating X para esse item.
  • 7. Introdução Framework Recomendadores Flickr Conclusão Problema Evolução dos sistemas que fazem uso de recomendadores 2001: Agentes inteligentes 2008+: Hubs sociais Usuário interage com Usuário interage com outros algoritmos usuários Filtragem colaborativa Frequentemente baseados em tags em dados globais não Dados de outros usuários expostos diretamente acessíveis em tempo real a todos Ajuda construção de rede social: Foco em busca ou interação é um diálogo com o vendas usuário e não uma transação
  • 8. Introdução Framework Recomendadores Flickr Conclusão Problema Evolução dos sistemas que fazem uso de recomendadores 2001: Agentes inteligentes 2008+: Hubs sociais Usuário interage com Usuário interage com outros algoritmos usuários Filtragem colaborativa Frequentemente baseados em tags em dados globais não Dados de outros usuários expostos diretamente acessíveis em tempo real a todos Ajuda construção de rede social: Foco em busca ou interação é um diálogo com o vendas usuário e não uma transação
  • 9. Introdução Framework Recomendadores Flickr Conclusão Problema Evolução dos sistemas que fazem uso de recomendadores 2001: Agentes inteligentes 2008+: Hubs sociais Usuário interage com Usuário interage com outros algoritmos usuários Filtragem colaborativa Frequentemente baseados em tags em dados globais não Dados de outros usuários expostos diretamente acessíveis em tempo real a todos Ajuda construção de rede social: Foco em busca ou interação é um diálogo com o vendas usuário e não uma transação
  • 10. Introdução Framework Recomendadores Flickr Conclusão Problema Objetivos desse trabalho Estudar uso de algoritmos de recomendação para redes sociais Propor uma framework para análise e reuso de algoritmos de recomendação em redes sociais
  • 11. Introdução Framework Recomendadores Flickr Conclusão Visão geral 1 Introdução 3 Recomendadores Flickr Problema Conceitos Coleta de dados 2 Framework Objetivos Caracterização dos relacionamentos Contribuições da web Avaliação das possibilidades de recomendações semântica Grupos para fotos Modelagem da rede Grupos para fotos utilizando conteúdo visual social e tarefas de Grupos para usuários recomendação Usuários para usuários Realização de Fotos para usuários experimentos 4 Conclusão Resultados e contribuições Trabalhos futuros
  • 12. Introdução Framework Recomendadores Flickr Conclusão Objetivos Objetivos da framework proposta Permitir uma caracterização clara e sistemática das possibilidades de recomendação no contexto de uma rede social online, baseado em ontologias abertas para a descrição desses conteúdos Software que permite a instanciação de uma classe de recomendadores baseado na extensão das relações comuns entre entidades básicas presentes em diversos serviços de mídia e rede social
  • 13. Introdução Framework Recomendadores Flickr Conclusão Objetivos Trabalhos relacionados: Frameworks para avaliação de recomendadores [Herlocker, 99] sugere que as abordagens atuais para avaliação de sistemas recomendadores podem ser divididas em duas categorias: o-line ou on-line. A framework para avaliação proposta em [Fisher, 00] é composta de três componentes: um motor de predição, um sistema de avaliação e um componente de visualização de resultados Revisão completa dos conceitos teóricos e métricas para avaliação de recomendadores podem ser encontrados em [Herlocker, 04]
  • 14. Introdução Framework Recomendadores Flickr Conclusão Objetivos Trabalhos relacionados: Recomendadores para redes sociais Em [Liu, 06] o conteúdo textual de 100k pers de usuários de uma rede social foram capturados e os principais termos mapeados em uma ontologia abrangente de música, livros, lmes etc. Usa técnicas de aprendizagem de máquina para inferir o perl de gostos dos usuários. Apresenta técnicas reusáveis para mineração semântica de comunidades online. [Zheng, 07] compara métodos para ltragem colaborativa usando dados explícitos da rede social de consumidores do site Amazon.com. Nele são examinadas duas maneiras para incorporar informações da rede social em ltragem colaborativa. [Seth, 08] propõe e avalia um sistema recomendador de conteúdo social baseado na modelagem bayesiana dos relacionamentos usuário-usuário e usuário-item.
  • 15. Introdução Framework Recomendadores Flickr Conclusão Contribuições da web semântica Principais classes e propriedades da ontologia SIOC-Core
  • 16. Introdução Framework Recomendadores Flickr Conclusão Contribuições da web semântica Benefícios em tempo de ... modelagem e análise: recorrente necessidade de identicar e formalizar as principais entidades da rede social. Servem também como auxílio na identicação das possíveis tarefas de recomendação execução: reuso de mecanismos e técnicas para cálculo das recomendações e apresentação dos resultados treinamento e manutenção: codicação e troca de informações entre os diversos sistemas produtores e consumidores de mídia social, implicando em maior quantidade de dados para treinamento
  • 17. Introdução Framework Recomendadores Flickr Conclusão Contribuições da web semântica Relação entre recomendadores, agregadores e redes sociais
  • 18. Introdução Framework Recomendadores Flickr Conclusão Contribuições da web semântica Trabalhos relacionados: Uso de ontologias para construção de recomendadores em redes sociais [Bouza, 08] aprendizagem de uma árvore de decisão baseada em ontologias [Passant, 08] detalha como redes sociais e contribuições de usuários interligadas pela iniciativa LODR3 podem ser combinadas em recomendadores híbridos 3 http://lodr.info/
  • 19. Introdução Framework Recomendadores Flickr Conclusão Modelagem da rede social e tarefas de recomendação Possibilidades de recomendação na ontologia SIOC-Core
  • 20. Introdução Framework Recomendadores Flickr Conclusão Modelagem da rede social e tarefas de recomendação Exemplo de modelagem: Last.fm
  • 21. Introdução Framework Recomendadores Flickr Conclusão Modelagem da rede social e tarefas de recomendação Exemplo de modelagem: Orkut
  • 22. Introdução Framework Recomendadores Flickr Conclusão Realização de experimentos Fluxo de dados
  • 23. Introdução Framework Recomendadores Flickr Conclusão Visão geral 1 Introdução 3 Recomendadores Flickr Problema Conceitos 2 Framework Coleta de dados Objetivos Caracterização dos relacionamentos Contribuições da web Avaliação das possibilidades de recomendações semântica Grupos para fotos Modelagem da rede Grupos para fotos utilizando conteúdo visual social e tarefas de Grupos para usuários recomendação Usuários para usuários Realização de Fotos para usuários experimentos 4 Conclusão Resultados e contribuições Trabalhos futuros
  • 24. Introdução Framework Recomendadores Flickr Conclusão Conceitos Entidades e relacionamentos
  • 25. Introdução Framework Recomendadores Flickr Conclusão Conceitos Motivos para escolha da rede Flickr API pública, bibliotecas disponíveis em diversas linguagens. Acesso às principais entidades do sistema maduro: começou a operar em 2001 e conta 3B+ fotos disponibilização do conteúdo dos itens possibilita experimentos baseado em conteúdo interessante: amplamente compreendido pelo público em geral: maior facilidade para testes com usuários
  • 26. Introdução Framework Recomendadores Flickr Conclusão Coleta de dados Obtenção de relacionamentos Flickr a partir de fotos interessantes aleatórias Saída: fgu = lista de tuplas (grupo, usuario) Saída: fgp = lista de tuplas (grupo, foto) Saída: fup = lista de tuplas (usuario, foto) Saída: fuf = lista de tuplas (usuario, fotofavorita) Saída: fgt = lista de tuplas (grupo, tag, ocorrencias) Saída: fuft = lista de tuplas (usuario, tag, ocorrencias) 1 para cada foto ∈ API.lista de fotos interessantes() faça 2 ownerId = usuario que submeteu foto 3 para cada  ∈ API.lista de fotos favoritas(ownerId) faça 4 fuf ← (ownerId, id de  ) 5 para cada t ∈ API.tags da foto( ) faça 6 fuft ← (ownerId, id de t, ocorrencias de t) 7 para cada g ∈ API.grupos do usuario(ownerId) faça 8 fgu ← (ownerId, id de g) 9 para cada f ∈ API.fotos do grupo(g) faça 10 fgp ← (id de g, id de f ) 11 fup ← (ownerId, id de f ) 12 para cada t ∈ API.tags da foto(f ) faça 13 fgt ← (id de g, id de t, ocorrencias de t)
  • 27. Introdução Framework Recomendadores Flickr Conclusão Coleta de dados Obtenção de relacionamentos Flickr a partir de fotos interessantes aleatórias Saída: fgu = lista de tuplas (grupo, usuario) Saída: fgp = lista de tuplas (grupo, foto) Saída: fup = lista de tuplas (usuario, foto) Saída: fuf = lista de tuplas (usuario, fotofavorita) Saída: fgt = lista de tuplas (grupo, tag, ocorrencias) Saída: fuft = lista de tuplas (usuario, tag, ocorrencias) 1 para cada foto ∈ API.lista de fotos interessantes() faça 2 ownerId = usuario que submeteu foto 3 para cada  ∈ API.lista de fotos favoritas(ownerId) faça 4 fuf ← (ownerId, id de  ) 5 para cada t ∈ API.tags da foto( ) faça 6 fuft ← (ownerId, id de t, ocorrencias de t) 7 para cada g ∈ API.grupos do usuario(ownerId) faça 8 fgu ← (ownerId, id de g) 9 para cada f ∈ API.fotos do grupo(g) faça 10 fgp ← (id de g, id de f ) 11 fup ← (ownerId, id de f ) 12 para cada t ∈ API.tags da foto(f ) faça 13 fgt ← (id de g, id de t, ocorrencias de t)
  • 28. Introdução Framework Recomendadores Flickr Conclusão Coleta de dados Obtenção de relacionamentos Flickr a partir de fotos interessantes aleatórias Saída: fgu = lista de tuplas (grupo, usuario) Saída: fgp = lista de tuplas (grupo, foto) Saída: fup = lista de tuplas (usuario, foto) Saída: fuf = lista de tuplas (usuario, fotofavorita) Saída: fgt = lista de tuplas (grupo, tag, ocorrencias) Saída: fuft = lista de tuplas (usuario, tag, ocorrencias) 1 para cada foto ∈ API.lista de fotos interessantes() faça 2 ownerId = usuario que submeteu foto 3 para cada  ∈ API.lista de fotos favoritas(ownerId) faça 4 fuf ← (ownerId, id de  ) 5 para cada t ∈ API.tags da foto( ) faça 6 fuft ← (ownerId, id de t, ocorrencias de t) 7 para cada g ∈ API.grupos do usuario(ownerId) faça 8 fgu ← (ownerId, id de g) 9 para cada f ∈ API.fotos do grupo(g) faça 10 fgp ← (id de g, id de f ) 11 fup ← (ownerId, id de f ) 12 para cada t ∈ API.tags da foto(f ) faça 13 fgt ← (id de g, id de t, ocorrencias de t)
  • 29. Introdução Framework Recomendadores Flickr Conclusão Coleta de dados Obtenção de relacionamentos Flickr a partir de fotos interessantes aleatórias Saída: fgu = lista de tuplas (grupo, usuario) Saída: fgp = lista de tuplas (grupo, foto) Saída: fup = lista de tuplas (usuario, foto) Saída: fuf = lista de tuplas (usuario, fotofavorita) Saída: fgt = lista de tuplas (grupo, tag, ocorrencias) Saída: fuft = lista de tuplas (usuario, tag, ocorrencias) 1 para cada foto ∈ API.lista de fotos interessantes() faça 2 ownerId = usuario que submeteu foto 3 para cada  ∈ API.lista de fotos favoritas(ownerId) faça 4 fuf ← (ownerId, id de  ) 5 para cada t ∈ API.tags da foto( ) faça 6 fuft ← (ownerId, id de t, ocorrencias de t) 7 para cada g ∈ API.grupos do usuario(ownerId) faça 8 fgu ← (ownerId, id de g) 9 para cada f ∈ API.fotos do grupo(g) faça 10 fgp ← (id de g, id de f ) 11 fup ← (ownerId, id de f ) 12 para cada t ∈ API.tags da foto(f ) faça 13 fgt ← (id de g, id de t, ocorrencias de t)
  • 30. Introdução Framework Recomendadores Flickr Conclusão Coleta de dados Obtenção de relacionamentos Flickr a partir de fotos interessantes aleatórias Saída: fgu = lista de tuplas (grupo, usuario) Saída: fgp = lista de tuplas (grupo, foto) Saída: fup = lista de tuplas (usuario, foto) Saída: fuf = lista de tuplas (usuario, fotofavorita) Saída: fgt = lista de tuplas (grupo, tag, ocorrencias) Saída: fuft = lista de tuplas (usuario, tag, ocorrencias) 1 para cada foto ∈ API.lista de fotos interessantes() faça 2 ownerId = usuario que submeteu foto 3 para cada  ∈ API.lista de fotos favoritas(ownerId) faça 4 fuf ← (ownerId, id de  ) 5 para cada t ∈ API.tags da foto( ) faça 6 fuft ← (ownerId, id de t, ocorrencias de t) 7 para cada g ∈ API.grupos do usuario(ownerId) faça 8 fgu ← (ownerId, id de g) 9 para cada f ∈ API.fotos do grupo(g) faça 10 fgp ← (id de g, id de f ) 11 fup ← (ownerId, id de f ) 12 para cada t ∈ API.tags da foto(f ) faça 13 fgt ← (id de g, id de t, ocorrencias de t)
  • 31. Introdução Framework Recomendadores Flickr Conclusão Coleta de dados Obtenção de relacionamentos Flickr a partir de fotos interessantes aleatórias Saída: fgu = lista de tuplas (grupo, usuario) Saída: fgp = lista de tuplas (grupo, foto) Saída: fup = lista de tuplas (usuario, foto) Saída: fuf = lista de tuplas (usuario, fotofavorita) Saída: fgt = lista de tuplas (grupo, tag, ocorrencias) Saída: fuft = lista de tuplas (usuario, tag, ocorrencias) 1 para cada foto ∈ API.lista de fotos interessantes() faça 2 ownerId = usuario que submeteu foto 3 para cada  ∈ API.lista de fotos favoritas(ownerId) faça 4 fuf ← (ownerId, id de  ) 5 para cada t ∈ API.tags da foto( ) faça 6 fuft ← (ownerId, id de t, ocorrencias de t) 7 para cada g ∈ API.grupos do usuario(ownerId) faça 8 fgu ← (ownerId, id de g) 9 para cada f ∈ API.fotos do grupo(g) faça 10 fgp ← (id de g, id de f ) 11 fup ← (ownerId, id de f ) 12 para cada t ∈ API.tags da foto(f ) faça 13 fgt ← (id de g, id de t, ocorrencias de t)
  • 32. Introdução Framework Recomendadores Flickr Conclusão Coleta de dados Volume de dados coletados Volume de dados Tupla de identicadores em cada linha 1,9G grupos: 15,6 mil tags: 12,3 milhões 81M usuários: 110 mil fotos: 1,15 milhões 129M grupos: 15,6 mil fotos: 1,59 milhões 42M usuários: 141 mil tags: 229 mil 98M usuários: 127 mil usuários: 893 mil 43M usuários: 51,5 mil fotos favoritas: 1,47 milhões
  • 33. Introdução Framework Recomendadores Flickr Conclusão Caracterização dos relacionamentos Número de grupos onde determinada foto faz parte
  • 34. Introdução Framework Recomendadores Flickr Conclusão Caracterização dos relacionamentos Número de fotos que fazem parte de determinado grupo
  • 35. Introdução Framework Recomendadores Flickr Conclusão Caracterização dos relacionamentos Freqüência de fotos favoritas por usuário
  • 36. Introdução Framework Recomendadores Flickr Conclusão Caracterização dos relacionamentos Freqüência de usuários por foto favoritada
  • 37. Introdução Framework Recomendadores Flickr Conclusão Caracterização dos relacionamentos Trabalhos relacionados [Pissard, 07] aspectos sociais e metodologia para análise das redes de usuários, caracterizando temáticas de grupos [Sigurbjornsson, 08] e [Garg, 08] fazem análises de uma massa representativa de dados e caracterizam tags usadas pelos usuários para descrever fotograas [Prieur, 08] principais estatísticas observadas numa massa de dados considerável de usuários (5 milhões), fotos (150 milhões) e outras entidades. Procedimentos empregados pelos usuários para selecionar itens de qualidade e como se formam comunidades
  • 38. Introdução Framework Recomendadores Flickr Conclusão Avaliação das possibilidades de recomendações Possibilidades de recomendação na rede social Flickr
  • 39. Introdução Framework Recomendadores Flickr Conclusão Avaliação das possibilidades de recomendações Experimentos realizados
  • 40. Introdução Framework Recomendadores Flickr Conclusão Grupos para fotos Avaliação de algoritmos de recomendação Entrada: inData = lista de tuplas (usurio, item) /* usuário é a entidade que deseja recomendações e item a entidade recomendada */ Entrada: nRec = número de recomendações feitas por tentativa Saída: resultados = lista de tuplas (taxaAcerto, parmetro1, parmetro2) 1 repita 2 selData = subconjunto de tamanho aleatório de inData 3 para cada usuario ∈ selData faça 4 escolhe uma tupla (usurio, item) de selData e esconde 5 até obter quantidade adequada de dados para treinamento 6 parametro1 = valor aleatório dentre os possíveis 7 parametro2 = valor aleatório dentre os possíveis 8 inicializa modelo de recomendação com selData, parametro1, parametro2 9 acertos = 0 10 tentativas = 0 11 para cada usuario ∈ selData faça 12 calcula nRec sugestões de itens para usuario 13 se alguma sugestão concorda com itens escondidos de usuario então 14 acertos++ 15 tentativas++ 16 adiciona tupla (acertos/tentativas, parametro1, parametro2) a resultados
  • 41. Introdução Framework Recomendadores Flickr Conclusão Grupos para fotos Avaliação de algoritmos de recomendação Entrada: inData = lista de tuplas (usurio, item) /* usuário é a entidade que deseja recomendações e item a entidade recomendada */ Entrada: nRec = número de recomendações feitas por tentativa Saída: resultados = lista de tuplas (taxaAcerto, parmetro1, parmetro2) 1 repita 2 selData = subconjunto de tamanho aleatório de inData 3 para cada usuario ∈ selData faça 4 escolhe uma tupla (usurio, item) de selData e esconde 5 até obter quantidade adequada de dados para treinamento 6 parametro1 = valor aleatório dentre os possíveis 7 parametro2 = valor aleatório dentre os possíveis 8 inicializa modelo de recomendação com selData, parametro1, parametro2 9 acertos = 0 10 tentativas = 0 11 para cada usuario ∈ selData faça 12 calcula nRec sugestões de itens para usuario 13 se alguma sugestão concorda com itens escondidos de usuario então 14 acertos++ 15 tentativas++ 16 adiciona tupla (acertos/tentativas, parametro1, parametro2) a resultados
  • 42. Introdução Framework Recomendadores Flickr Conclusão Grupos para fotos Avaliação de algoritmos de recomendação Entrada: inData = lista de tuplas (usurio, item) /* usuário é a entidade que deseja recomendações e item a entidade recomendada */ Entrada: nRec = número de recomendações feitas por tentativa Saída: resultados = lista de tuplas (taxaAcerto, parmetro1, parmetro2) 1 repita 2 selData = subconjunto de tamanho aleatório de inData 3 para cada usuario ∈ selData faça 4 escolhe uma tupla (usurio, item) de selData e esconde 5 até obter quantidade adequada de dados para treinamento 6 parametro1 = valor aleatório dentre os possíveis 7 parametro2 = valor aleatório dentre os possíveis 8 inicializa modelo de recomendação com selData, parametro1, parametro2 9 acertos = 0 10 tentativas = 0 11 para cada usuario ∈ selData faça 12 calcula nRec sugestões de itens para usuario 13 se alguma sugestão concorda com itens escondidos de usuario então 14 acertos++ 15 tentativas++ 16 adiciona tupla (acertos/tentativas, parametro1, parametro2) a resultados
  • 43. Introdução Framework Recomendadores Flickr Conclusão Grupos para fotos Avaliação de algoritmos de recomendação Entrada: inData = lista de tuplas (usurio, item) /* usuário é a entidade que deseja recomendações e item a entidade recomendada */ Entrada: nRec = número de recomendações feitas por tentativa Saída: resultados = lista de tuplas (taxaAcerto, parmetro1, parmetro2) 1 repita 2 selData = subconjunto de tamanho aleatório de inData 3 para cada usuario ∈ selData faça 4 escolhe uma tupla (usurio, item) de selData e esconde 5 até obter quantidade adequada de dados para treinamento 6 parametro1 = valor aleatório dentre os possíveis 7 parametro2 = valor aleatório dentre os possíveis 8 inicializa modelo de recomendação com selData, parametro1, parametro2 9 acertos = 0 10 tentativas = 0 11 para cada usuario ∈ selData faça 12 calcula nRec sugestões de itens para usuario 13 se alguma sugestão concorda com itens escondidos de usuario então 14 acertos++ 15 tentativas++ 16 adiciona tupla (acertos/tentativas, parametro1, parametro2) a resultados
  • 44. Introdução Framework Recomendadores Flickr Conclusão Grupos para fotos Avaliação de algoritmos de recomendação Entrada: inData = lista de tuplas (usurio, item) /* usuário é a entidade que deseja recomendações e item a entidade recomendada */ Entrada: nRec = número de recomendações feitas por tentativa Saída: resultados = lista de tuplas (taxaAcerto, parmetro1, parmetro2) 1 repita 2 selData = subconjunto de tamanho aleatório de inData 3 para cada usuario ∈ selData faça 4 escolhe uma tupla (usurio, item) de selData e esconde 5 até obter quantidade adequada de dados para treinamento 6 parametro1 = valor aleatório dentre os possíveis 7 parametro2 = valor aleatório dentre os possíveis 8 inicializa modelo de recomendação com selData, parametro1, parametro2 9 acertos = 0 10 tentativas = 0 11 para cada usuario ∈ selData faça 12 calcula nRec sugestões de itens para usuario 13 se alguma sugestão concorda com itens escondidos de usuario então 14 acertos++ 15 tentativas++ 16 adiciona tupla (acertos/tentativas, parametro1, parametro2) a resultados
  • 45. Introdução Framework Recomendadores Flickr Conclusão Grupos para fotos Algoritmo TopN (a) @6 (b) @12
  • 46. Introdução Framework Recomendadores Flickr Conclusão Grupos para fotos Comparativo: grupos mais populares (a) @12 (b) @24
  • 47. Introdução Framework Recomendadores Flickr Conclusão Grupos para fotos utilizando conteúdo visual Semelhança visual entre imagens: assinaturas wavelet (a) 20 coefs. (b) 100 coefs. (c) 400 coefs. (d) 16k coefs. (ori- ginal)
  • 48. Introdução Framework Recomendadores Flickr Conclusão Grupos para fotos utilizando conteúdo visual Homogeneidade visual dos grupos (a) 210 grupos (b) 1248 grupos
  • 49. Introdução Framework Recomendadores Flickr Conclusão Grupos para fotos utilizando conteúdo visual Avaliação da recomendação de grupos para foto baseado em conteúdo visual Entrada: inData = lista de tuplas (foto, grupo) Entrada: sim(imagem, n) = comparador de imagens baseado em semelhança. Retorna as n imagens mais semelhantes à imagem passada Saída: tupla de resultado (taxaAcerto, nRec, simImages) 1 nRec = número de recomendações feitas (escolhida aleatoriamente) 2 simImagesNum = tamanho da vizinhança (imagens semelhantes) considerada (escolhida aleatoriamente) 3 acertos = 0 4 tentativas = 0 5 repita 6 imagem = imagem de inData (escolhida aleatoriamente) 7 imagensSemelhantes sim(imagem, simImageNum) = 8 gruposRecomendados = os nRec grupos mais comuns dentre os grupos que imagensSemelhantes pertençam 9 se imagem pertence de fato a algum dos grupos em gruposRecomendados então 10 acertos++ 11 tentativas++ 12 até obter quantidade adequada de resultados 13 retorna tupla (acertos/tentativas, nRec, simImages)
  • 50. Introdução Framework Recomendadores Flickr Conclusão Grupos para fotos utilizando conteúdo visual Avaliação da recomendação de grupos para foto baseado em conteúdo visual Entrada: inData = lista de tuplas (foto, grupo) Entrada: sim(imagem, n) = comparador de imagens baseado em semelhança. Retorna as n imagens mais semelhantes à imagem passada Saída: tupla de resultado (taxaAcerto, nRec, simImages) 1 nRec = número de recomendações feitas (escolhida aleatoriamente) 2 simImagesNum = tamanho da vizinhança (imagens semelhantes) considerada (escolhida aleatoriamente) 3 acertos = 0 4 tentativas = 0 5 repita 6 imagem = imagem de inData (escolhida aleatoriamente) 7 imagensSemelhantes sim(imagem, simImageNum) = 8 gruposRecomendados = os nRec grupos mais comuns dentre os grupos que imagensSemelhantes pertençam 9 se imagem pertence de fato a algum dos grupos em gruposRecomendados então 10 acertos++ 11 tentativas++ 12 até obter quantidade adequada de resultados 13 retorna tupla (acertos/tentativas, nRec, simImages)
  • 51. Introdução Framework Recomendadores Flickr Conclusão Grupos para fotos utilizando conteúdo visual Avaliação da recomendação de grupos para foto baseado em conteúdo visual Entrada: inData = lista de tuplas (foto, grupo) Entrada: sim(imagem, n) = comparador de imagens baseado em semelhança. Retorna as n imagens mais semelhantes à imagem passada Saída: tupla de resultado (taxaAcerto, nRec, simImages) 1 nRec = número de recomendações feitas (escolhida aleatoriamente) 2 simImagesNum = tamanho da vizinhança (imagens semelhantes) considerada (escolhida aleatoriamente) 3 acertos = 0 4 tentativas = 0 5 repita 6 imagem = imagem de inData (escolhida aleatoriamente) 7 imagensSemelhantes sim(imagem, simImageNum) = 8 gruposRecomendados = os nRec grupos mais comuns dentre os grupos que imagensSemelhantes pertençam 9 se imagem pertence de fato a algum dos grupos em gruposRecomendados então 10 acertos++ 11 tentativas++ 12 até obter quantidade adequada de resultados 13 retorna tupla (acertos/tentativas, nRec, simImages)
  • 52. Introdução Framework Recomendadores Flickr Conclusão Grupos para fotos utilizando conteúdo visual Avaliação da recomendação de grupos para foto baseado em conteúdo visual Entrada: inData = lista de tuplas (foto, grupo) Entrada: sim(imagem, n) = comparador de imagens baseado em semelhança. Retorna as n imagens mais semelhantes à imagem passada Saída: tupla de resultado (taxaAcerto, nRec, simImages) 1 nRec = número de recomendações feitas (escolhida aleatoriamente) 2 simImagesNum = tamanho da vizinhança (imagens semelhantes) considerada (escolhida aleatoriamente) 3 acertos = 0 4 tentativas = 0 5 repita 6 imagem = imagem de inData (escolhida aleatoriamente) 7 imagensSemelhantes sim(imagem, simImageNum) = 8 gruposRecomendados = os nRec grupos mais comuns dentre os grupos que imagensSemelhantes pertençam 9 se imagem pertence de fato a algum dos grupos em gruposRecomendados então 10 acertos++ 11 tentativas++ 12 até obter quantidade adequada de resultados 13 retorna tupla (acertos/tentativas, nRec, simImages)
  • 53. Introdução Framework Recomendadores Flickr Conclusão Grupos para fotos utilizando conteúdo visual Avaliação da recomendação de grupos para foto baseado em conteúdo visual Entrada: inData = lista de tuplas (foto, grupo) Entrada: sim(imagem, n) = comparador de imagens baseado em semelhança. Retorna as n imagens mais semelhantes à imagem passada Saída: tupla de resultado (taxaAcerto, nRec, simImages) 1 nRec = número de recomendações feitas (escolhida aleatoriamente) 2 simImagesNum = tamanho da vizinhança (imagens semelhantes) considerada (escolhida aleatoriamente) 3 acertos = 0 4 tentativas = 0 5 repita 6 imagem = imagem de inData (escolhida aleatoriamente) 7 imagensSemelhantes sim(imagem, simImageNum) = 8 gruposRecomendados = os nRec grupos mais comuns dentre os grupos que imagensSemelhantes pertençam 9 se imagem pertence de fato a algum dos grupos em gruposRecomendados então 10 acertos++ 11 tentativas++ 12 até obter quantidade adequada de resultados 13 retorna tupla (acertos/tentativas, nRec, simImages)
  • 54. Introdução Framework Recomendadores Flickr Conclusão Grupos para fotos utilizando conteúdo visual Resultados
  • 55. Introdução Framework Recomendadores Flickr Conclusão Grupos para fotos utilizando conteúdo visual Trabalhos relacionados [Kim, 04] apresenta um recomendador de conteúdo visual para aplicativos web móveis, melhorando resultados de FC
  • 56. Introdução Framework Recomendadores Flickr Conclusão Grupos para usuários Desempenho da recomendação usando algoritmo TopN (a) @12 (b) @24
  • 57. Introdução Framework Recomendadores Flickr Conclusão Grupos para usuários Comparativo: grupos mais populares (a) @12 (b) @24
  • 58. Introdução Framework Recomendadores Flickr Conclusão Usuários para usuários Protótipo online4 : co-ocorrência de tags em fotos u = (t1 , t2 , ..., tn ), n = |T | (1) u1 · u2 δ(u1 , u2 ) = cos(u1 , u2 ) = (2) u1 · u2 4 http://server2.tecweb.inf.puc-rio.br:8080/
  • 59. Introdução Framework Recomendadores Flickr Conclusão Usuários para usuários Experimento com ltragem colaborativa (@24) (a) Top-N (b) comparativo naïve (usuários com mais contatos)
  • 60. Introdução Framework Recomendadores Flickr Conclusão Fotos para usuários Experimento com ltragem colaborativa (@24) (b) comparativo naïve (fotos (a) fotos populares (favoritas) mais favoritadas globalmente) entre contatos
  • 61. Introdução Framework Recomendadores Flickr Conclusão Fotos para usuários Experimento com ltragem colaborativa TopN (@24)
  • 62. Introdução Framework Recomendadores Flickr Conclusão Fotos para usuários Resumo dos experimentos na rede Flickr Tarefa Algoritmo Rank Precisão 6 0,2 TopN 12 0,2 Grupo para foto Grupos populares 12 0,054 24 0,085 Conteúdo visual 12 0,14 40 0,30 12 0,32 TopN Grupo para usuário 24 0,45 Grupos populares 12 0,14 24 0,24 Usuário para usuário 24 0,56 TopN usuários populares 24 0,275 24 0,13 TopN Foto para usuário Populares entre contatos 24 0,08 Fotos populares 24 0,054
  • 63. Introdução Framework Recomendadores Flickr Conclusão Fotos para usuários Resumo dos experimentos na rede Flickr Tarefa Algoritmo Rank Precisão 6 0,2 TopN 12 0,2 Grupos populares Grupo para foto 12 0,054 24 0,085 Conteúdo visual 12 0,14 40 0,30 12 0,32 TopN Grupo para usuário 24 0,45 Grupos populares 12 0,14 24 0,24 Usuário para usuário 24 0,56 TopN usuários populares 24 0,275 24 0,13 TopN Foto para usuário Populares entre contatos 24 0,08 Fotos populares 24 0,054
  • 64. Introdução Framework Recomendadores Flickr Conclusão Fotos para usuários Resumo dos experimentos na rede Flickr Tarefa Algoritmo Rank Precisão 6 0,2 TopN 12 0,2 Grupo para foto Grupos populares 12 0,054 24 0,085 Conteúdo visual 12 0,14 40 0,30 12 0,32 TopN Grupo para usuário 24 0,45 Grupos populares 12 0,14 24 0,24 Usuário para usuário 24 0,56 TopN usuários populares 24 0,275 24 0,13 TopN Foto para usuário Populares entre contatos 24 0,08 Fotos populares 24 0,054
  • 65. Introdução Framework Recomendadores Flickr Conclusão Fotos para usuários Resumo dos experimentos na rede Flickr Tarefa Algoritmo Rank Precisão 6 0,2 TopN 12 0,2 Grupo para foto Grupos populares 12 0,054 24 0,085 Conteúdo visual 12 0,14 40 0,30 12 0,32 TopN Grupo para usuário 24 0,45 Grupos populares 12 0,14 24 0,24 24 0,56 TopN Usuário para usuário usuários populares 24 0,275 24 0,13 TopN Foto para usuário Populares entre contatos 24 0,08 Fotos populares 24 0,054
  • 66. Introdução Framework Recomendadores Flickr Conclusão Fotos para usuários Resumo dos experimentos na rede Flickr Tarefa Algoritmo Rank Precisão 6 0,2 TopN 12 0,2 Grupo para foto Grupos populares 12 0,054 24 0,085 Conteúdo visual 12 0,14 40 0,30 12 0,32 TopN Grupo para usuário 24 0,45 Grupos populares 12 0,14 24 0,24 Usuário para usuário 24 0,56 TopN usuários populares 24 0,275 24 0,13 TopN Populares entre contatos 24 0,08 Foto para usuário Fotos populares 24 0,054
  • 67. Introdução Framework Recomendadores Flickr Conclusão Visão geral 1 Introdução 3 Recomendadores Flickr Problema Conceitos 2 Framework Coleta de dados Objetivos Caracterização dos relacionamentos Contribuições da web Avaliação das possibilidades de recomendações semântica Grupos para fotos Modelagem da rede Grupos para fotos utilizando conteúdo visual social e tarefas de Grupos para usuários recomendação Usuários para usuários Realização de Fotos para usuários experimentos 4 Conclusão Resultados e contribuições Trabalhos futuros
  • 68. Introdução Framework Recomendadores Flickr Conclusão Resultados e contribuições descrições quantitativas dos relacionamentos entre itens da rede Flickr análise de algoritmos de recomendação para redes sociais online medidas de desempenho do algoritmo Top-N para ltragem colaborativa no Flickr comparativo de recomendadores no Flickr: ltragem colaborativa versus abordagem orientada a conteúdo visual framework para estudo de recomendadores em redes sociais estudo do uso de ontologias para mídias sociais em recomendadores: modelagem, execução, treinamento e manutenção modelagem, identicação e discussão das principais tarefas de recomendação para os serviços Flickr, Last.fm e Orkut
  • 69. Introdução Framework Recomendadores Flickr Conclusão Trabalhos futuros aprofundar experimentos realizados e investigar demais possibilidades de recomendação na rede Flickr aplicar a framework proposta em outras rede sociais online como Facebook.com, LinkedIn.com ou em redes sociais tradicionais melhorar a notação gráca proposta para a modelagem das possibilidades de recomendação expandir o uso das ferramentas desenvolvidas abrindo seu código e provendo mais exemplos, interfaces e implementações realizar mais experimentos com avaliação online de usuários experimentar recomendadores híbridos para melhorar o recomendador genérico da framework
  • 70. Introdução Framework Recomendadores Flickr Conclusão Trabalhos futuros Contexto Flickr completo5 5 crédito: http://soldierant.net/
  • 71. Introdução Framework Recomendadores Flickr Conclusão Trabalhos futuros Referências I RESNICK, P.; VARIAN, H. R.. Recommender systems. Commun. ACM, 40(3):5658, 1997. HERLOCKER, J. L.; KONSTAN, J. A.; TERVEEN, L. G. ; RIEDL, J. T.. Evaluating collaborative ltering recommender systems. In: ACM TRANS. INF. SYST., volumen 22, p. 553, New York, NY, USA, 2004. ACM Press. HERLOCKER, J. L.; KONSTAN, J. A.; BORCHERS, A. ; RIEDL, J.. An algorithmic framework for performing collaborative ltering. In: SIGIR '99: PROCEEDINGS OF THE 22ND ANNUAL INTERNATIONAL ACM SIGIR CONFERENCE ON RESEARCH AND DEVELOPMENT IN INFORMATION RETRIEVAL, p. 230237, New York, NY, USA, 1999. ACM Press. FISHER, D.; HILDRUM, K.; HONG, J.; NEWMAN, M.; THOMAS, M. ; VUDUC, R.. SWAMI: a framework for collaborative ltering algorithm developmen and evaluation. In: RESEARCH AND DEVELOPMENT IN INFORMATION RETRIEVAL, p. 366368, 2000. SETH, A.; ZHANG, J.. A social network based approach to personalized recommendation of participatory media content. In: INT. CONF. ON WEBLOGS AND SOCIAL MEDIA (ICWSM), Seattle, 2008. HECKERMAN, D.. A tutorial on learning with bayesian networks. Technical report, Microsoft Research, Redmond, Washington, 1995.
  • 72. Introdução Framework Recomendadores Flickr Conclusão Trabalhos futuros Referências II LIU, H.; MAES, P. ; DAVENPORT, G.. Unraveling the taste fabric of social networks. International Journal on Semantic Web and Information Systems, 2(1):4271, 2006. ZHENG, R.; PROVOST, F. ; GHOSE, A.. Social network collaborative ltering. IOMS: Information Systems Working Papers, 2007. KIM, C. Y.; LEE, J. K.; CHO, Y. H. ; KIM, D. H.. Viscors: A visual-content recommender for the mobile web. IEEE Intelligent Systems, 19(6):3239, 2004. KWON, O. B.. I know what you need to buy: context-aware multimedia-based recommendation system. Expert Syst. Appl., 25(3):387400, 2003. SIGURBJORNSSON, B.; VAN ZWOL, R.. Flickr tag recommendation based on collective knowledge. In: WWW '08: PROCEEDING OF THE 17TH INTERNATIONAL CONFERENCE ON WORLD WIDE WEB, p. 327336, New York, NY, USA, 2008. ACM. GARG, N.; WEBER, I.. Personalized tag suggestion for ickr. In: PROCEEDINGS OF THE 17TH INTERNATIONAL WORLD WIDE WEB CONFERENCE, 2008.
  • 73. Introdução Framework Recomendadores Flickr Conclusão Trabalhos futuros Referências III NICOLAS PISSARD, C. P.. Thematic vs. social networks in web 2.0 communities: A case study on ickr groups. 2007. PRIEUR, C.; CARDON, D.; BEUSCART, J.-S.; PISSARD, N. ; PONS, P.. The strength of weak cooperation: A case study on ickr, Feb 2008. BOUZA, A.; REIF, G.; BERNSTEIN, A. ; GALL, H.. Semtree: Ontology-based decision tree algorithm for recommender systems. In: Bizer, C.; Joshi, A., editors, INTERNATIONAL SEMANTIC WEB CONFERENCE, volumen 401 de CEUR Workshop Proceedings. CEUR-WS.org, 2008. PASSANT, A.; RAIMOND, Y.. Combining social music and semantic web for music-related recommender systems. 2008.