SlideShare une entreprise Scribd logo
1  sur  73
Télécharger pour lire hors ligne
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                                 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
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
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
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
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.
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
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
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
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
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
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
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]
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.
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 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
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 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/
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çã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
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 experimentos
             baseado 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 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)
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)
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)
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)
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)
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)
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
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 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
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 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
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
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
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
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
Introdução              Framework   Recomendadores Flickr     Conclusão

Grupos para fotos

Algoritmo TopN




                    (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 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)
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)
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)
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)
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)
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 para
              aplicativos web móveis, melhorando resultados de FC
Introdução                 Framework   Recomendadores Flickr     Conclusão

Grupos para usuários

Desempenho da recomendação usando algoritmo TopN




                       (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
                             δ(u1 , u2 ) = cos(u1 , u2 ) =                         (2)
                                                                u1 · u2




             4
                 http://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ários
                                            com mais contatos)
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
Introdução            Framework   Recomendadores Flickr   Conclusão

Fotos para usuários

Experimento com ltragem colaborativa TopN (@24)
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
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
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
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
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
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
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
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
Introdução                      Framework          Recomendadores Flickr   Conclusão

Trabalhos futuros

Contexto Flickr completo5




             5
                 cré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):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.
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.
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.

Contenu connexe

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

Mini curso redes sociais - IMD instituto Metrópole Digital
Mini curso redes sociais -  IMD instituto Metrópole DigitalMini curso redes sociais -  IMD instituto Metrópole Digital
Mini curso redes sociais - IMD instituto Metrópole DigitalKamila Joyce
 
Indicadores Rede Humaniza SUS
Indicadores Rede Humaniza SUSIndicadores Rede Humaniza SUS
Indicadores Rede Humaniza SUSDalton Martins
 
Tcc Parte 1 Desenvolvendo Plano De Trabalho
Tcc   Parte 1  Desenvolvendo Plano De TrabalhoTcc   Parte 1  Desenvolvendo Plano De Trabalho
Tcc Parte 1 Desenvolvendo Plano De TrabalhoJordan Oliveira
 
Intranets - Portal corporativo CCEE - estudo de caso
Intranets - Portal corporativo CCEE - estudo de casoIntranets - Portal corporativo CCEE - estudo de caso
Intranets - Portal corporativo CCEE - estudo de casoSuzana Ribeiro
 
Inteligência Coletiva Empresarial
Inteligência Coletiva EmpresarialInteligência Coletiva Empresarial
Inteligência Coletiva EmpresarialElvis Fusco
 
Finanças 2.0 - Evento Aberje & Terra
Finanças 2.0 - Evento Aberje & TerraFinanças 2.0 - Evento Aberje & Terra
Finanças 2.0 - Evento Aberje & TerraJose Claudio Terra
 
Solução web de scrum para o apoio a comunicação entre equipes remotas
Solução web de scrum para o apoio a  comunicação entre equipes remotasSolução web de scrum para o apoio a  comunicação entre equipes remotas
Solução web de scrum para o apoio a comunicação entre equipes remotasfelipe bastosweb
 
Aplicação da Técnica de Expert Review no Facebook
Aplicação da Técnica de Expert Review no FacebookAplicação da Técnica de Expert Review no Facebook
Aplicação da Técnica de Expert Review no FacebookWaghner Dieguez
 
Consumo e Métricas em Mídias Sociais
Consumo e Métricas em Mídias SociaisConsumo e Métricas em Mídias Sociais
Consumo e Métricas em Mídias SociaisMarcel Ayres
 
O processo de design de interação
O processo de design de interaçãoO processo de design de interação
O processo de design de interaçãoRobson Santos
 
[Jose Ahirton Lopes] Algoritmos de Recomendacao
[Jose Ahirton Lopes] Algoritmos de Recomendacao[Jose Ahirton Lopes] Algoritmos de Recomendacao
[Jose Ahirton Lopes] Algoritmos de RecomendacaoAhirton Lopes
 
Social Media Network Analysis no Twitter
Social Media Network Analysis no TwitterSocial Media Network Analysis no Twitter
Social Media Network Analysis no TwitterSocial Figures
 
Desenvolvimento de Sites V.2
Desenvolvimento de Sites V.2Desenvolvimento de Sites V.2
Desenvolvimento de Sites V.2Patricia Mallmann
 

Similaire à Um estudo de recomendadores baseados em conteúdo e redes sociais (20)

Sld 4
Sld 4Sld 4
Sld 4
 
Mini curso redes sociais - IMD instituto Metrópole Digital
Mini curso redes sociais -  IMD instituto Metrópole DigitalMini curso redes sociais -  IMD instituto Metrópole Digital
Mini curso redes sociais - IMD instituto Metrópole Digital
 
Indicadores Rede Humaniza SUS
Indicadores Rede Humaniza SUSIndicadores Rede Humaniza SUS
Indicadores Rede Humaniza SUS
 
Tcc Parte 1 Desenvolvendo Plano De Trabalho
Tcc   Parte 1  Desenvolvendo Plano De TrabalhoTcc   Parte 1  Desenvolvendo Plano De Trabalho
Tcc Parte 1 Desenvolvendo Plano De Trabalho
 
Intranets - Portal corporativo CCEE - estudo de caso
Intranets - Portal corporativo CCEE - estudo de casoIntranets - Portal corporativo CCEE - estudo de caso
Intranets - Portal corporativo CCEE - estudo de caso
 
Cesar.Edu Turma S2I
Cesar.Edu Turma S2ICesar.Edu Turma S2I
Cesar.Edu Turma S2I
 
Inteligência Coletiva Empresarial
Inteligência Coletiva EmpresarialInteligência Coletiva Empresarial
Inteligência Coletiva Empresarial
 
Rede Social
Rede SocialRede Social
Rede Social
 
Finanças 2.0 - Evento Aberje & Terra
Finanças 2.0 - Evento Aberje & TerraFinanças 2.0 - Evento Aberje & Terra
Finanças 2.0 - Evento Aberje & Terra
 
Solução web de scrum para o apoio a comunicação entre equipes remotas
Solução web de scrum para o apoio a  comunicação entre equipes remotasSolução web de scrum para o apoio a  comunicação entre equipes remotas
Solução web de scrum para o apoio a comunicação entre equipes remotas
 
Digitalks - FLN
Digitalks - FLNDigitalks - FLN
Digitalks - FLN
 
Palestra webanalytics
Palestra webanalyticsPalestra webanalytics
Palestra webanalytics
 
Aplicação da Técnica de Expert Review no Facebook
Aplicação da Técnica de Expert Review no FacebookAplicação da Técnica de Expert Review no Facebook
Aplicação da Técnica de Expert Review no Facebook
 
Consumo e Métricas em Mídias Sociais
Consumo e Métricas em Mídias SociaisConsumo e Métricas em Mídias Sociais
Consumo e Métricas em Mídias Sociais
 
Rede Social
Rede SocialRede Social
Rede Social
 
O processo de design de interação
O processo de design de interaçãoO processo de design de interação
O processo de design de interação
 
[Jose Ahirton Lopes] Algoritmos de Recomendacao
[Jose Ahirton Lopes] Algoritmos de Recomendacao[Jose Ahirton Lopes] Algoritmos de Recomendacao
[Jose Ahirton Lopes] Algoritmos de Recomendacao
 
Social Media Network Analysis no Twitter
Social Media Network Analysis no TwitterSocial Media Network Analysis no Twitter
Social Media Network Analysis no Twitter
 
Padrões de Projeto (GoF)
Padrões de Projeto (GoF)Padrões de Projeto (GoF)
Padrões de Projeto (GoF)
 
Desenvolvimento de Sites V.2
Desenvolvimento de Sites V.2Desenvolvimento de Sites V.2
Desenvolvimento de Sites V.2
 

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
  • 47. Introdução Framework Recomendadores Flickr Conclusão Grupos para fotos utilizando conteúdo visual Semelhança visual entre imagens: assinaturas wavelet (a) 20 coefs. (b) 100 coefs. (c) 400 coefs. (d) 16k coefs. (ori- ginal)
  • 48. Introdução Framework Recomendadores Flickr Conclusão Grupos para fotos utilizando conteúdo visual Homogeneidade visual dos grupos (a) 210 grupos (b) 1248 grupos
  • 49. Introdução Framework Recomendadores Flickr Conclusão Grupos para fotos utilizando conteúdo visual Avaliação da recomendação de grupos para foto baseado em conteúdo visual Entrada: inData = lista de tuplas (foto, grupo) Entrada: sim(imagem, n) = comparador de imagens baseado em semelhança. Retorna as n imagens mais semelhantes à imagem passada Saída: tupla de resultado (taxaAcerto, nRec, simImages) 1 nRec = número de recomendações feitas (escolhida aleatoriamente) 2 simImagesNum = tamanho da vizinhança (imagens semelhantes) considerada (escolhida aleatoriamente) 3 acertos = 0 4 tentativas = 0 5 repita 6 imagem = imagem de inData (escolhida aleatoriamente) 7 imagensSemelhantes sim(imagem, simImageNum) = 8 gruposRecomendados = os nRec grupos mais comuns dentre os grupos que imagensSemelhantes pertençam 9 se imagem pertence de fato a algum dos grupos em gruposRecomendados então 10 acertos++ 11 tentativas++ 12 até obter quantidade adequada de resultados 13 retorna tupla (acertos/tentativas, nRec, simImages)
  • 50. Introdução Framework Recomendadores Flickr Conclusão Grupos para fotos utilizando conteúdo visual Avaliação da recomendação de grupos para foto baseado em conteúdo visual Entrada: inData = lista de tuplas (foto, grupo) Entrada: sim(imagem, n) = comparador de imagens baseado em semelhança. Retorna as n imagens mais semelhantes à imagem passada Saída: tupla de resultado (taxaAcerto, nRec, simImages) 1 nRec = número de recomendações feitas (escolhida aleatoriamente) 2 simImagesNum = tamanho da vizinhança (imagens semelhantes) considerada (escolhida aleatoriamente) 3 acertos = 0 4 tentativas = 0 5 repita 6 imagem = imagem de inData (escolhida aleatoriamente) 7 imagensSemelhantes sim(imagem, simImageNum) = 8 gruposRecomendados = os nRec grupos mais comuns dentre os grupos que imagensSemelhantes pertençam 9 se imagem pertence de fato a algum dos grupos em gruposRecomendados então 10 acertos++ 11 tentativas++ 12 até obter quantidade adequada de resultados 13 retorna tupla (acertos/tentativas, nRec, simImages)
  • 51. Introdução Framework Recomendadores Flickr Conclusão Grupos para fotos utilizando conteúdo visual Avaliação da recomendação de grupos para foto baseado em conteúdo visual Entrada: inData = lista de tuplas (foto, grupo) Entrada: sim(imagem, n) = comparador de imagens baseado em semelhança. Retorna as n imagens mais semelhantes à imagem passada Saída: tupla de resultado (taxaAcerto, nRec, simImages) 1 nRec = número de recomendações feitas (escolhida aleatoriamente) 2 simImagesNum = tamanho da vizinhança (imagens semelhantes) considerada (escolhida aleatoriamente) 3 acertos = 0 4 tentativas = 0 5 repita 6 imagem = imagem de inData (escolhida aleatoriamente) 7 imagensSemelhantes sim(imagem, simImageNum) = 8 gruposRecomendados = os nRec grupos mais comuns dentre os grupos que imagensSemelhantes pertençam 9 se imagem pertence de fato a algum dos grupos em gruposRecomendados então 10 acertos++ 11 tentativas++ 12 até obter quantidade adequada de resultados 13 retorna tupla (acertos/tentativas, nRec, simImages)
  • 52. Introdução Framework Recomendadores Flickr Conclusão Grupos para fotos utilizando conteúdo visual Avaliação da recomendação de grupos para foto baseado em conteúdo visual Entrada: inData = lista de tuplas (foto, grupo) Entrada: sim(imagem, n) = comparador de imagens baseado em semelhança. Retorna as n imagens mais semelhantes à imagem passada Saída: tupla de resultado (taxaAcerto, nRec, simImages) 1 nRec = número de recomendações feitas (escolhida aleatoriamente) 2 simImagesNum = tamanho da vizinhança (imagens semelhantes) considerada (escolhida aleatoriamente) 3 acertos = 0 4 tentativas = 0 5 repita 6 imagem = imagem de inData (escolhida aleatoriamente) 7 imagensSemelhantes sim(imagem, simImageNum) = 8 gruposRecomendados = os nRec grupos mais comuns dentre os grupos que imagensSemelhantes pertençam 9 se imagem pertence de fato a algum dos grupos em gruposRecomendados então 10 acertos++ 11 tentativas++ 12 até obter quantidade adequada de resultados 13 retorna tupla (acertos/tentativas, nRec, simImages)
  • 53. Introdução Framework Recomendadores Flickr Conclusão Grupos para fotos utilizando conteúdo visual Avaliação da recomendação de grupos para foto baseado em conteúdo visual Entrada: inData = lista de tuplas (foto, grupo) Entrada: sim(imagem, n) = comparador de imagens baseado em semelhança. Retorna as n imagens mais semelhantes à imagem passada Saída: tupla de resultado (taxaAcerto, nRec, simImages) 1 nRec = número de recomendações feitas (escolhida aleatoriamente) 2 simImagesNum = tamanho da vizinhança (imagens semelhantes) considerada (escolhida aleatoriamente) 3 acertos = 0 4 tentativas = 0 5 repita 6 imagem = imagem de inData (escolhida aleatoriamente) 7 imagensSemelhantes sim(imagem, simImageNum) = 8 gruposRecomendados = os nRec grupos mais comuns dentre os grupos que imagensSemelhantes pertençam 9 se imagem pertence de fato a algum dos grupos em gruposRecomendados então 10 acertos++ 11 tentativas++ 12 até obter quantidade adequada de resultados 13 retorna tupla (acertos/tentativas, nRec, simImages)
  • 54. Introdução Framework Recomendadores Flickr Conclusão Grupos para fotos utilizando conteúdo visual Resultados
  • 55. Introdução Framework Recomendadores Flickr Conclusão Grupos para fotos utilizando conteúdo visual Trabalhos relacionados [Kim, 04] apresenta um recomendador de conteúdo visual para aplicativos web móveis, melhorando resultados de FC
  • 56. Introdução Framework Recomendadores Flickr Conclusão Grupos para usuários Desempenho da recomendação usando algoritmo TopN (a) @12 (b) @24
  • 57. Introdução Framework Recomendadores Flickr Conclusão Grupos para usuários Comparativo: grupos mais populares (a) @12 (b) @24
  • 58. Introdução Framework Recomendadores Flickr Conclusão Usuários para usuários Protótipo online4 : co-ocorrência de tags em fotos u = (t1 , t2 , ..., tn ), n = |T | (1) u1 · u2 δ(u1 , u2 ) = cos(u1 , u2 ) = (2) u1 · u2 4 http://server2.tecweb.inf.puc-rio.br:8080/
  • 59. Introdução Framework Recomendadores Flickr Conclusão Usuários para usuários Experimento com ltragem colaborativa (@24) (a) Top-N (b) comparativo naïve (usuários com mais contatos)
  • 60. Introdução Framework Recomendadores Flickr Conclusão Fotos para usuários Experimento com ltragem colaborativa (@24) (b) comparativo naïve (fotos (a) fotos populares (favoritas) mais favoritadas globalmente) entre contatos
  • 61. Introdução Framework Recomendadores Flickr Conclusão Fotos para usuários Experimento com ltragem colaborativa TopN (@24)
  • 62. Introdução Framework Recomendadores Flickr Conclusão Fotos para usuários Resumo dos experimentos na rede Flickr Tarefa Algoritmo Rank Precisão 6 0,2 TopN 12 0,2 Grupo para foto Grupos populares 12 0,054 24 0,085 Conteúdo visual 12 0,14 40 0,30 12 0,32 TopN Grupo para usuário 24 0,45 Grupos populares 12 0,14 24 0,24 Usuário para usuário 24 0,56 TopN usuários populares 24 0,275 24 0,13 TopN Foto para usuário Populares entre contatos 24 0,08 Fotos populares 24 0,054
  • 63. Introdução Framework Recomendadores Flickr Conclusão Fotos para usuários Resumo dos experimentos na rede Flickr Tarefa Algoritmo Rank Precisão 6 0,2 TopN 12 0,2 Grupos populares Grupo para foto 12 0,054 24 0,085 Conteúdo visual 12 0,14 40 0,30 12 0,32 TopN Grupo para usuário 24 0,45 Grupos populares 12 0,14 24 0,24 Usuário para usuário 24 0,56 TopN usuários populares 24 0,275 24 0,13 TopN Foto para usuário Populares entre contatos 24 0,08 Fotos populares 24 0,054
  • 64. Introdução Framework Recomendadores Flickr Conclusão Fotos para usuários Resumo dos experimentos na rede Flickr Tarefa Algoritmo Rank Precisão 6 0,2 TopN 12 0,2 Grupo para foto Grupos populares 12 0,054 24 0,085 Conteúdo visual 12 0,14 40 0,30 12 0,32 TopN Grupo para usuário 24 0,45 Grupos populares 12 0,14 24 0,24 Usuário para usuário 24 0,56 TopN usuários populares 24 0,275 24 0,13 TopN Foto para usuário Populares entre contatos 24 0,08 Fotos populares 24 0,054
  • 65. Introdução Framework Recomendadores Flickr Conclusão Fotos para usuários Resumo dos experimentos na rede Flickr Tarefa Algoritmo Rank Precisão 6 0,2 TopN 12 0,2 Grupo para foto Grupos populares 12 0,054 24 0,085 Conteúdo visual 12 0,14 40 0,30 12 0,32 TopN Grupo para usuário 24 0,45 Grupos populares 12 0,14 24 0,24 24 0,56 TopN Usuário para usuário usuários populares 24 0,275 24 0,13 TopN Foto para usuário Populares entre contatos 24 0,08 Fotos populares 24 0,054
  • 66. Introdução Framework Recomendadores Flickr Conclusão Fotos para usuários Resumo dos experimentos na rede Flickr Tarefa Algoritmo Rank Precisão 6 0,2 TopN 12 0,2 Grupo para foto Grupos populares 12 0,054 24 0,085 Conteúdo visual 12 0,14 40 0,30 12 0,32 TopN Grupo para usuário 24 0,45 Grupos populares 12 0,14 24 0,24 Usuário para usuário 24 0,56 TopN usuários populares 24 0,275 24 0,13 TopN Populares entre contatos 24 0,08 Foto para usuário Fotos populares 24 0,054
  • 67. Introdução Framework Recomendadores Flickr Conclusão Visão geral 1 Introdução 3 Recomendadores Flickr Problema Conceitos 2 Framework Coleta de dados Objetivos Caracterização dos relacionamentos Contribuições da web Avaliação das possibilidades de recomendações semântica Grupos para fotos Modelagem da rede Grupos para fotos utilizando conteúdo visual social e tarefas de Grupos para usuários recomendação Usuários para usuários Realização de Fotos para usuários experimentos 4 Conclusão Resultados e contribuições Trabalhos futuros
  • 68. Introdução Framework Recomendadores Flickr Conclusão Resultados e contribuições descrições quantitativas dos relacionamentos entre itens da rede Flickr análise de algoritmos de recomendação para redes sociais online medidas de desempenho do algoritmo Top-N para ltragem colaborativa no Flickr comparativo de recomendadores no Flickr: ltragem colaborativa versus abordagem orientada a conteúdo visual framework para estudo de recomendadores em redes sociais estudo do uso de ontologias para mídias sociais em recomendadores: modelagem, execução, treinamento e manutenção modelagem, identicação e discussão das principais tarefas de recomendação para os serviços Flickr, Last.fm e Orkut
  • 69. Introdução Framework Recomendadores Flickr Conclusão Trabalhos futuros aprofundar experimentos realizados e investigar demais possibilidades de recomendação na rede Flickr aplicar a framework proposta em outras rede sociais online como Facebook.com, LinkedIn.com ou em redes sociais tradicionais melhorar a notação gráca proposta para a modelagem das possibilidades de recomendação expandir o uso das ferramentas desenvolvidas abrindo seu código e provendo mais exemplos, interfaces e implementações realizar mais experimentos com avaliação online de usuários experimentar recomendadores híbridos para melhorar o recomendador genérico da framework
  • 70. Introdução Framework Recomendadores Flickr Conclusão Trabalhos futuros Contexto Flickr completo5 5 crédito: http://soldierant.net/
  • 71. Introdução Framework Recomendadores Flickr Conclusão Trabalhos futuros Referências I RESNICK, P.; VARIAN, H. R.. Recommender systems. Commun. ACM, 40(3):5658, 1997. HERLOCKER, J. L.; KONSTAN, J. A.; TERVEEN, L. G. ; RIEDL, J. T.. Evaluating collaborative ltering recommender systems. In: ACM TRANS. INF. SYST., volumen 22, p. 553, New York, NY, USA, 2004. ACM Press. HERLOCKER, J. L.; KONSTAN, J. A.; BORCHERS, A. ; RIEDL, J.. An algorithmic framework for performing collaborative ltering. In: SIGIR '99: PROCEEDINGS OF THE 22ND ANNUAL INTERNATIONAL ACM SIGIR CONFERENCE ON RESEARCH AND DEVELOPMENT IN INFORMATION RETRIEVAL, p. 230237, New York, NY, USA, 1999. ACM Press. FISHER, D.; HILDRUM, K.; HONG, J.; NEWMAN, M.; THOMAS, M. ; VUDUC, R.. SWAMI: a framework for collaborative ltering algorithm developmen and evaluation. In: RESEARCH AND DEVELOPMENT IN INFORMATION RETRIEVAL, p. 366368, 2000. SETH, A.; ZHANG, J.. A social network based approach to personalized recommendation of participatory media content. In: INT. CONF. ON WEBLOGS AND SOCIAL MEDIA (ICWSM), Seattle, 2008. HECKERMAN, D.. A tutorial on learning with bayesian networks. Technical report, Microsoft Research, Redmond, Washington, 1995.
  • 72. Introdução Framework Recomendadores Flickr Conclusão Trabalhos futuros Referências II LIU, H.; MAES, P. ; DAVENPORT, G.. Unraveling the taste fabric of social networks. International Journal on Semantic Web and Information Systems, 2(1):4271, 2006. ZHENG, R.; PROVOST, F. ; GHOSE, A.. Social network collaborative ltering. IOMS: Information Systems Working Papers, 2007. KIM, C. Y.; LEE, J. K.; CHO, Y. H. ; KIM, D. H.. Viscors: A visual-content recommender for the mobile web. IEEE Intelligent Systems, 19(6):3239, 2004. KWON, O. B.. I know what you need to buy: context-aware multimedia-based recommendation system. Expert Syst. Appl., 25(3):387400, 2003. SIGURBJORNSSON, B.; VAN ZWOL, R.. Flickr tag recommendation based on collective knowledge. In: WWW '08: PROCEEDING OF THE 17TH INTERNATIONAL CONFERENCE ON WORLD WIDE WEB, p. 327336, New York, NY, USA, 2008. ACM. GARG, N.; WEBER, I.. Personalized tag suggestion for ickr. In: PROCEEDINGS OF THE 17TH INTERNATIONAL WORLD WIDE WEB CONFERENCE, 2008.
  • 73. Introdução Framework Recomendadores Flickr Conclusão Trabalhos futuros Referências III NICOLAS PISSARD, C. P.. Thematic vs. social networks in web 2.0 communities: A case study on ickr groups. 2007. PRIEUR, C.; CARDON, D.; BEUSCART, J.-S.; PISSARD, N. ; PONS, P.. The strength of weak cooperation: A case study on ickr, Feb 2008. BOUZA, A.; REIF, G.; BERNSTEIN, A. ; GALL, H.. Semtree: Ontology-based decision tree algorithm for recommender systems. In: Bizer, C.; Joshi, A., editors, INTERNATIONAL SEMANTIC WEB CONFERENCE, volumen 401 de CEUR Workshop Proceedings. CEUR-WS.org, 2008. PASSANT, A.; RAIMOND, Y.. Combining social music and semantic web for music-related recommender systems. 2008.