O documento discute recomendadores baseados em conteúdo e redes sociais, apresentando uma framework para análise e reuso de algoritmos de recomendação em redes sociais. Ele introduz o problema, os objetivos do trabalho e contribuições da web semântica, modela a rede social Flickr e descreve experimentos realizados com dados coletados dessa rede social.
Um estudo de recomendadores baseados em conteúdo e redes sociais
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
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
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.