SlideShare una empresa de Scribd logo
1 de 43
Descargar para leer sin conexión
Intelligence Collective avec Apache Mahout
Classification, Regroupement, Recommandation
Speaker

      @mfiguiere
      blog.xebia.fr



      Michaël Figuière           Distributed
                                 Architectures

                         NoSQL
Search Engines
Intelligence Collective
En quelques mots

• L’ensemble des utilisateurs constitue une intelligence
        L’intelligence collective d’un groupe est supérieure à la
        meilleure intelligence individuelle de ce groupe




• Rendu immédiatement accessible par l’avènement d’Internet

        En facilitant l’agrégation des données
Wikipedia
            Le wiki agrège
              l’intelligence
            collective des
            contributeurs
Google et le PageRank

                        PageRank agrège
                           l’intelligence
                         collective des
                              sites Web
La nature des données




                        Les données aléatoires
                            sont par définition
                               imprévisibles !
La nature des données




                        Les données générées par
                              les utilisateurs se
                        comportent généralement
                              selon des patterns
                                reconnaissables !
Machine Learning
Machine Learning

                                         Le Machine Learning est
                                           un sous-ensemble de
                                        l’Intelligence Artificielle
        Intelligence Artificielle




                                    Machine Learning
                                    (Apprentissage Artificiel)
NoSQL, Recherche et Machine Learning

                               NoSQL, Machine Learning
                              et Moteurs de Recherche
                                  sont complémentaires
                   Machine
                   Learning




                                  Moteurs de
        NoSQL
                                  Recherche
Principaux algorithmes de Machine Learning

• Recommandations

        Recommande des items à un utilisateur



• Classification
        Classifie automatiquement des documents en apprenant à
        partir d’un ensemble déjà classifié

• Clustering

         Découvre automatiquement des groupements parmi un
         ensemble de documents
Recommandation - User based
                               Amazon suggère
                                    des articles
                               achetés par les
                              clients similaires
Recommandation - Item based
                              Sur la page d’un
                               article Amazon
                                   suggère des
                                       articles
Similarités entre utilisateurs

                                         On constate ici que
              1           2
                                         les utilisateurs 1 et
                                             2 ont des goûts
                                                    similaires

        A     B       C   D      E   F




                  3
Exemples de cas d’usage de Recommandation

• Conseiller des items aux clients sur un site d’e-commerce

         Augmentation du chiffre d’affaire



• Conseiller des fonctionnalités aux utilisateurs
         La plupart des fonctionnalités sont méconnues



• Filtrer et adapter le classement des résultats d’un moteur de recherche
         En se basant sur les clics des utilisateurs similaires, ...
Classification



                Mails ‘classifiés’
                en tant que spams
                par GMail
Exemples de cas d’usage de Classification

• Associer automatiquement des tags à des documents

        Ensemble de tags définis manuellement ou depuis Wikipedia



• Extraire les documents suspicieux
        Spams, documents corrompus, ...
Clustering

Sujets tendances
 découverts par
  Google News
Clustering avec K-Means



        A
                    B



                C




                                D
                        E
                            F
Clustering avec K-Means


                                    Centres de
        A                           groupement
                    B
                                    placés
                                    aléatoirement
                C




                                D
                        E
                            F
Clustering avec K-Means

                                    Les données sont
                                       rattachées au
        A                             centres le plus
                    B
                                              proche

                C




                                D
                        E
                            F
Clustering avec K-Means

                                       Les centres sont
                                       alors déplacés de
        A                             manière à réduire la
                    B
                                    somme des distances

                C




                                D
                        E
                            F
Clustering avec K-Means

                                    La donnée ‘C’ se
                                      retrouve alors
        A                               rattachée au
                    B
                                      premier centre

                C




                                D
                        E
                            F
Exemples de cas d’usage du Clustering

• Trouver les sujets principaux dans un ensemble de documents

        News feeds, documents métiers, ...



• Découvrir des usages typiques des utilisateurs
         Profilage des utilisateurs, ...
Apache Mahout
En quelques mots

• Implémentation d’algorithmes de Machine Learning en Java

        Collection d’algorithme en expansion



• La plupart disponibles en version MapReduce

        Utilisable avec de gros datasets



• Encore jeune, mais en croissance rapide
        Démarré début 2009
Documentation

                        Cherche à rendre le
                Machine Learning accessible
                      au plus grand nombre
Exemple de Recommendation

DataModel model = new FileDataModel(new File("data.csv"));

UserSimilarity simil =
   new PearsonCorrelationSimilarity(model);

UserNeighborhood neighborhood =
   new NearestNUserNeighborhood(2, similarity, model);

Recommender recommender =
   new GenericUserBasedRecommender(model, neighborhood, simil);

List<RecommendedItem> recommendations =
   recommender.recommend(1, 1);
Classification avec Mahout



       Training      Training
      examples      algorithm           Model



                                Copy



      New data       Model             Decision
Clustering avec Mahout




                    Clustering    List of
     Documents
                    algorithm    clusters
Evaluation de la précision

            Ensemble des
         données disponibles




      Données utilisées
                               Données utilisées pour
       pour le training
                               évaluer la précision de
                               l’algorithme
Cas d’usage d’un moteur de recherche
Un moteur de recherche


                         Search
Un moteur de recherche


            MyCustomer   Search
Un moteur de recherche


                      MyCustomer                               Search




   Document     Non Disclosure Agreement                                          12 days ago
                   ... MyCustomer agrees not to disclose any part of ...



   Document     2010 Sales Report                                                 1 month ago
                ... MyCustomer: 12 M€ with 3 deals ...



                Phone Call                                                        2 days ago
   Phone Call   Customer: MyCustomer           Time: 9:55am     Duration: 13min
                Description: Invoice not received for order #2354E
Pipeline d’indexation


                 Tika


       PDF
                  Text
                            Analyzer
                Extractor
                                                Search
                                                 Index
                            Analyzer
      Phone
       Call



                                       Lucene
Un moteur de recherche plus complexe


                      MyCustomer                               Search

                    Sales                   Juridic                   Accounting




   Document     2010 Sales Report                                                 1 month ago
                ... MyCustomer: 12 M€ with 3 deals ...



                Phone Call                                                        2 days ago
   Phone Call   Customer: MyCustomer           Time: 9:55am     Duration: 13min
                Description: Invoice not received for order #2354E
Pipeline d’indexation avec Mahout


           Tika       Mahout


 PDF
            Text
                      Classifier   Analyzer
          Extractor
                                                      Search
                                                       Index
                      Classifier   Analyzer
 Phone
  Call



                                             Lucene
Pipeline de requête


                      Lucene

            Query

                      Analyzer
                                 Search
                                  Index


            Results
Pipeline de requête avec Mahout


                          Lucene

           Query

                          Analyzer
                                          Search
                                           Index
                          Custom
                          Analyzer
                          Scoring
           Results


                        Basé sur les
                     recommandations de
                          Mahout
Conclusion

• Le Machine Learning apporte des fonctionnalités à forte valeur ajoutée

        Amélioration des revenus, de la productivité, de l’adoption



• Mahout est en croissance rapide et devient un bon choix pour les applications

        Intégration facile aux applications métier



• Les équipes fonctionnelles ne sont pas familières de ces technologies
         Une collaboration avec les équipes techniques est requise
Questions / Réponses




                       ?
                   blog.xebia.fr
                   @mfiguiere

Más contenido relacionado

Destacado

Comment j'ai mis ma suite de tests au régime en 5 minutes par jour
Comment j'ai mis ma suite de tests au régime en 5 minutes par jourComment j'ai mis ma suite de tests au régime en 5 minutes par jour
Comment j'ai mis ma suite de tests au régime en 5 minutes par jourCARA_Lyon
 
Mix it 2011 - Clojure
Mix it 2011 - ClojureMix it 2011 - Clojure
Mix it 2011 - Clojurelolopetit
 
Sur la route de l'agilité @Mix-it Lyon 2011
Sur la route de l'agilité @Mix-it Lyon 2011Sur la route de l'agilité @Mix-it Lyon 2011
Sur la route de l'agilité @Mix-it Lyon 2011Mickael Istria
 
HTML5... La révolution maintenant!
HTML5... La révolution maintenant!HTML5... La révolution maintenant!
HTML5... La révolution maintenant!CARA_Lyon
 
Building complex and modular RIAs with OSGi and Flex
Building complex and modular RIAs with OSGi and FlexBuilding complex and modular RIAs with OSGi and Flex
Building complex and modular RIAs with OSGi and FlexCARA_Lyon
 
Agile Sans Frontières
Agile Sans FrontièresAgile Sans Frontières
Agile Sans FrontièresCARA_Lyon
 
Séminaire Intelligence Collective - TheTransitioner.org - JF Noubel - nov. 2010
Séminaire Intelligence Collective - TheTransitioner.org - JF Noubel - nov. 2010Séminaire Intelligence Collective - TheTransitioner.org - JF Noubel - nov. 2010
Séminaire Intelligence Collective - TheTransitioner.org - JF Noubel - nov. 2010Jean-François Noubel
 
Intelligence collective ou bêtise collective
Intelligence collective ou bêtise collectiveIntelligence collective ou bêtise collective
Intelligence collective ou bêtise collectivePPC 💫
 
Machine learning pour tous
Machine learning pour tousMachine learning pour tous
Machine learning pour tousDamien Seguy
 
Intelligence Collective : à retrouvers dans nos gènes pour l'excellence de l'...
Intelligence Collective : à retrouvers dans nos gènes pour l'excellence de l'...Intelligence Collective : à retrouvers dans nos gènes pour l'excellence de l'...
Intelligence Collective : à retrouvers dans nos gènes pour l'excellence de l'...Hervé Bougro
 

Destacado (12)

Comment j'ai mis ma suite de tests au régime en 5 minutes par jour
Comment j'ai mis ma suite de tests au régime en 5 minutes par jourComment j'ai mis ma suite de tests au régime en 5 minutes par jour
Comment j'ai mis ma suite de tests au régime en 5 minutes par jour
 
Mix it 2011 - Clojure
Mix it 2011 - ClojureMix it 2011 - Clojure
Mix it 2011 - Clojure
 
Sur la route de l'agilité @Mix-it Lyon 2011
Sur la route de l'agilité @Mix-it Lyon 2011Sur la route de l'agilité @Mix-it Lyon 2011
Sur la route de l'agilité @Mix-it Lyon 2011
 
HTML5... La révolution maintenant!
HTML5... La révolution maintenant!HTML5... La révolution maintenant!
HTML5... La révolution maintenant!
 
Building complex and modular RIAs with OSGi and Flex
Building complex and modular RIAs with OSGi and FlexBuilding complex and modular RIAs with OSGi and Flex
Building complex and modular RIAs with OSGi and Flex
 
mix-it 2011
mix-it 2011mix-it 2011
mix-it 2011
 
Agile Sans Frontières
Agile Sans FrontièresAgile Sans Frontières
Agile Sans Frontières
 
Séminaire Intelligence Collective - TheTransitioner.org - JF Noubel - nov. 2010
Séminaire Intelligence Collective - TheTransitioner.org - JF Noubel - nov. 2010Séminaire Intelligence Collective - TheTransitioner.org - JF Noubel - nov. 2010
Séminaire Intelligence Collective - TheTransitioner.org - JF Noubel - nov. 2010
 
Intelligence collective ou bêtise collective
Intelligence collective ou bêtise collectiveIntelligence collective ou bêtise collective
Intelligence collective ou bêtise collective
 
Machine learning pour tous
Machine learning pour tousMachine learning pour tous
Machine learning pour tous
 
Intelligence Collective
Intelligence CollectiveIntelligence Collective
Intelligence Collective
 
Intelligence Collective : à retrouvers dans nos gènes pour l'excellence de l'...
Intelligence Collective : à retrouvers dans nos gènes pour l'excellence de l'...Intelligence Collective : à retrouvers dans nos gènes pour l'excellence de l'...
Intelligence Collective : à retrouvers dans nos gènes pour l'excellence de l'...
 

Similar a Mix-IT (Apr 2011) - Intelligence Collective avec Apache Mahout

La recommandation d'articles scientifiques dans une bibliothèque numérique
La recommandation d'articles scientifiques dans une bibliothèque numériqueLa recommandation d'articles scientifiques dans une bibliothèque numérique
La recommandation d'articles scientifiques dans une bibliothèque numériqueAndre Vellino
 
[Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?
[Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?[Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?
[Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?Sébastien Prunier
 
Introduction au Machine Learning
Introduction au Machine Learning Introduction au Machine Learning
Introduction au Machine Learning Novagen Conseil
 
Comment le Data et Deep Learning révolutionnent la science
Comment le Data et Deep Learning révolutionnent la scienceComment le Data et Deep Learning révolutionnent la science
Comment le Data et Deep Learning révolutionnent la sciencehabib200
 
Comment faire parler les data des candidats ?
Comment faire parler les data des candidats ?Comment faire parler les data des candidats ?
Comment faire parler les data des candidats ?Jeremy Greze
 
Visite guidée au pays de la donnée - Traitement automatique des données
Visite guidée au pays de la donnée - Traitement automatique des donnéesVisite guidée au pays de la donnée - Traitement automatique des données
Visite guidée au pays de la donnée - Traitement automatique des donnéesGautier Poupeau
 
Présentation sur le Data Mining
Présentation sur le Data MiningPrésentation sur le Data Mining
Présentation sur le Data MiningTakfarinas KENOUCHE
 
Cours fouille de donn+®es part1
Cours fouille de donn+®es part1Cours fouille de donn+®es part1
Cours fouille de donn+®es part1Amani Baklouti
 

Similar a Mix-IT (Apr 2011) - Intelligence Collective avec Apache Mahout (8)

La recommandation d'articles scientifiques dans une bibliothèque numérique
La recommandation d'articles scientifiques dans une bibliothèque numériqueLa recommandation d'articles scientifiques dans une bibliothèque numérique
La recommandation d'articles scientifiques dans une bibliothèque numérique
 
[Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?
[Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?[Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?
[Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?
 
Introduction au Machine Learning
Introduction au Machine Learning Introduction au Machine Learning
Introduction au Machine Learning
 
Comment le Data et Deep Learning révolutionnent la science
Comment le Data et Deep Learning révolutionnent la scienceComment le Data et Deep Learning révolutionnent la science
Comment le Data et Deep Learning révolutionnent la science
 
Comment faire parler les data des candidats ?
Comment faire parler les data des candidats ?Comment faire parler les data des candidats ?
Comment faire parler les data des candidats ?
 
Visite guidée au pays de la donnée - Traitement automatique des données
Visite guidée au pays de la donnée - Traitement automatique des donnéesVisite guidée au pays de la donnée - Traitement automatique des données
Visite guidée au pays de la donnée - Traitement automatique des données
 
Présentation sur le Data Mining
Présentation sur le Data MiningPrésentation sur le Data Mining
Présentation sur le Data Mining
 
Cours fouille de donn+®es part1
Cours fouille de donn+®es part1Cours fouille de donn+®es part1
Cours fouille de donn+®es part1
 

Más de Michaël Figuière

EclipseCon - Building an IDE for Apache Cassandra
EclipseCon - Building an IDE for Apache CassandraEclipseCon - Building an IDE for Apache Cassandra
EclipseCon - Building an IDE for Apache CassandraMichaël Figuière
 
Paris Cassandra Meetup - Cassandra for Developers
Paris Cassandra Meetup - Cassandra for DevelopersParis Cassandra Meetup - Cassandra for Developers
Paris Cassandra Meetup - Cassandra for DevelopersMichaël Figuière
 
YaJug - Cassandra for Java Developers
YaJug - Cassandra for Java DevelopersYaJug - Cassandra for Java Developers
YaJug - Cassandra for Java DevelopersMichaël Figuière
 
Geneva JUG - Cassandra for Java Developers
Geneva JUG - Cassandra for Java DevelopersGeneva JUG - Cassandra for Java Developers
Geneva JUG - Cassandra for Java DevelopersMichaël Figuière
 
Cassandra summit 2013 - DataStax Java Driver Unleashed!
Cassandra summit 2013 - DataStax Java Driver Unleashed!Cassandra summit 2013 - DataStax Java Driver Unleashed!
Cassandra summit 2013 - DataStax Java Driver Unleashed!Michaël Figuière
 
NYC* Tech Day - New Cassandra Drivers in Depth
NYC* Tech Day - New Cassandra Drivers in DepthNYC* Tech Day - New Cassandra Drivers in Depth
NYC* Tech Day - New Cassandra Drivers in DepthMichaël Figuière
 
Paris Cassandra Meetup - Overview of New Cassandra Drivers
Paris Cassandra Meetup - Overview of New Cassandra DriversParis Cassandra Meetup - Overview of New Cassandra Drivers
Paris Cassandra Meetup - Overview of New Cassandra DriversMichaël Figuière
 
ApacheCon Europe 2012 - Real Time Big Data in practice with Cassandra
ApacheCon Europe 2012 - Real Time Big Data in practice with CassandraApacheCon Europe 2012 - Real Time Big Data in practice with Cassandra
ApacheCon Europe 2012 - Real Time Big Data in practice with CassandraMichaël Figuière
 
NoSQL Matters 2012 - Real Time Big Data in practice with Cassandra
NoSQL Matters 2012 - Real Time Big Data in practice with CassandraNoSQL Matters 2012 - Real Time Big Data in practice with Cassandra
NoSQL Matters 2012 - Real Time Big Data in practice with CassandraMichaël Figuière
 
GTUG Nantes (Dec 2011) - BigTable et NoSQL
GTUG Nantes (Dec 2011) - BigTable et NoSQLGTUG Nantes (Dec 2011) - BigTable et NoSQL
GTUG Nantes (Dec 2011) - BigTable et NoSQLMichaël Figuière
 
JUG Summer Camp (Sep 2011) - Les applications et architectures d’entreprise d...
JUG Summer Camp (Sep 2011) - Les applications et architectures d’entreprise d...JUG Summer Camp (Sep 2011) - Les applications et architectures d’entreprise d...
JUG Summer Camp (Sep 2011) - Les applications et architectures d’entreprise d...Michaël Figuière
 
BreizhCamp (Jun 2011) - Haute disponibilité et élasticité avec Cassandra
BreizhCamp (Jun 2011) - Haute disponibilité et élasticité avec CassandraBreizhCamp (Jun 2011) - Haute disponibilité et élasticité avec Cassandra
BreizhCamp (Jun 2011) - Haute disponibilité et élasticité avec CassandraMichaël Figuière
 
Xebia Knowledge Exchange (mars 2011) - Machine Learning with Apache Mahout
Xebia Knowledge Exchange (mars 2011) - Machine Learning with Apache MahoutXebia Knowledge Exchange (mars 2011) - Machine Learning with Apache Mahout
Xebia Knowledge Exchange (mars 2011) - Machine Learning with Apache MahoutMichaël Figuière
 
Breizh JUG (mar 2011) - NoSQL : Des Grands du Web aux Entreprises
Breizh JUG (mar 2011) - NoSQL : Des Grands du Web aux EntreprisesBreizh JUG (mar 2011) - NoSQL : Des Grands du Web aux Entreprises
Breizh JUG (mar 2011) - NoSQL : Des Grands du Web aux EntreprisesMichaël Figuière
 
FOSDEM (feb 2011) - A real-time search engine with Lucene and S4
FOSDEM (feb 2011) -  A real-time search engine with Lucene and S4FOSDEM (feb 2011) -  A real-time search engine with Lucene and S4
FOSDEM (feb 2011) - A real-time search engine with Lucene and S4Michaël Figuière
 
Xebia Knowledge Exchange (feb 2011) - Large Scale Web Development
Xebia Knowledge Exchange (feb 2011) - Large Scale Web DevelopmentXebia Knowledge Exchange (feb 2011) - Large Scale Web Development
Xebia Knowledge Exchange (feb 2011) - Large Scale Web DevelopmentMichaël Figuière
 
Xebia Knowledge Exchange (jan 2011) - Trends in Enterprise Applications Archi...
Xebia Knowledge Exchange (jan 2011) - Trends in Enterprise Applications Archi...Xebia Knowledge Exchange (jan 2011) - Trends in Enterprise Applications Archi...
Xebia Knowledge Exchange (jan 2011) - Trends in Enterprise Applications Archi...Michaël Figuière
 
Lorraine JUG (dec 2010) - NoSQL, des grands du Web aux entreprises
Lorraine JUG (dec 2010) - NoSQL, des grands du Web aux entreprisesLorraine JUG (dec 2010) - NoSQL, des grands du Web aux entreprises
Lorraine JUG (dec 2010) - NoSQL, des grands du Web aux entreprisesMichaël Figuière
 
Tours JUG (oct 2010) - NoSQL, des grands du Web aux entreprises
Tours JUG (oct 2010) - NoSQL, des grands du Web aux entreprisesTours JUG (oct 2010) - NoSQL, des grands du Web aux entreprises
Tours JUG (oct 2010) - NoSQL, des grands du Web aux entreprisesMichaël Figuière
 

Más de Michaël Figuière (20)

EclipseCon - Building an IDE for Apache Cassandra
EclipseCon - Building an IDE for Apache CassandraEclipseCon - Building an IDE for Apache Cassandra
EclipseCon - Building an IDE for Apache Cassandra
 
Paris Cassandra Meetup - Cassandra for Developers
Paris Cassandra Meetup - Cassandra for DevelopersParis Cassandra Meetup - Cassandra for Developers
Paris Cassandra Meetup - Cassandra for Developers
 
YaJug - Cassandra for Java Developers
YaJug - Cassandra for Java DevelopersYaJug - Cassandra for Java Developers
YaJug - Cassandra for Java Developers
 
Geneva JUG - Cassandra for Java Developers
Geneva JUG - Cassandra for Java DevelopersGeneva JUG - Cassandra for Java Developers
Geneva JUG - Cassandra for Java Developers
 
ChtiJUG - Cassandra 2.0
ChtiJUG - Cassandra 2.0ChtiJUG - Cassandra 2.0
ChtiJUG - Cassandra 2.0
 
Cassandra summit 2013 - DataStax Java Driver Unleashed!
Cassandra summit 2013 - DataStax Java Driver Unleashed!Cassandra summit 2013 - DataStax Java Driver Unleashed!
Cassandra summit 2013 - DataStax Java Driver Unleashed!
 
NYC* Tech Day - New Cassandra Drivers in Depth
NYC* Tech Day - New Cassandra Drivers in DepthNYC* Tech Day - New Cassandra Drivers in Depth
NYC* Tech Day - New Cassandra Drivers in Depth
 
Paris Cassandra Meetup - Overview of New Cassandra Drivers
Paris Cassandra Meetup - Overview of New Cassandra DriversParis Cassandra Meetup - Overview of New Cassandra Drivers
Paris Cassandra Meetup - Overview of New Cassandra Drivers
 
ApacheCon Europe 2012 - Real Time Big Data in practice with Cassandra
ApacheCon Europe 2012 - Real Time Big Data in practice with CassandraApacheCon Europe 2012 - Real Time Big Data in practice with Cassandra
ApacheCon Europe 2012 - Real Time Big Data in practice with Cassandra
 
NoSQL Matters 2012 - Real Time Big Data in practice with Cassandra
NoSQL Matters 2012 - Real Time Big Data in practice with CassandraNoSQL Matters 2012 - Real Time Big Data in practice with Cassandra
NoSQL Matters 2012 - Real Time Big Data in practice with Cassandra
 
GTUG Nantes (Dec 2011) - BigTable et NoSQL
GTUG Nantes (Dec 2011) - BigTable et NoSQLGTUG Nantes (Dec 2011) - BigTable et NoSQL
GTUG Nantes (Dec 2011) - BigTable et NoSQL
 
JUG Summer Camp (Sep 2011) - Les applications et architectures d’entreprise d...
JUG Summer Camp (Sep 2011) - Les applications et architectures d’entreprise d...JUG Summer Camp (Sep 2011) - Les applications et architectures d’entreprise d...
JUG Summer Camp (Sep 2011) - Les applications et architectures d’entreprise d...
 
BreizhCamp (Jun 2011) - Haute disponibilité et élasticité avec Cassandra
BreizhCamp (Jun 2011) - Haute disponibilité et élasticité avec CassandraBreizhCamp (Jun 2011) - Haute disponibilité et élasticité avec Cassandra
BreizhCamp (Jun 2011) - Haute disponibilité et élasticité avec Cassandra
 
Xebia Knowledge Exchange (mars 2011) - Machine Learning with Apache Mahout
Xebia Knowledge Exchange (mars 2011) - Machine Learning with Apache MahoutXebia Knowledge Exchange (mars 2011) - Machine Learning with Apache Mahout
Xebia Knowledge Exchange (mars 2011) - Machine Learning with Apache Mahout
 
Breizh JUG (mar 2011) - NoSQL : Des Grands du Web aux Entreprises
Breizh JUG (mar 2011) - NoSQL : Des Grands du Web aux EntreprisesBreizh JUG (mar 2011) - NoSQL : Des Grands du Web aux Entreprises
Breizh JUG (mar 2011) - NoSQL : Des Grands du Web aux Entreprises
 
FOSDEM (feb 2011) - A real-time search engine with Lucene and S4
FOSDEM (feb 2011) -  A real-time search engine with Lucene and S4FOSDEM (feb 2011) -  A real-time search engine with Lucene and S4
FOSDEM (feb 2011) - A real-time search engine with Lucene and S4
 
Xebia Knowledge Exchange (feb 2011) - Large Scale Web Development
Xebia Knowledge Exchange (feb 2011) - Large Scale Web DevelopmentXebia Knowledge Exchange (feb 2011) - Large Scale Web Development
Xebia Knowledge Exchange (feb 2011) - Large Scale Web Development
 
Xebia Knowledge Exchange (jan 2011) - Trends in Enterprise Applications Archi...
Xebia Knowledge Exchange (jan 2011) - Trends in Enterprise Applications Archi...Xebia Knowledge Exchange (jan 2011) - Trends in Enterprise Applications Archi...
Xebia Knowledge Exchange (jan 2011) - Trends in Enterprise Applications Archi...
 
Lorraine JUG (dec 2010) - NoSQL, des grands du Web aux entreprises
Lorraine JUG (dec 2010) - NoSQL, des grands du Web aux entreprisesLorraine JUG (dec 2010) - NoSQL, des grands du Web aux entreprises
Lorraine JUG (dec 2010) - NoSQL, des grands du Web aux entreprises
 
Tours JUG (oct 2010) - NoSQL, des grands du Web aux entreprises
Tours JUG (oct 2010) - NoSQL, des grands du Web aux entreprisesTours JUG (oct 2010) - NoSQL, des grands du Web aux entreprises
Tours JUG (oct 2010) - NoSQL, des grands du Web aux entreprises
 

Mix-IT (Apr 2011) - Intelligence Collective avec Apache Mahout

  • 1. Intelligence Collective avec Apache Mahout Classification, Regroupement, Recommandation
  • 2. Speaker @mfiguiere blog.xebia.fr Michaël Figuière Distributed Architectures NoSQL Search Engines
  • 4. En quelques mots • L’ensemble des utilisateurs constitue une intelligence L’intelligence collective d’un groupe est supérieure à la meilleure intelligence individuelle de ce groupe • Rendu immédiatement accessible par l’avènement d’Internet En facilitant l’agrégation des données
  • 5. Wikipedia Le wiki agrège l’intelligence collective des contributeurs
  • 6. Google et le PageRank PageRank agrège l’intelligence collective des sites Web
  • 7. La nature des données Les données aléatoires sont par définition imprévisibles !
  • 8. La nature des données Les données générées par les utilisateurs se comportent généralement selon des patterns reconnaissables !
  • 10. Machine Learning Le Machine Learning est un sous-ensemble de l’Intelligence Artificielle Intelligence Artificielle Machine Learning (Apprentissage Artificiel)
  • 11. NoSQL, Recherche et Machine Learning NoSQL, Machine Learning et Moteurs de Recherche sont complémentaires Machine Learning Moteurs de NoSQL Recherche
  • 12. Principaux algorithmes de Machine Learning • Recommandations Recommande des items à un utilisateur • Classification Classifie automatiquement des documents en apprenant à partir d’un ensemble déjà classifié • Clustering Découvre automatiquement des groupements parmi un ensemble de documents
  • 13. Recommandation - User based Amazon suggère des articles achetés par les clients similaires
  • 14. Recommandation - Item based Sur la page d’un article Amazon suggère des articles
  • 15. Similarités entre utilisateurs On constate ici que 1 2 les utilisateurs 1 et 2 ont des goûts similaires A B C D E F 3
  • 16. Exemples de cas d’usage de Recommandation • Conseiller des items aux clients sur un site d’e-commerce Augmentation du chiffre d’affaire • Conseiller des fonctionnalités aux utilisateurs La plupart des fonctionnalités sont méconnues • Filtrer et adapter le classement des résultats d’un moteur de recherche En se basant sur les clics des utilisateurs similaires, ...
  • 17. Classification Mails ‘classifiés’ en tant que spams par GMail
  • 18. Exemples de cas d’usage de Classification • Associer automatiquement des tags à des documents Ensemble de tags définis manuellement ou depuis Wikipedia • Extraire les documents suspicieux Spams, documents corrompus, ...
  • 20. Clustering avec K-Means A B C D E F
  • 21. Clustering avec K-Means Centres de A groupement B placés aléatoirement C D E F
  • 22. Clustering avec K-Means Les données sont rattachées au A centres le plus B proche C D E F
  • 23. Clustering avec K-Means Les centres sont alors déplacés de A manière à réduire la B somme des distances C D E F
  • 24. Clustering avec K-Means La donnée ‘C’ se retrouve alors A rattachée au B premier centre C D E F
  • 25. Exemples de cas d’usage du Clustering • Trouver les sujets principaux dans un ensemble de documents News feeds, documents métiers, ... • Découvrir des usages typiques des utilisateurs Profilage des utilisateurs, ...
  • 27. En quelques mots • Implémentation d’algorithmes de Machine Learning en Java Collection d’algorithme en expansion • La plupart disponibles en version MapReduce Utilisable avec de gros datasets • Encore jeune, mais en croissance rapide Démarré début 2009
  • 28. Documentation Cherche à rendre le Machine Learning accessible au plus grand nombre
  • 29. Exemple de Recommendation DataModel model = new FileDataModel(new File("data.csv")); UserSimilarity simil = new PearsonCorrelationSimilarity(model); UserNeighborhood neighborhood = new NearestNUserNeighborhood(2, similarity, model); Recommender recommender = new GenericUserBasedRecommender(model, neighborhood, simil); List<RecommendedItem> recommendations = recommender.recommend(1, 1);
  • 30. Classification avec Mahout Training Training examples algorithm Model Copy New data Model Decision
  • 31. Clustering avec Mahout Clustering List of Documents algorithm clusters
  • 32. Evaluation de la précision Ensemble des données disponibles Données utilisées Données utilisées pour pour le training évaluer la précision de l’algorithme
  • 33. Cas d’usage d’un moteur de recherche
  • 34. Un moteur de recherche Search
  • 35. Un moteur de recherche MyCustomer Search
  • 36. Un moteur de recherche MyCustomer Search Document Non Disclosure Agreement 12 days ago ... MyCustomer agrees not to disclose any part of ... Document 2010 Sales Report 1 month ago ... MyCustomer: 12 M€ with 3 deals ... Phone Call 2 days ago Phone Call Customer: MyCustomer Time: 9:55am Duration: 13min Description: Invoice not received for order #2354E
  • 37. Pipeline d’indexation Tika PDF Text Analyzer Extractor Search Index Analyzer Phone Call Lucene
  • 38. Un moteur de recherche plus complexe MyCustomer Search Sales Juridic Accounting Document 2010 Sales Report 1 month ago ... MyCustomer: 12 M€ with 3 deals ... Phone Call 2 days ago Phone Call Customer: MyCustomer Time: 9:55am Duration: 13min Description: Invoice not received for order #2354E
  • 39. Pipeline d’indexation avec Mahout Tika Mahout PDF Text Classifier Analyzer Extractor Search Index Classifier Analyzer Phone Call Lucene
  • 40. Pipeline de requête Lucene Query Analyzer Search Index Results
  • 41. Pipeline de requête avec Mahout Lucene Query Analyzer Search Index Custom Analyzer Scoring Results Basé sur les recommandations de Mahout
  • 42. Conclusion • Le Machine Learning apporte des fonctionnalités à forte valeur ajoutée Amélioration des revenus, de la productivité, de l’adoption • Mahout est en croissance rapide et devient un bon choix pour les applications Intégration facile aux applications métier • Les équipes fonctionnelles ne sont pas familières de ces technologies Une collaboration avec les équipes techniques est requise
  • 43. Questions / Réponses ? blog.xebia.fr @mfiguiere