@smramdani#attaquezlemahout
Attaquez le Mahout de face
pour exploiter vos Téraoctets d'historique !
Hammed Ramdani
@smramd...
@smramdani#attaquezlemahout
Qui suis-je ?
Tirez parti de la révolution numérique !
Hammed Ramdani
@smramdani
• Consultant ...
@smramdani#attaquezlemahout
Ma société
Palo IT en quelques chiffres
+120
collaborateurs
40
grands comptes
+50%
croissance ...
@YourTwitterHandle#DVXFR14{session hashtag} @smramdani#attaquezlemahout
Ce que vous allez apprendre pendant cette présenta...
@YourTwitterHandle#DVXFR14{session hashtag} @smramdani#attaquezlemahout
Ce que vous allez apprendre pendant cette présenta...
@smramdani#attaquezlemahout
Ma société
Les clients Les ventes
0
1000
2000
3000
4000
2008 2009 2010 2011
(fictive ;-)
Les p...
@YourTwitterHandle#DVXFR14{session hashtag} @smramdani#attaquezlemahout
Ce que vous allez apprendre pendant cette présenta...
@smramdani#attaquezlemahout
0
1000
2000
3000
4000
2008 2009 2010 2011 2012 2013
Les ventesLes ventes
0
1000
2000
3000
4000...
@YourTwitterHandle#DVXFR14{session hashtag} @smramdani#attaquezlemahout
Ce que vous allez apprendre pendant cette présenta...
@smramdani#attaquezlemahout
Quelle technique ?
•Recommandation
•Machine Learning (ML)
•Collaboratif Filtring (CF pour les ...
@smramdani#attaquezlemahout
Un peu de CF
Users
Items
Les données
Prédiction
Recommandation
CF Algos Résultats
Prédiction d...
@smramdani#attaquezlemahout
Qui recommande ?
et vous, dès demain ;-)
@smramdani#attaquezlemahout
Une anecdote ?
@smramdani#attaquezlemahout
Quel outil ?
GNU Octave
@smramdani#attaquezlemahout
youVaaS choisit le Mahout
•Couvre les 3C :
Collaboratif Filtring / Clustering / Classification...
@smramdani#attaquezlemahout
DataModel
CF made in Mahout
Users Items
Rankings
Storages
Similarité
User
Recommander
Voisinag...
@smramdani#attaquezlemahout
…
Cosine
DataModel
Quelle similarité ?
Users Items
Rankings
Storages
Similarité
Person
Euclidi...
@smramdani#attaquezlemahout
DataModel
Quel voisinage ?
Users Items
Rankings
Storages
Similarité
Voisinage
Threshold
Nearest
@smramdani#attaquezlemahout
Autre implémentation
DataModel
Users Items
Rankings
Storages
Similarité
Item
Recommander
Recom...
@smramdani#attaquezlemahout
Concrètement
1 2 3 4 5 6
User 1
User 2
User 3
User 4
?
? ?
?
? ?
…
…
@smramdani#attaquezlemahout
1,1,1.0
1,2,2.0
1,3,5.0
1,4,5.0
1,5,5.0
2,1,1.0
2,2,2.0
2,3,5.0
2,6,1.0
3,2,2.5
3,3,4.5
3,4,4....
@smramdani#attaquezlemahout
1. // Créer le modèle de données (DataModel)
2. DataModel model = new FileDataModel(new File("...
@smramdani#attaquezlemahout
1. int userId = 1;
2. int combien = 5;
3. List<RecommendedItem> recommendationItems = recommen...
@smramdani#attaquezlemahout
-- Les top 5 recommandations pour tous les userId -----------------------------
User 1 : item:...
@smramdani#attaquezlemahout
Soyez recommandables !
1 2 3 4 5 6
User 1
User 2
User 3
User 4
?
? ?
?
? ?
@smramdani#attaquezlemahout
1. // Créer le modèle de données (DataModel)
2. DataModel model = new FileDataModel(new File("...
@smramdani#attaquezlemahout
Les top 3 Items similaires pour le itemId 2 :
item:1 (valeur:0.96)
item:6 (valeur:0.69)
item:3...
@smramdani#attaquezlemahout
Evaluez-vous !
•Un peu de data-science en mode agile ;-)
• Nettoyer,
• Tester,
• Comparer,
• T...
@smramdani#attaquezlemahout
Calcul du score
Erreur de prédiction
pour Albert
@smramdani#attaquezlemahout
Calcul du score
Erreur de prédiction
pour Bob
@smramdani#attaquezlemahout
Calcul du score
Taux d’erreur
de prédiction
total comparé
@smramdani#attaquezlemahout
Tous les produits
Précision et rappel
Précision =
Nombre de recommandations
Rappel ou « Recall...
@smramdani#attaquezlemahout
Chalenge relevé ;-)
Les ventes
0
1250
2500
3750
5000
6250
2008 2009 2010 2011 2012 2013 2014
@YourTwitterHandle#DVXFR14{session hashtag} @smramdani#attaquezlemahout
Ce que vous allez apprendre pendant cette présenta...
@YourTwitterHandle#DVXFR14{session hashtag} @smramdani#attaquezlemahout
Prochain SlideShare
Chargement dans…5
×

Devoxx France 2014 - Conférence PALO IT "Attaquez le Mahout de face et exploitez vos Terraoctets d'historique !" par Hammed Ramdani.

1 450 vues

Publié le

Conférence - Devoxx France - Vendredi 18 avril 2014

Vous n'avez pas un PhD de statistiques ou de mathématiques, pourtant vous rêvez de fonctions de recommandation pour votre site e-Commerce, de résultats de recherche plus pertinents sur votre catalogue produits, de catégoriser enfin vos utilisateurs pour plaire au marketing ?

Pas de panique ! Nous allons démystifier Mahout ainsi que les concepts qui se cachent derrière les termes “machine learning”, “classification”, “collaborative filtering”, “clustering”, etc.

Ceci avec des animations ludiques et décomplexées, d'exemples concrets illustrant une sélection d’algorithmes très pratiques.

Publié dans : Données & analyses
0 commentaire
1 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
1 450
Sur SlideShare
0
Issues des intégrations
0
Intégrations
10
Actions
Partages
0
Téléchargements
12
Commentaires
0
J’aime
1
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Devoxx France 2014 - Conférence PALO IT "Attaquez le Mahout de face et exploitez vos Terraoctets d'historique !" par Hammed Ramdani.

  1. 1. @smramdani#attaquezlemahout Attaquez le Mahout de face pour exploiter vos Téraoctets d'historique ! Hammed Ramdani @smramdani Palo IT palo-it.com/blog
  2. 2. @smramdani#attaquezlemahout Qui suis-je ? Tirez parti de la révolution numérique ! Hammed Ramdani @smramdani • Consultant chez Palo IT • Architecte SI 2.0 et BigData • Coach Agile • Innovation Games trained facilitator
  3. 3. @smramdani#attaquezlemahout Ma société Palo IT en quelques chiffres +120 collaborateurs 40 grands comptes +50% croissance organique/an 5 bureaux Tirez parti de la révolution numérique ! Grands Comptes # Insufflez un esprit de Start-up # Tirez parti de la révolution numérique # Accélérez votre time-to-market PME innovantes & Start-ups # Challengez votre vision technologique # Acélérez votre go-to-market # Financez vos investissements Fonds d’investissement # Vérifiez la valeur et pérennité de vos investissements # Transformez vos organisations et assets technologiques Palo IT accompagne ses clients tout au long du cycle de vie des projets
  4. 4. @YourTwitterHandle#DVXFR14{session hashtag} @smramdani#attaquezlemahout Ce que vous allez apprendre pendant cette présentation What you will learn during this presentation
  5. 5. @YourTwitterHandle#DVXFR14{session hashtag} @smramdani#attaquezlemahout Ce que vous allez apprendre pendant cette présentation What you will learn during this presentation
  6. 6. @smramdani#attaquezlemahout Ma société Les clients Les ventes 0 1000 2000 3000 4000 2008 2009 2010 2011 (fictive ;-) Les produits
  7. 7. @YourTwitterHandle#DVXFR14{session hashtag} @smramdani#attaquezlemahout Ce que vous allez apprendre pendant cette présentation What you will learn during this presentation
  8. 8. @smramdani#attaquezlemahout 0 1000 2000 3000 4000 2008 2009 2010 2011 2012 2013 Les ventesLes ventes 0 1000 2000 3000 4000 2008 2009 2010 2011 Challenge Solution : Mise en avant de produits en exploitant les téraoctets d’historique Booster les ventes !
  9. 9. @YourTwitterHandle#DVXFR14{session hashtag} @smramdani#attaquezlemahout Ce que vous allez apprendre pendant cette présentation What you will learn during this presentation
  10. 10. @smramdani#attaquezlemahout Quelle technique ? •Recommandation •Machine Learning (ML) •Collaboratif Filtring (CF pour les intimes ;) •Exploration continue des informations disponibles •Produire des recommandations personnalisées •En temps réel
  11. 11. @smramdani#attaquezlemahout Un peu de CF Users Items Les données Prédiction Recommandation CF Algos Résultats Prédiction de la préférence du User Ui pour un Item Ij Proposition des top X Items préférés par le User Ui Ratings Enrichissement Comportement
  12. 12. @smramdani#attaquezlemahout Qui recommande ? et vous, dès demain ;-)
  13. 13. @smramdani#attaquezlemahout Une anecdote ?
  14. 14. @smramdani#attaquezlemahout Quel outil ? GNU Octave
  15. 15. @smramdani#attaquezlemahout youVaaS choisit le Mahout •Couvre les 3C : Collaboratif Filtring / Clustering / Classification •Algorithmes bien testés et supportés •Open Source en Licence Apache •Scalable et calcul distribué (parallélisme) sur un cluster Hadoop MapReduce •Communauté active et très dynamique •Java •Extensible
  16. 16. @smramdani#attaquezlemahout DataModel CF made in Mahout Users Items Rankings Storages Similarité User Recommander Voisinage Recommandations
  17. 17. @smramdani#attaquezlemahout … Cosine DataModel Quelle similarité ? Users Items Rankings Storages Similarité Person Euclidienne
  18. 18. @smramdani#attaquezlemahout DataModel Quel voisinage ? Users Items Rankings Storages Similarité Voisinage Threshold Nearest
  19. 19. @smramdani#attaquezlemahout Autre implémentation DataModel Users Items Rankings Storages Similarité Item Recommander Recommandations
  20. 20. @smramdani#attaquezlemahout Concrètement 1 2 3 4 5 6 User 1 User 2 User 3 User 4 ? ? ? ? ? ? … …
  21. 21. @smramdani#attaquezlemahout 1,1,1.0 1,2,2.0 1,3,5.0 1,4,5.0 1,5,5.0 2,1,1.0 2,2,2.0 2,3,5.0 2,6,1.0 3,2,2.5 3,3,4.5 3,4,4.0 3,5,1.0 3,6,4.0 4,1,5.0 4,2,5.0 4,3,5.0 4,5,1.0 Les données
  22. 22. @smramdani#attaquezlemahout 1. // Créer le modèle de données (DataModel) 2. DataModel model = new FileDataModel(new File("user-item-rating-dataset.dat")); 3. double threshold = 0.1d; 4. UserSimilarity similarity = new PearsonCorrelationSimilarity(model); 5. UserNeighborhood neighborhood = new ThresholdUserNeighborhood(threshold, similarity, model); 6. // Créer un GenericUserBasedRecommender basé sur nos données 7. UserBasedRecommender recommender = 8. new GenericUserBasedRecommender(model, neighborhood, similarity); CF basée sur les Users Créer un UserRecommender à partir de nos données
  23. 23. @smramdani#attaquezlemahout 1. int userId = 1; 2. int combien = 5; 3. List<RecommendedItem> recommendationItems = recommender.recommend(userId, combien); 4. // Afficher la lists des recommandations pour ce userId 5. for (RecommendedItem recommendedItem : recommendationItems) { 6. System.out.print("Item : " + recommendedItem.getItemID()); 7. System.out.println(" (taux : " + recommendedItem.getValue() + "/5)"); 8. } Interrogation Afficher les résultats de recommandation
  24. 24. @smramdani#attaquezlemahout -- Les top 5 recommandations pour tous les userId ----------------------------- User 1 : item:6 (valeur:1.5/5), User 2 : item:4 (valeur:4.6/5), item:5 (valeur:3.6/5), User 3 : item:1 (valeur:3.1/5), User 4 : pas de recommandations ... Et le verdict … Que nous dit Mahout ?
  25. 25. @smramdani#attaquezlemahout Soyez recommandables ! 1 2 3 4 5 6 User 1 User 2 User 3 User 4 ? ? ? ? ? ?
  26. 26. @smramdani#attaquezlemahout 1. // Créer le modèle de données (DataModel) 2. DataModel model = new FileDataModel(new File("user-item-rating-dataset.dat")); 3. UserSimilarity similarity = new PearsonCorrelationSimilarity(model); 5. UserBasedRecommender recommender = new GenericItemBasedRecommender(model, similarity); 6. int userId = 1; 7. int combien = 5; 8. List<RecommendedItem> recommendationItems = recommender.recommend(userId, combien); 9. // mais aussi 10. List<RecommendedItem> similarItems = recommender.mostSimilarItems(itemID, combien); CF basée sur les Items Créer un ItemRecommender à partir de nos données
  27. 27. @smramdani#attaquezlemahout Les top 3 Items similaires pour le itemId 2 : item:1 (valeur:0.96) item:6 (valeur:0.69) item:3 (valeur:-0.32) Autres résultats … Que nous dit Mahout ?
  28. 28. @smramdani#attaquezlemahout Evaluez-vous ! •Un peu de data-science en mode agile ;-) • Nettoyer, • Tester, • Comparer, • Tuner, • Optimiser •Règle des 90% Apprentissage / 10% Test •Calcul du score •Calcul de la « précision » et du « rappel »
  29. 29. @smramdani#attaquezlemahout Calcul du score Erreur de prédiction pour Albert
  30. 30. @smramdani#attaquezlemahout Calcul du score Erreur de prédiction pour Bob
  31. 31. @smramdani#attaquezlemahout Calcul du score Taux d’erreur de prédiction total comparé
  32. 32. @smramdani#attaquezlemahout Tous les produits Précision et rappel Précision = Nombre de recommandations Rappel ou « Recall » = Nombre de préférences recommandées Nombre de préférences Nombre de préférences recommandées Préférences Autres Recommandations Précision 0 1 Rappel 0 1
  33. 33. @smramdani#attaquezlemahout Chalenge relevé ;-) Les ventes 0 1250 2500 3750 5000 6250 2008 2009 2010 2011 2012 2013 2014
  34. 34. @YourTwitterHandle#DVXFR14{session hashtag} @smramdani#attaquezlemahout Ce que vous allez apprendre pendant cette présentation What you will learn during this presentation
  35. 35. @YourTwitterHandle#DVXFR14{session hashtag} @smramdani#attaquezlemahout

×