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

73

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 of Um estudo de recomendadores baseados em conteúdo e redes sociais

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

Realização de experimentos

Fluxo de dados

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

Entidades e relacionamentos

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.