um estudo de recomendadores baseados em conteúdo e redes sociais
DESCRIPTION
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.TRANSCRIPT
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
Introdução Framework Recomendadores Flickr Conclusão
Visão geral
1 Introdução
Problema2 Framework
ObjetivosContribuições da websemânticaModelagem da redesocial e tarefas derecomendaçãoRealização deexperimentos
3 Recomendadores Flickr
ConceitosColeta de dadosCaracterização dos relacionamentosAvaliação das possibilidades de recomendaçõesGrupos para fotosGrupos para fotos utilizando conteúdo visualGrupos para usuáriosUsuários para usuáriosFotos para usuários
4 Conclusão
Resultados e contribuiçõesTrabalhos futuros
Introdução Framework Recomendadores Flickr Conclusão
Visão geral
1 Introdução
Problema2 Framework
ObjetivosContribuições da websemânticaModelagem da redesocial e tarefas derecomendaçãoRealização deexperimentos
3 Recomendadores FlickrConceitosColeta de dadosCaracterização dos relacionamentosAvaliação das possibilidades de recomendaçõesGrupos para fotosGrupos para fotos utilizando conteúdo visualGrupos para usuáriosUsuários para usuáriosFotos para usuários
4 ConclusãoResultados e contribuiçõesTrabalhos futuros
Introdução Framework Recomendadores Flickr Conclusão
Problema
Excesso de informação online
Volume de informações em forma digital1 em 2007: 281exabytes, em 2011: 10x isso
1,4 bi pessoas (14do mundo) na internet em 2008, em 2012:
1,9 bi
Recomendadores são uma resposta para tanta informação
1The Diverse and Exploding Digital Universe - IDC
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 pararecomendação. Por exemplo no Flickr, recomendar um grupopara uma foto, ou uma pessoa como contato para outra, ouuma foto para uma pessoa etc...
Oportunidade de usar conhecimento indireto disponível nasdiversas relações entre as entidades dessa rede
2http://�ickr.com e http://last.fm
Introdução Framework Recomendadores Flickr Conclusão
Problema
Recomendadores tradicionais
Baseados em �ltragem colaborativa existem há bastantetempo [Resnick, 97]
Dependem de alguma relação entre os indivíduos para obterconhecimento sobre os itens, além das relações diretas(similaridade) entre eles
Exemplos: quem comprou esse item comprou também..., quemdeu ratings parecidos com os seus anteriormente deram rating
X para esse item.
Introdução Framework Recomendadores Flickr Conclusão
Problema
Evolução dos sistemas que fazem uso de recomendadores
2001: Agentes inteligentes
Usuário interage comalgoritmos
Filtragem colaborativaem dados globais nãodiretamente acessíveisa todos
Foco em busca ouvendas
2008+: Hubs sociais
Usuário interage com outrosusuários
Frequentemente baseados em tags
Dados de outros usuários expostosem tempo real
Ajuda construção de rede social:interação é um diálogo com ousuário e não uma transação
Introdução Framework Recomendadores Flickr Conclusão
Problema
Evolução dos sistemas que fazem uso de recomendadores
2001: Agentes inteligentes
Usuário interage comalgoritmos
Filtragem colaborativaem dados globais nãodiretamente acessíveisa todos
Foco em busca ouvendas
2008+: Hubs sociais
Usuário interage com outrosusuários
Frequentemente baseados em tags
Dados de outros usuários expostosem tempo real
Ajuda construção de rede social:interação é um diálogo com ousuário e não uma transação
Introdução Framework Recomendadores Flickr Conclusão
Problema
Evolução dos sistemas que fazem uso de recomendadores
2001: Agentes inteligentes
Usuário interage comalgoritmos
Filtragem colaborativaem dados globais nãodiretamente acessíveisa todos
Foco em busca ouvendas
2008+: Hubs sociais
Usuário interage com outrosusuários
Frequentemente baseados em tags
Dados de outros usuários expostosem tempo real
Ajuda construção de rede social:interação é um diálogo com ousuário e não uma transação
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 derecomendação em redes sociais
Introdução Framework Recomendadores Flickr Conclusão
Visão geral
1 IntroduçãoProblema
2 Framework
ObjetivosContribuições da websemânticaModelagem da redesocial e tarefas derecomendaçãoRealização deexperimentos
3 Recomendadores FlickrConceitosColeta de dadosCaracterização dos relacionamentosAvaliação das possibilidades de recomendaçõesGrupos para fotosGrupos para fotos utilizando conteúdo visualGrupos para usuáriosUsuários para usuáriosFotos para usuários
4 ConclusãoResultados e contribuiçõesTrabalhos futuros
Introdução Framework Recomendadores Flickr Conclusão
Objetivos
Objetivos da framework proposta
Permitir uma caracterização clara e sistemática daspossibilidades de recomendação no contexto de uma redesocial online, baseado em ontologias abertas para a descriçãodesses conteúdos
Software que permite a instanciação de uma classe derecomendadores baseado na extensão das relações comunsentre entidades básicas presentes em diversos serviços de mídiae rede social
Introdução Framework Recomendadores Flickr Conclusão
Objetivos
Trabalhos relacionados: Frameworks para avaliação derecomendadores
[Herlocker, 99] sugere que as abordagens atuais para avaliaçãode sistemas recomendadores podem ser divididas em duascategorias: o�-line ou on-line.
A framework para avaliação proposta em [Fisher, 00] écomposta de três componentes: um motor de predição, umsistema de avaliação e um componente de visualização deresultados
Revisão completa dos conceitos teóricos e métricas paraavaliação de recomendadores podem ser encontrados em[Herlocker, 04]
Introdução Framework Recomendadores Flickr Conclusão
Objetivos
Trabalhos relacionados: Recomendadores para redes sociais
Em [Liu, 06] o conteúdo textual de 100k per�s de usuários deuma rede social foram capturados e os principais termosmapeados em uma ontologia abrangente de música, livros,�lmes etc. Usa técnicas de aprendizagem de máquina parainferir o per�l de gostos dos usuários. Apresenta técnicasreusáveis para mineração semântica de comunidades online.
[Zheng, 07] compara métodos para �ltragem colaborativausando dados explícitos da rede social de consumidores do siteAmazon.com. Nele são examinadas duas maneiras paraincorporar informações da rede social em �ltragemcolaborativa.
[Seth, 08] propõe e avalia um sistema recomendador deconteúdo social baseado na modelagem bayesiana dosrelacionamentos usuário-usuário e usuário-item.
Introdução Framework Recomendadores Flickr Conclusão
Contribuições da web semântica
Principais classes e propriedades da ontologia SIOC-Core
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 identi�car eformalizar as principais entidades da rede social.Servem também como auxílio na identi�cação daspossíveis tarefas de recomendação
execução: reuso de mecanismos e técnicas para cálculo dasrecomendações e apresentação dos resultados
treinamento e manutenção: codi�cação e troca de informaçõesentre os diversos sistemas produtores e consumidoresde mídia social, implicando em maior quantidade dedados para treinamento
Introdução Framework Recomendadores Flickr Conclusão
Contribuições da web semântica
Relação entre recomendadores, agregadores e redes sociais
Introdução Framework Recomendadores Flickr Conclusão
Contribuições da web semântica
Trabalhos relacionados: Uso de ontologias para construção derecomendadores em redes sociais
[Bouza, 08] aprendizagem de uma árvore de decisão baseadaem ontologias
[Passant, 08] detalha como redes sociais e contribuições deusuários interligadas pela iniciativa LODR3 podem sercombinadas em recomendadores híbridos
3http://lodr.info/
Introdução Framework Recomendadores Flickr Conclusão
Modelagem da rede social e tarefas de recomendação
Possibilidades de recomendação na ontologia SIOC-Core
Introdução Framework Recomendadores Flickr Conclusão
Modelagem da rede social e tarefas de recomendação
Exemplo de modelagem: Last.fm
Introdução Framework Recomendadores Flickr Conclusão
Modelagem da rede social e tarefas de recomendação
Exemplo de modelagem: Orkut
Introdução Framework Recomendadores Flickr Conclusão
Visão geral
1 IntroduçãoProblema
2 FrameworkObjetivosContribuições da websemânticaModelagem da redesocial e tarefas derecomendaçãoRealização deexperimentos
3 Recomendadores Flickr
ConceitosColeta de dadosCaracterização dos relacionamentosAvaliação das possibilidades de recomendaçõesGrupos para fotosGrupos para fotos utilizando conteúdo visualGrupos para usuáriosUsuários para usuáriosFotos para usuários
4 ConclusãoResultados e contribuiçõesTrabalhos futuros
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 experimentosbaseado em conteúdo
interessante: amplamente compreendido pelo público em geral:maior facilidade para testes com usuários
Introdução Framework Recomendadores Flickr Conclusão
Coleta de dados
Obtenção de relacionamentos Flickr a partir de fotos interessantesaleató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)para cada foto ∈ API.lista de fotos interessantes() faça1
ownerId = usuario que submeteu foto2para cada � ∈ API.lista de fotos favoritas(ownerId) faça3
fuf ← (ownerId , id de � )4para cada t ∈ API.tags da foto(� ) faça5
fuft ← (ownerId , id de t, ocorrencias de t)6
para cada g ∈ API.grupos do usuario(ownerId) faça7fgu ← (ownerId , id de g)8para cada f ∈ API.fotos do grupo(g) faça9
fgp ← (id de g , id de f )10fup ← (ownerId , id de f )11
para cada t ∈ API.tags da foto(f ) faça12fgt ← (id de g , id de t, ocorrencias de t)13
Introdução Framework Recomendadores Flickr Conclusão
Coleta de dados
Obtenção de relacionamentos Flickr a partir de fotos interessantesaleató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)para cada foto ∈ API.lista de fotos interessantes() faça1
ownerId = usuario que submeteu foto2para cada � ∈ API.lista de fotos favoritas(ownerId) faça3
fuf ← (ownerId , id de � )4para cada t ∈ API.tags da foto(� ) faça5
fuft ← (ownerId , id de t, ocorrencias de t)6
para cada g ∈ API.grupos do usuario(ownerId) faça7fgu ← (ownerId , id de g)8para cada f ∈ API.fotos do grupo(g) faça9
fgp ← (id de g , id de f )10fup ← (ownerId , id de f )11
para cada t ∈ API.tags da foto(f ) faça12fgt ← (id de g , id de t, ocorrencias de t)13
Introdução Framework Recomendadores Flickr Conclusão
Coleta de dados
Obtenção de relacionamentos Flickr a partir de fotos interessantesaleató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)para cada foto ∈ API.lista de fotos interessantes() faça1
ownerId = usuario que submeteu foto2para cada � ∈ API.lista de fotos favoritas(ownerId) faça3
fuf ← (ownerId , id de � )4para cada t ∈ API.tags da foto(� ) faça5
fuft ← (ownerId , id de t, ocorrencias de t)6
para cada g ∈ API.grupos do usuario(ownerId) faça7fgu ← (ownerId , id de g)8para cada f ∈ API.fotos do grupo(g) faça9
fgp ← (id de g , id de f )10fup ← (ownerId , id de f )11
para cada t ∈ API.tags da foto(f ) faça12fgt ← (id de g , id de t, ocorrencias de t)13
Introdução Framework Recomendadores Flickr Conclusão
Coleta de dados
Obtenção de relacionamentos Flickr a partir de fotos interessantesaleató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)para cada foto ∈ API.lista de fotos interessantes() faça1
ownerId = usuario que submeteu foto2para cada � ∈ API.lista de fotos favoritas(ownerId) faça3
fuf ← (ownerId , id de � )4para cada t ∈ API.tags da foto(� ) faça5
fuft ← (ownerId , id de t, ocorrencias de t)6
para cada g ∈ API.grupos do usuario(ownerId) faça7fgu ← (ownerId , id de g)8para cada f ∈ API.fotos do grupo(g) faça9
fgp ← (id de g , id de f )10fup ← (ownerId , id de f )11
para cada t ∈ API.tags da foto(f ) faça12fgt ← (id de g , id de t, ocorrencias de t)13
Introdução Framework Recomendadores Flickr Conclusão
Coleta de dados
Obtenção de relacionamentos Flickr a partir de fotos interessantesaleató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)para cada foto ∈ API.lista de fotos interessantes() faça1
ownerId = usuario que submeteu foto2para cada � ∈ API.lista de fotos favoritas(ownerId) faça3
fuf ← (ownerId , id de � )4para cada t ∈ API.tags da foto(� ) faça5
fuft ← (ownerId , id de t, ocorrencias de t)6
para cada g ∈ API.grupos do usuario(ownerId) faça7fgu ← (ownerId , id de g)8para cada f ∈ API.fotos do grupo(g) faça9
fgp ← (id de g , id de f )10fup ← (ownerId , id de f )11
para cada t ∈ API.tags da foto(f ) faça12fgt ← (id de g , id de t, ocorrencias de t)13
Introdução Framework Recomendadores Flickr Conclusão
Coleta de dados
Obtenção de relacionamentos Flickr a partir de fotos interessantesaleató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)para cada foto ∈ API.lista de fotos interessantes() faça1
ownerId = usuario que submeteu foto2para cada � ∈ API.lista de fotos favoritas(ownerId) faça3
fuf ← (ownerId , id de � )4para cada t ∈ API.tags da foto(� ) faça5
fuft ← (ownerId , id de t, ocorrencias de t)6
para cada g ∈ API.grupos do usuario(ownerId) faça7fgu ← (ownerId , id de g)8para cada f ∈ API.fotos do grupo(g) faça9
fgp ← (id de g , id de f )10fup ← (ownerId , id de f )11
para cada t ∈ API.tags da foto(f ) faça12fgt ← (id de g , id de t, ocorrencias de t)13
Introdução Framework Recomendadores Flickr Conclusão
Coleta de dados
Volume de dados coletados
Volume de dados Tupla de identi�cadores em cada linha
1,9G grupos: 15,6 mil tags: 12,3 milhões81M usuários: 110 mil fotos: 1,15 milhões
129M grupos: 15,6 mil fotos: 1,59 milhões42M usuários: 141 mil tags: 229 mil98M usuários: 127 mil usuários: 893 mil43M usuários: 51,5 mil fotos favoritas: 1,47 milhões
Introdução Framework Recomendadores Flickr Conclusão
Caracterização dos relacionamentos
Número de grupos onde determinada foto faz parte
Introdução Framework Recomendadores Flickr Conclusão
Caracterização dos relacionamentos
Número de fotos que fazem parte de determinado grupo
Introdução Framework Recomendadores Flickr Conclusão
Caracterização dos relacionamentos
Freqüência de fotos favoritas por usuário
Introdução Framework Recomendadores Flickr Conclusão
Caracterização dos relacionamentos
Freqüência de usuários por foto favoritada
Introdução Framework Recomendadores Flickr Conclusão
Caracterização dos relacionamentos
Trabalhos relacionados
[Pissard, 07] aspectos sociais e metodologia para análise dasredes de usuários, caracterizando temáticas de grupos
[Sigurbjornsson, 08] e [Garg, 08] fazem análises de uma massarepresentativa de dados e caracterizam tags usadas pelosusuários para descrever fotogra�as
[Prieur, 08] principais estatísticas observadas numa massa dedados considerável de usuários (5 milhões), fotos (150milhões) e outras entidades. Procedimentos empregados pelosusuários para selecionar itens de qualidade e como se formamcomunidades
Introdução Framework Recomendadores Flickr Conclusão
Avaliação das possibilidades de recomendações
Possibilidades de recomendação na rede social Flickr
Introdução Framework Recomendadores Flickr Conclusão
Avaliação das possibilidades de recomendações
Experimentos realizados
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 eitem a entidade recomendada */
Entrada: nRec = número de recomendações feitas por tentativaSaída: resultados = lista de tuplas (taxaAcerto, parmetro1, parmetro2)repita1
selData = subconjunto de tamanho aleatório de inData2para cada usuario ∈ selData faça3
escolhe uma tupla (usurio, item) de selData e esconde4
até obter quantidade adequada de dados para treinamento5parametro1 = valor aleatório dentre os possíveis6parametro2 = valor aleatório dentre os possíveis7inicializa modelo de recomendação com selData, parametro1, parametro28acertos = 09tentativas = 010para cada usuario ∈ selData faça11
calcula nRec sugestões de itens para usuario12se alguma sugestão concorda com itens escondidos de usuario então13
acertos++14
tentativas++15
adiciona tupla (acertos/tentativas, parametro1, parametro2) a resultados16
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 eitem a entidade recomendada */
Entrada: nRec = número de recomendações feitas por tentativaSaída: resultados = lista de tuplas (taxaAcerto, parmetro1, parmetro2)repita1
selData = subconjunto de tamanho aleatório de inData2para cada usuario ∈ selData faça3
escolhe uma tupla (usurio, item) de selData e esconde4
até obter quantidade adequada de dados para treinamento5parametro1 = valor aleatório dentre os possíveis6parametro2 = valor aleatório dentre os possíveis7inicializa modelo de recomendação com selData, parametro1, parametro28acertos = 09tentativas = 010para cada usuario ∈ selData faça11
calcula nRec sugestões de itens para usuario12se alguma sugestão concorda com itens escondidos de usuario então13
acertos++14
tentativas++15
adiciona tupla (acertos/tentativas, parametro1, parametro2) a resultados16
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 eitem a entidade recomendada */
Entrada: nRec = número de recomendações feitas por tentativaSaída: resultados = lista de tuplas (taxaAcerto, parmetro1, parmetro2)repita1
selData = subconjunto de tamanho aleatório de inData2para cada usuario ∈ selData faça3
escolhe uma tupla (usurio, item) de selData e esconde4
até obter quantidade adequada de dados para treinamento5parametro1 = valor aleatório dentre os possíveis6parametro2 = valor aleatório dentre os possíveis7inicializa modelo de recomendação com selData, parametro1, parametro28acertos = 09tentativas = 010para cada usuario ∈ selData faça11
calcula nRec sugestões de itens para usuario12se alguma sugestão concorda com itens escondidos de usuario então13
acertos++14
tentativas++15
adiciona tupla (acertos/tentativas, parametro1, parametro2) a resultados16
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 eitem a entidade recomendada */
Entrada: nRec = número de recomendações feitas por tentativaSaída: resultados = lista de tuplas (taxaAcerto, parmetro1, parmetro2)repita1
selData = subconjunto de tamanho aleatório de inData2para cada usuario ∈ selData faça3
escolhe uma tupla (usurio, item) de selData e esconde4
até obter quantidade adequada de dados para treinamento5parametro1 = valor aleatório dentre os possíveis6parametro2 = valor aleatório dentre os possíveis7inicializa modelo de recomendação com selData, parametro1, parametro28acertos = 09tentativas = 010para cada usuario ∈ selData faça11
calcula nRec sugestões de itens para usuario12se alguma sugestão concorda com itens escondidos de usuario então13
acertos++14
tentativas++15
adiciona tupla (acertos/tentativas, parametro1, parametro2) a resultados16
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 eitem a entidade recomendada */
Entrada: nRec = número de recomendações feitas por tentativaSaída: resultados = lista de tuplas (taxaAcerto, parmetro1, parmetro2)repita1
selData = subconjunto de tamanho aleatório de inData2para cada usuario ∈ selData faça3
escolhe uma tupla (usurio, item) de selData e esconde4
até obter quantidade adequada de dados para treinamento5parametro1 = valor aleatório dentre os possíveis6parametro2 = valor aleatório dentre os possíveis7inicializa modelo de recomendação com selData, parametro1, parametro28acertos = 09tentativas = 010para cada usuario ∈ selData faça11
calcula nRec sugestões de itens para usuario12se alguma sugestão concorda com itens escondidos de usuario então13
acertos++14
tentativas++15
adiciona tupla (acertos/tentativas, parametro1, parametro2) a resultados16
Introdução Framework Recomendadores Flickr Conclusão
Grupos para fotos
Algoritmo Top�N
(a) @6 (b) @12
Introdução Framework Recomendadores Flickr Conclusão
Grupos para fotos
Comparativo: grupos mais populares
(a) @12 (b) @24
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)
Introdução Framework Recomendadores Flickr Conclusão
Grupos para fotos utilizando conteúdo visual
Homogeneidade visual dos grupos
(a) 210 grupos (b) 1248 grupos
Introdução Framework Recomendadores Flickr Conclusão
Grupos para fotos utilizando conteúdo visual
Avaliação da recomendação de grupos para foto baseado emconteú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 passadaSaída: tupla de resultado (taxaAcerto, nRec, simImages)nRec = número de recomendações feitas (escolhida aleatoriamente)1simImagesNum = tamanho da vizinhança (imagens semelhantes) considerada (escolhida aleatoriamente)2acertos = 03tentativas = 04repita5
imagem = imagem de inData (escolhida aleatoriamente)6imagensSemelhantes = sim(imagem, simImageNum)7gruposRecomendados = os nRec grupos mais comuns dentre os grupos que imagensSemelhantes8pertençamse imagem pertence de fato a algum dos grupos em gruposRecomendados então9
acertos++10
tentativas++11
até obter quantidade adequada de resultados12retorna tupla (acertos/tentativas, nRec, simImages)13
Introdução Framework Recomendadores Flickr Conclusão
Grupos para fotos utilizando conteúdo visual
Avaliação da recomendação de grupos para foto baseado emconteú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 passadaSaída: tupla de resultado (taxaAcerto, nRec, simImages)nRec = número de recomendações feitas (escolhida aleatoriamente)1simImagesNum = tamanho da vizinhança (imagens semelhantes) considerada (escolhida aleatoriamente)2acertos = 03tentativas = 04repita5
imagem = imagem de inData (escolhida aleatoriamente)6imagensSemelhantes = sim(imagem, simImageNum)7gruposRecomendados = os nRec grupos mais comuns dentre os grupos que imagensSemelhantes8pertençamse imagem pertence de fato a algum dos grupos em gruposRecomendados então9
acertos++10
tentativas++11
até obter quantidade adequada de resultados12retorna tupla (acertos/tentativas, nRec, simImages)13
Introdução Framework Recomendadores Flickr Conclusão
Grupos para fotos utilizando conteúdo visual
Avaliação da recomendação de grupos para foto baseado emconteú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 passadaSaída: tupla de resultado (taxaAcerto, nRec, simImages)nRec = número de recomendações feitas (escolhida aleatoriamente)1simImagesNum = tamanho da vizinhança (imagens semelhantes) considerada (escolhida aleatoriamente)2acertos = 03tentativas = 04repita5
imagem = imagem de inData (escolhida aleatoriamente)6imagensSemelhantes = sim(imagem, simImageNum)7gruposRecomendados = os nRec grupos mais comuns dentre os grupos que imagensSemelhantes8pertençamse imagem pertence de fato a algum dos grupos em gruposRecomendados então9
acertos++10
tentativas++11
até obter quantidade adequada de resultados12retorna tupla (acertos/tentativas, nRec, simImages)13
Introdução Framework Recomendadores Flickr Conclusão
Grupos para fotos utilizando conteúdo visual
Avaliação da recomendação de grupos para foto baseado emconteú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 passadaSaída: tupla de resultado (taxaAcerto, nRec, simImages)nRec = número de recomendações feitas (escolhida aleatoriamente)1simImagesNum = tamanho da vizinhança (imagens semelhantes) considerada (escolhida aleatoriamente)2acertos = 03tentativas = 04repita5
imagem = imagem de inData (escolhida aleatoriamente)6imagensSemelhantes = sim(imagem, simImageNum)7gruposRecomendados = os nRec grupos mais comuns dentre os grupos que imagensSemelhantes8pertençamse imagem pertence de fato a algum dos grupos em gruposRecomendados então9
acertos++10
tentativas++11
até obter quantidade adequada de resultados12retorna tupla (acertos/tentativas, nRec, simImages)13
Introdução Framework Recomendadores Flickr Conclusão
Grupos para fotos utilizando conteúdo visual
Avaliação da recomendação de grupos para foto baseado emconteú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 passadaSaída: tupla de resultado (taxaAcerto, nRec, simImages)nRec = número de recomendações feitas (escolhida aleatoriamente)1simImagesNum = tamanho da vizinhança (imagens semelhantes) considerada (escolhida aleatoriamente)2acertos = 03tentativas = 04repita5
imagem = imagem de inData (escolhida aleatoriamente)6imagensSemelhantes = sim(imagem, simImageNum)7gruposRecomendados = os nRec grupos mais comuns dentre os grupos que imagensSemelhantes8pertençamse imagem pertence de fato a algum dos grupos em gruposRecomendados então9
acertos++10
tentativas++11
até obter quantidade adequada de resultados12retorna tupla (acertos/tentativas, nRec, simImages)13
Introdução Framework Recomendadores Flickr Conclusão
Grupos para fotos utilizando conteúdo visual
Resultados
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 paraaplicativos web móveis, melhorando resultados de FC
Introdução Framework Recomendadores Flickr Conclusão
Grupos para usuários
Desempenho da recomendação usando algoritmo Top�N
(a) @12 (b) @24
Introdução Framework Recomendadores Flickr Conclusão
Grupos para usuários
Comparativo: grupos mais populares
(a) @12 (b) @24
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) = cos( ~u1, ~u2) =~u1 · ~u2
‖ ~u1‖ · ‖ ~u2‖(2)
4http://server2.tecweb.inf.puc-rio.br:8080/
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árioscom mais contatos)
Introdução Framework Recomendadores Flickr Conclusão
Fotos para usuários
Experimento com �ltragem colaborativa (@24)
(a) fotos populares (favoritas)entre contatos
(b) comparativo naïve (fotosmais favoritadas globalmente)
Introdução Framework Recomendadores Flickr Conclusão
Fotos para usuários
Experimento com �ltragem colaborativa Top�N (@24)
Introdução Framework Recomendadores Flickr Conclusão
Fotos para usuários
Resumo dos experimentos na rede Flickr
Tarefa Algoritmo Rank Precisão
Top�N 6 0,212 0,2
Grupo para foto Grupos populares 12 0,05424 0,085
Conteúdo visual 12 0,1440 0,30
Top�N 12 0,32Grupo para usuário 24 0,45
Grupos populares 12 0,1424 0,24
Usuário para usuário Top�N 24 0,56usuários populares 24 0,275
Top�N 24 0,13Foto para usuário Populares entre contatos 24 0,08
Fotos populares 24 0,054
Introdução Framework Recomendadores Flickr Conclusão
Fotos para usuários
Resumo dos experimentos na rede Flickr
Tarefa Algoritmo Rank Precisão
Top�N 6 0,212 0,2
Grupo para foto Grupos populares 12 0,054
24 0,085Conteúdo visual 12 0,14
40 0,30
Top�N 12 0,32Grupo para usuário 24 0,45
Grupos populares 12 0,1424 0,24
Usuário para usuário Top�N 24 0,56usuários populares 24 0,275
Top�N 24 0,13Foto para usuário Populares entre contatos 24 0,08
Fotos populares 24 0,054
Introdução Framework Recomendadores Flickr Conclusão
Fotos para usuários
Resumo dos experimentos na rede Flickr
Tarefa Algoritmo Rank Precisão
Top�N 6 0,212 0,2
Grupo para foto Grupos populares 12 0,05424 0,085
Conteúdo visual 12 0,1440 0,30
Top�N 12 0,32Grupo para usuário 24 0,45
Grupos populares 12 0,1424 0,24
Usuário para usuário Top�N 24 0,56usuários populares 24 0,275
Top�N 24 0,13Foto para usuário Populares entre contatos 24 0,08
Fotos populares 24 0,054
Introdução Framework Recomendadores Flickr Conclusão
Fotos para usuários
Resumo dos experimentos na rede Flickr
Tarefa Algoritmo Rank Precisão
Top�N 6 0,212 0,2
Grupo para foto Grupos populares 12 0,05424 0,085
Conteúdo visual 12 0,1440 0,30
Top�N 12 0,32Grupo para usuário 24 0,45
Grupos populares 12 0,1424 0,24
Usuário para usuário Top�N 24 0,56usuários populares 24 0,275
Top�N 24 0,13Foto para usuário Populares entre contatos 24 0,08
Fotos populares 24 0,054
Introdução Framework Recomendadores Flickr Conclusão
Fotos para usuários
Resumo dos experimentos na rede Flickr
Tarefa Algoritmo Rank Precisão
Top�N 6 0,212 0,2
Grupo para foto Grupos populares 12 0,05424 0,085
Conteúdo visual 12 0,1440 0,30
Top�N 12 0,32Grupo para usuário 24 0,45
Grupos populares 12 0,1424 0,24
Usuário para usuário Top�N 24 0,56usuários populares 24 0,275
Top�N 24 0,13Foto para usuário Populares entre contatos 24 0,08
Fotos populares 24 0,054
Introdução Framework Recomendadores Flickr Conclusão
Visão geral
1 IntroduçãoProblema
2 FrameworkObjetivosContribuições da websemânticaModelagem da redesocial e tarefas derecomendaçãoRealização deexperimentos
3 Recomendadores FlickrConceitosColeta de dadosCaracterização dos relacionamentosAvaliação das possibilidades de recomendaçõesGrupos para fotosGrupos para fotos utilizando conteúdo visualGrupos para usuáriosUsuários para usuáriosFotos para usuários
4 Conclusão
Resultados e contribuiçõesTrabalhos futuros
Introdução Framework Recomendadores Flickr Conclusão
Resultados e contribuições
descrições quantitativas dos relacionamentos entre itens darede Flickr
análise de algoritmos de recomendação para redes sociaisonline
medidas de desempenho do algoritmo Top-N para�ltragem colaborativa no Flickr
comparativo de recomendadores no Flickr: �ltragemcolaborativa versus abordagem orientada a conteúdovisual
framework para estudo de recomendadores em redes sociais
estudo do uso de ontologias para mídias sociais emrecomendadores: modelagem, execução, treinamento emanutenção
modelagem, identi�cação e discussão das principais tarefas derecomendação para os serviços Flickr, Last.fm e Orkut
Introdução Framework Recomendadores Flickr Conclusão
Trabalhos futuros
aprofundar experimentos realizados e investigar demaispossibilidades de recomendação na rede Flickr
aplicar a framework proposta em outras rede sociais onlinecomo Facebook.com, LinkedIn.com ou em redes sociaistradicionais
melhorar a notação grá�ca proposta para a modelagem daspossibilidades de recomendação
expandir o uso das ferramentas desenvolvidas abrindo seucó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 orecomendador genérico da framework
Introdução Framework Recomendadores Flickr Conclusão
Trabalhos futuros
Contexto Flickr completo5
5crédito: http://soldierant.net/
Introdução Framework Recomendadores Flickr Conclusão
Trabalhos futuros
Referências I
RESNICK, P.; VARIAN, H. R..
Recommender systems.Commun. ACM, 40(3):56�58, 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. 5�53, 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 SIGIRCONFERENCE ON RESEARCH AND DEVELOPMENT IN INFORMATION RETRIEVAL, p.230�237, 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. 366�368, 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.
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):42�71, 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):32�39, 2004.
KWON, O. B..
I know what you need to buy: context-aware multimedia-based recommendation system.Expert Syst. Appl., 25(3):387�400, 2003.
SIGURBJORNSSON, B.; VAN ZWOL, R..
Flickr tag recommendation based on collective knowledge.In: WWW '08: PROCEEDING OF THE 17TH INTERNATIONAL CONFERENCE ON WORLDWIDE WEB, p. 327�336, 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.
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, volumen401 de CEUR Workshop Proceedings. CEUR-WS.org, 2008.
PASSANT, A.; RAIMOND, Y..
Combining social music and semantic web for music-related recommender systems.2008.