Sistemas de
Recomendação
Personalizando sua experiência de compra


        Marcel Pinheiro Caraciolo
                marcel@orygens.com /
       marcel@recday.com / marcel@muricoca.com
      @marcelcaraciolo
Quem é Marcel ?
Marcel Pinheiro Caraciolo - @marcelcaraciolo

   Sergipano, porém Recifense.
   Mestrando em Ciência da Computação no CIN/UFPE na área de mineração de dados
   Diretor de Pesquisa e Desenvolvimento na Orygens
   Membro e Moderador da Celúla de Usuários Python de Pernambuco (PUG-PE)


      Minhas áreas de interesse: Computação móvel e Computação inteligente


      Meus blogs: http://www.mobideia.com (sobre Mobilidade desde 2006)
                  http://aimotion.blogspot.com (sobre I.A. desde 2009)

             Jovem Aprendiz ainda nas artes pythonicas.... (desde 2007)
WEB
WEB
1.0                       2.0




Fonte de Informação   Fluxo Contínuo de Informação
                                 VI Encontro do PUG-PE
                                  VI Encontro do PUG-PE
WEB SITES
WEB APPLICATIONS
 WEB SERVICES
                   3.0          SEMANTIC WEB




                   USERS   VI Encontro do PUG-PE
                            VI Encontro do PUG-PE
Usar informação coletiva de
   forma efetiva afim de
 aprimorar uma aplicação
Intelligence from
                    Mining Data




                                                     User
                                                      User
User                                                   User
                                                        User
              Um usuário influencia outros
       por resenhas, notas, recomendações e blogs




          Um usuário é influenciado por outros
        por resenhas, notas, recomendações e blogs
aggregation information: lists
                                             ratings
   user-generated content
                                 reviews
   blogs                                    recommendations

       wikis      Collective Intelligence      voting
                    Your application             bookmarking
               Search
                            tag cloud        tagging
                                                        saving
   Natural Language Processing

    Clustering and                 Harness external content
   predictive models
WEB SITES
WEB APPLICATIONS
 WEB SERVICES
                   3.0            SEMANTIC WEB




                   USERS
                           antes...
                             VI Encontro do PUG-PE
                              VI Encontro do PUG-PE
Atualmente
estamos sobrecarregados
     de informações
muitas vezes inúteis
às vezes
procuramos
   isso...
e encontramos isso!
google?
google?




midias sociais?
eeeeuuuu...

    google?




midias sociais?
Sistemas de Recomendação
“A lot of times, people don’t know what
 they want until you show it to them.”
                                     Steve Jobs

“We are leaving the Information age, and
entering into the Recommendation age.”
                  Chris Anderson, from book Long Tail
Recomendações Sociais

                                      Família/Amigos
                                    Amigos/ Família
 O Que eu
deveria ler ?




                                                 Ref: Flickr-BlueAlgae



                                     “Eu acho que
                                    você deveria ler
 Ref: Flickr photostream: jefield     estes livros.
Recomendações por Interação

                  Entrada: Avalie alguns livros

   O Que eu
  deveria ler ?




                                                  Saída:
                                                  “Livros que você
                                                    pode gostar
                                                       são …”
Sistemas desenhados para sugerir algo para mim do meu
                       interesse!
Por que Recomendação ?
Netflix
 - 2/3 dos filmes alugados vêm de recomendação

Google News
 - 38% das notícias mais clicadas vêm de recomendação


Amazon
 - 38% das vendas vêm de recomendação

                                    Fonte: Celma & Lamere, ISMIR 2007
!"#$%"#&'"%(&$)")
 Nós+,&-.$/).#&0#/"1.#$%234(".#
  * estamos sobrecarregados de
               informação
    $/)#5(&6 7&.2.#"$4,#)$8
    * 93((3&/.#&0#:&'3".;#5&&<.#
      $/)#:-.34#2%$4<.#&/(3/"
Milhares de artigos e posts
    * =/#>$/&3;#?#@A#+B#4,$//"(.;#
    novos todos os dias
      2,&-.$/).#&0#7%&6%$:.#
      "$4,#)$8
    * =/#C"1#D&%<;#."'"%$(#
Milhões de Músicas, Filmes e
      2,&-.$/).#&0#$)#:"..$6".#
           Livros
      ."/2#2&#-.#7"%#)$8


   Milhares de Ofertas e
        Promoções
O que pode ser recomendado ?

                  Contatos em Redes Sociais    Artigos
  Produtos      Messagens de Propaganda
Cursos e-learning                               Livros
        Tags        Músicas
                                Futuras namoradas
                      Roupas         Filmes
            Restaurantes
                                 Programas de Tv
    Vídeos               Papers
      Opções de Investimento             Profissionais
                  Módulos de código
E como funciona a
 recomendação ?
O que os sistemas de recomendação
        realmente fazem ?
 1. Prediz o quanto você pode gostar de um certo
                 produto ou serviço
2. Sugere um lista de N items ordenada de acordo
                  com seu interese
3. Sugere uma lista de N usuários ordernada
           para um produto/serviço
4. Explica a você o porque esses items foram
                 recomendados
5. Ajusta a predição e a recomendação baseado em
              seu feedback e de outros.
Filtragem baseada por Conteúdo

                  Similar




Duro de           O Vento                         Toy
                               Armagedon                    Items
 Matar             Levou                         Store


                                     recomenda
          gosta

                            Marcel                       Usuários
Problemas com filtragem por
              conteúdo
 1. Análise dos dados Restrita
  - Items e usuários pouco detalhados. Pior em áudio ou imagens

  2. Dados Especializados
 - Uma pessoa que não tem experiência com Sushi não recebe o
            melhor restaurante de Sushi da cidade
 3. Efeito Portfólio
- Só porque eu vi 1 filme da Xuxa quando criança, tem que me
                    recomendar todos dela
Filtragem Colaborativa




                 O Vento                         Toy
Thor                             Armagedon               Items
                  Levou                         Store

gosta
                                  recomenda


        Marcel        Rafael           Amanda           Usuários




                       Similar
Problemas com filtragem colaborativa
    1. Escabilidade
        - Amazon com 5M usuários, 50K items, 1.4B avaliações
   2. Dados esparsos
     - Novos usuários e items que não tem histórico
   3. Partida Fria
      - Só avaliei apenas um único livro no Amazon!
   4. Popularidade
     - Todo mundo lê ‘Harry Potter’
   5. Hacking
    - A pessoa que lê ‘Harry Potter’ lê Kama Sutra
Filtragem Híbrida
          Combinação de múltiplos métodos

Duro de         O Vento                              Toy
                              Armagedon                       Items
 Matar           Levou                              Store



                                                            Ontologias
                                                              Dados
                                                            Símbolicos




            Marcel        Rafael          Luciana           Usuários
Como eles são
               apresentados ?
   Destaques                 Mais sobre este artista...
  Alguem similar a você também gostou disso
              O mais popular em seu grupo...
Já que você escutou esta, você pode querer esta...
 Lançamentos         Escute músicas de artistas similares.
     Estes dois item vêm juntos..
Como eles são avaliados ?
Como sabemos se a recomendação é boa ?
Geralmente se divide-se em treinamento/teste (80/20)

Críterios utilizados:
 - Erro de Predição: RMSE

- Curva ROC*, rank-utility, F-Measure
                               *http://code.google.com/p/pyplotmining/
Minhas contribuições
Crab
                A Python Framework for Building
                    Recommendation Engines

Marcel Caraciolo Ricardo Caspirro             Bruno Melo
   @marcelcaraciolo       @ricardocaspirro        @brunomelo
What is Crab ?

 A python framework for building recommendation engines
A Scikit module for collaborative, content and hybrid filtering
       Mahout Alternative for Python Developers :D
             Open-Source under the BSD license


             https://github.com/muricoca/crab
The current Crab

Collaborative Filtering algorithms
  User-Based, Item-Based and Slope One

Evaluation of the Recommender Algorithms
 Precision, Recall, F1-Score, RMSE




                           Precision-Recall Charts
Why migrate ?
Old Crab running only using Pure Python
     Recommendations demand heavy maths calculations and lots of processing

Compatible with Numpy and Scipy libraries
   High Standard and popular scientific libraries optimized for scientific calculations in Python

Scikits projects are amazing!
    Active Communities, Scientific Conferences and updated projects (e.g. scikit-learn)

Turn the Crab framework visible for the community
 Join the scientific researchers and machine learning developers around the Globe coding with
                                 Python to help us in this project


                              Be Fast and Furious
How are we working ?
            Sprints, Online Discussions and Issues




https://github.com/muricoca/crab/wiki/UpcomingEvents
Future Releases
        Planned Release 0.1
   Collaborative Filtering Algorithms working, sample datasets to load and test


        Planned Release 0.11
       Evaluation of Recommendation Algorithms and Database Models support


        Planned Release 0.12
   Recommendation as Services with REST APIs




....
Join us!

1. Read our Wiki Page
    https://github.com/muricoca/crab/wiki/Developer-Resources

2. Check out our current sprints and open issues
    https://github.com/muricoca/crab/issues

3. Forks, Pull Requests mandatory

4. Join us at irc.freenode.net #muricoca or at our
               discussion list in work :(
RecDay: Recomendações diariamente!
Dicas
Items Recomendados




Toby Segaran, Programming Collective   SatnamAlag, Collective Intelligence in
Intelligence, O'Reilly, 2007           Action, Manning Publications, 2009



 Sites como TechCrunch e ReadWriteWeb
Conferências Recomendadas
- ACM RecSys.

–ICWSM: Weblogand Social Media

–WebKDD: Web Knowledge Discovery and Data Mining

–WWW: The original WWW conference

–SIGIR: Information Retrieval

–ACM KDD: Knowledge Discovery and Data Mining

–ICML: Machine Learning
Onde você estará em tudo
         isso ?



                    Fonte: Hunch.com




      Obrigado !!
Sistemas de
Recomendação
A experiência de compra personalizada


      Marcel Pinheiro Caraciolo
              marcel@orygens.com /
     marcel@recday.com / marcel@muricoca.com
    @marcelcaraciolo

Sistemas de Recomendação e Inteligência Coletiva

  • 1.
    Sistemas de Recomendação Personalizando suaexperiência de compra Marcel Pinheiro Caraciolo marcel@orygens.com / marcel@recday.com / marcel@muricoca.com @marcelcaraciolo
  • 2.
    Quem é Marcel? Marcel Pinheiro Caraciolo - @marcelcaraciolo Sergipano, porém Recifense. Mestrando em Ciência da Computação no CIN/UFPE na área de mineração de dados Diretor de Pesquisa e Desenvolvimento na Orygens Membro e Moderador da Celúla de Usuários Python de Pernambuco (PUG-PE) Minhas áreas de interesse: Computação móvel e Computação inteligente Meus blogs: http://www.mobideia.com (sobre Mobilidade desde 2006) http://aimotion.blogspot.com (sobre I.A. desde 2009) Jovem Aprendiz ainda nas artes pythonicas.... (desde 2007)
  • 3.
  • 4.
  • 5.
    1.0 2.0 Fonte de Informação Fluxo Contínuo de Informação VI Encontro do PUG-PE VI Encontro do PUG-PE
  • 6.
    WEB SITES WEB APPLICATIONS WEB SERVICES 3.0 SEMANTIC WEB USERS VI Encontro do PUG-PE VI Encontro do PUG-PE
  • 7.
    Usar informação coletivade forma efetiva afim de aprimorar uma aplicação
  • 8.
    Intelligence from Mining Data User User User User User Um usuário influencia outros por resenhas, notas, recomendações e blogs Um usuário é influenciado por outros por resenhas, notas, recomendações e blogs
  • 9.
    aggregation information: lists ratings user-generated content reviews blogs recommendations wikis Collective Intelligence voting Your application bookmarking Search tag cloud tagging saving Natural Language Processing Clustering and Harness external content predictive models
  • 10.
    WEB SITES WEB APPLICATIONS WEB SERVICES 3.0 SEMANTIC WEB USERS antes... VI Encontro do PUG-PE VI Encontro do PUG-PE
  • 11.
  • 12.
    estamos sobrecarregados de informações
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
    eeeeuuuu... google? midias sociais?
  • 19.
  • 20.
    “A lot oftimes, people don’t know what they want until you show it to them.” Steve Jobs “We are leaving the Information age, and entering into the Recommendation age.” Chris Anderson, from book Long Tail
  • 21.
    Recomendações Sociais Família/Amigos Amigos/ Família O Que eu deveria ler ? Ref: Flickr-BlueAlgae “Eu acho que você deveria ler Ref: Flickr photostream: jefield estes livros.
  • 22.
    Recomendações por Interação Entrada: Avalie alguns livros O Que eu deveria ler ? Saída: “Livros que você pode gostar são …”
  • 23.
    Sistemas desenhados parasugerir algo para mim do meu interesse!
  • 24.
  • 25.
    Netflix - 2/3dos filmes alugados vêm de recomendação Google News - 38% das notícias mais clicadas vêm de recomendação Amazon - 38% das vendas vêm de recomendação Fonte: Celma & Lamere, ISMIR 2007
  • 26.
    !"#$%"#&'"%(&$)") Nós+,&-.$/).#&0#/"1.#$%234(".# * estamos sobrecarregados de informação $/)#5(&6 7&.2.#"$4,#)$8 * 93((3&/.#&0#:&'3".;#5&&<.# $/)#:-.34#2%$4<.#&/(3/" Milhares de artigos e posts * =/#>$/&3;#?#@A#+B#4,$//"(.;# novos todos os dias 2,&-.$/).#&0#7%&6%$:.# "$4,#)$8 * =/#C"1#D&%<;#."'"%$(# Milhões de Músicas, Filmes e 2,&-.$/).#&0#$)#:"..$6".# Livros ."/2#2&#-.#7"%#)$8 Milhares de Ofertas e Promoções
  • 27.
    O que podeser recomendado ? Contatos em Redes Sociais Artigos Produtos Messagens de Propaganda Cursos e-learning Livros Tags Músicas Futuras namoradas Roupas Filmes Restaurantes Programas de Tv Vídeos Papers Opções de Investimento Profissionais Módulos de código
  • 28.
    E como funcionaa recomendação ?
  • 29.
    O que ossistemas de recomendação realmente fazem ? 1. Prediz o quanto você pode gostar de um certo produto ou serviço 2. Sugere um lista de N items ordenada de acordo com seu interese 3. Sugere uma lista de N usuários ordernada para um produto/serviço 4. Explica a você o porque esses items foram recomendados 5. Ajusta a predição e a recomendação baseado em seu feedback e de outros.
  • 30.
    Filtragem baseada porConteúdo Similar Duro de O Vento Toy Armagedon Items Matar Levou Store recomenda gosta Marcel Usuários
  • 31.
    Problemas com filtragempor conteúdo 1. Análise dos dados Restrita - Items e usuários pouco detalhados. Pior em áudio ou imagens 2. Dados Especializados - Uma pessoa que não tem experiência com Sushi não recebe o melhor restaurante de Sushi da cidade 3. Efeito Portfólio - Só porque eu vi 1 filme da Xuxa quando criança, tem que me recomendar todos dela
  • 32.
    Filtragem Colaborativa O Vento Toy Thor Armagedon Items Levou Store gosta recomenda Marcel Rafael Amanda Usuários Similar
  • 33.
    Problemas com filtragemcolaborativa 1. Escabilidade - Amazon com 5M usuários, 50K items, 1.4B avaliações 2. Dados esparsos - Novos usuários e items que não tem histórico 3. Partida Fria - Só avaliei apenas um único livro no Amazon! 4. Popularidade - Todo mundo lê ‘Harry Potter’ 5. Hacking - A pessoa que lê ‘Harry Potter’ lê Kama Sutra
  • 34.
    Filtragem Híbrida Combinação de múltiplos métodos Duro de O Vento Toy Armagedon Items Matar Levou Store Ontologias Dados Símbolicos Marcel Rafael Luciana Usuários
  • 35.
    Como eles são apresentados ? Destaques Mais sobre este artista... Alguem similar a você também gostou disso O mais popular em seu grupo... Já que você escutou esta, você pode querer esta... Lançamentos Escute músicas de artistas similares. Estes dois item vêm juntos..
  • 36.
    Como eles sãoavaliados ? Como sabemos se a recomendação é boa ? Geralmente se divide-se em treinamento/teste (80/20) Críterios utilizados: - Erro de Predição: RMSE - Curva ROC*, rank-utility, F-Measure *http://code.google.com/p/pyplotmining/
  • 37.
  • 38.
    Crab A Python Framework for Building Recommendation Engines Marcel Caraciolo Ricardo Caspirro Bruno Melo @marcelcaraciolo @ricardocaspirro @brunomelo
  • 39.
    What is Crab? A python framework for building recommendation engines A Scikit module for collaborative, content and hybrid filtering Mahout Alternative for Python Developers :D Open-Source under the BSD license https://github.com/muricoca/crab
  • 40.
    The current Crab CollaborativeFiltering algorithms User-Based, Item-Based and Slope One Evaluation of the Recommender Algorithms Precision, Recall, F1-Score, RMSE Precision-Recall Charts
  • 41.
    Why migrate ? OldCrab running only using Pure Python Recommendations demand heavy maths calculations and lots of processing Compatible with Numpy and Scipy libraries High Standard and popular scientific libraries optimized for scientific calculations in Python Scikits projects are amazing! Active Communities, Scientific Conferences and updated projects (e.g. scikit-learn) Turn the Crab framework visible for the community Join the scientific researchers and machine learning developers around the Globe coding with Python to help us in this project Be Fast and Furious
  • 42.
    How are weworking ? Sprints, Online Discussions and Issues https://github.com/muricoca/crab/wiki/UpcomingEvents
  • 43.
    Future Releases Planned Release 0.1 Collaborative Filtering Algorithms working, sample datasets to load and test Planned Release 0.11 Evaluation of Recommendation Algorithms and Database Models support Planned Release 0.12 Recommendation as Services with REST APIs ....
  • 44.
    Join us! 1. Readour Wiki Page https://github.com/muricoca/crab/wiki/Developer-Resources 2. Check out our current sprints and open issues https://github.com/muricoca/crab/issues 3. Forks, Pull Requests mandatory 4. Join us at irc.freenode.net #muricoca or at our discussion list in work :(
  • 45.
  • 48.
  • 49.
    Items Recomendados Toby Segaran,Programming Collective SatnamAlag, Collective Intelligence in Intelligence, O'Reilly, 2007 Action, Manning Publications, 2009 Sites como TechCrunch e ReadWriteWeb
  • 50.
    Conferências Recomendadas - ACMRecSys. –ICWSM: Weblogand Social Media –WebKDD: Web Knowledge Discovery and Data Mining –WWW: The original WWW conference –SIGIR: Information Retrieval –ACM KDD: Knowledge Discovery and Data Mining –ICML: Machine Learning
  • 51.
    Onde você estaráem tudo isso ? Fonte: Hunch.com Obrigado !!
  • 52.
    Sistemas de Recomendação A experiênciade compra personalizada Marcel Pinheiro Caraciolo marcel@orygens.com / marcel@recday.com / marcel@muricoca.com @marcelcaraciolo