SlideShare une entreprise Scribd logo
1  sur  37
1
#yTechParis
Machine Learning sur hybris
ecommerce
[Y]recommender
Présenté par Yawo KPOTUFE
Hybris expert / Solution architect
2
#yTechParis
Notre cible en image
3
#yTechParis
 Partie I – Savoir plus pour vendre plus
 Partie II – Hybris Business Events data
 Partie III – Data Mining, création des Modèles
 Partie IV – Exploitation dans Hybris
 Partie V – Perspectives & Live Demo
 Partie VI – Questions
Agenda
4
#yTechParis
 1 – Le merchandising
 2 – Outils Hybris pour le merchandising
 3 – Solutions tierces (compario, fredhopper)
 4 – Concept: Collaborative Filtering, Similarités
 5 – Exemples de Netflix, Amazon
 6 – Hybris Business Events
 7 – Recommandations avec Business events
Savoir plus pour vendre plus
5
#yTechParis
Le merchandising
 Une politique efficace de
prix, de discounts et de
promotions
 Ensemble des efforts, moyens et techniques mis en œuvre pour vendre
6
#yTechParis
 Un design et un packaging
séduisants
Le merchandising
7
#yTechParis
 Et surtout la combinaison du tout.
Décider à quel moment,
à quel utilisateur présenter
tel produit, telle promotion…
Le merchandising
8
#yTechParis SAP Hybris Marketing extensions
 Classiques: PDP, PLP, Facets
 Product References sur le Product (administrable en hmc)
 Similar, Accessory
 Up-sell, Cross-sell, …
 Hot Folders pour l’intégration de ProductReferences
 CMS Components
Outils Hybris pour le merchandising
9
#yTechParis
Solutions tierces: Sparkow (ex compario)
10
#yTechParis
Solutions tierces: SDL (ex Fredhopper)
11
#yTechParis
Concept: Collaborative Filtering, Similarités
 Détecter des similarités
à partir des actions et
comportements des
utilisateurs dans la vraie vie.
 Détecter des similarités à partir des
caractéristiques (product features/categories)
des produits
Merchandising par recommandation
12
#yTechParis
Success stories: Netflix & Amazon
AmazonProduct recommandation system
NetflixMovie recommender engine
13
#yTechParis
 Capture les actions des utilisateurs (view, buy, …)
 Similaire à un certain degré à google analytics
 Possibilité de définir de nouveaux events
 Tracking basé sur Piwik (un puissant moteur gratuit d’analytics)
 Gestion du flux d’events via Spring integration
 Plusieurs outputs possibles
 Stream (ex: Storm, Spark Stream)
 File (ex: Logger)
 Queue (ex: RabbitMQ, Kafka)
 Database (ex: MySQL, Oracle, Mongo, Hbase, Cassandra)…
Hybris Business events
14
#yTechParis
Hybris Business events
Events supportés Out Of The Box
15
#yTechParis
Hybris Business events
Architecture
16
#yTechParis
Recommandations avec Business events
a. Récolter des
business events
b. Calculer les
recommandations
17
#yTechParis
 1 – Préparation des données
 2 – Le stockage des données
 3 – Hbase, une solution Big Data
 4 – Schema des tables Hbase
 5 – Yrecommender: notre table ‘view’
Hybris Business Events data
18
#yTechParis
 Phase très importante de Machine Learning
 Données erronées ou mal structurées = Big Fail !
 Collecte des données des events via Spring integration
 Transformation aux structures de données des algorithmes
 Nettoyage des données erronées
 Stockage persistant des données (Databases, files, …)
Préparation des données
19
#yTechParis
 Problématique de taille illimitée (terabytes en quelques années)
 Limites du modèle relationnel :
 Scalability
 Distribution
 Fast query
 Schema-flexibles tables
Le stockage des données
20
#yTechParis
 Solution basée sur les recherches de Google Big Table
 Supporte des milliards lignes X des millions de colonnes !
 Ecriture et lecture strictement consistents
 Schéma flexible en famille de colonne …
 Supporte Hadoop (Jobs MapReduce)
 Failover automatique sur le cluster de servers (region servers)
 Partitionnement automatique des tables (sharding)
 Offre un shell en ruby, une API Java et un accès Thrift
Hbase, une solution NoSQL - Big Data
21
#yTechParis
 Les column families (cf) sont définies dans le schema
 Chaque couple row/cf est une sorte de HashMap libre
 La cf peut contenir ainsi des champs différents par row
Schema des tables Hbase
22
#yTechParis
 Row key construite à partir des infos de chaque event
 3 columns families (cf) définies: u,p, et c (user, product et cart)
 Chaque row peut définir les champs de ses cfs
 Données vérifiables via le shell hbase (requête de scan)
 Script shell Yrecommender:
> transforme les derniers business events, les charge dans Hbase et les archive:
https://github.com/yawo/yreco/blob/master/scripts/tsv.extract.sh
[Y]recommender: notre table ‘view’
Rows Column families
u (user) p (product) c (cart/order)
Row key • id
• name
• …
• id
• name
• …
• id
• total
• …
23
#yTechParis
 1 – Le framework de calcul distribué Spark
 2 – Concepts: RDD
 3 – Quelques algorithmes: ALS, FP-Growth
 4 – L’approche Yrecommender
 5 – Evaluation d’erreurs et ajustements
Data Mining, création des Modèles
24
#yTechParis
 Framework de calcul très rapide en cluster
 Pionner dans le monde du Machine Learning
 100x plus rapide que Hadoop sur certains algorithmes
 Dispose de plusieurs composants dont:
 Spark core pour le processing en parallèle de données
 MLLib, une librairie d’algorithmes de machine learning
 Fournit les algorithmes dont nous avons besoin:
 Recommandations par Collaborative filtering
 Similarités
 Bundles frequents par FP-Growth
Le framework de calcul distribué Apache Spark
25
#yTechParis
 Spark utilise une abstraction de collection parallèle
 File, Array, Hbase table, MySQL, etc. -> RDD
 RDD supporte des fonctions parallélisées comme:
• foreach, map, flatMap, collect, filter, count, aggregate, reduce, …
Concept: RDD
26
#yTechParis ALS pour Alternating Least Squares
 Algorithme phare de recommendation
 ALS opère sur un RDD de Rating
 Rating = note (action) d’un utilisateur sur un élement
 Modélisation Rating pour Yrecommender:
 user = colonne u:id de la table ‘view’ de Hbase
 item = colonne p:id de la table ‘view’ de Hbase
 rating = 1 (indique que la PDP est vue).
 En scala: class Rating(user:Int, item:Int, rating:Double)
Quelques Algorithmes: ALS
27
#yTechParis
 FP-Growth pour Frequent Pattern Growth
 Algorithme phare de détection de fréquence
 Intérêt: détecte les bundles/promos intéressants
 FP-Growth opère sur un RDD de Transactions (liste de produits)
 Transactions = liste des produits d’un utilisateur
 Modélisation Transactions pour Yrecommender:
 liste des colonnes p:id de la table ‘view’ de Hbase groupés par u:id
 En scala: class List[Int]( item1, item2, item3,…)
Quelques Algorithmes: FP-Growth
28
#yTechParis
 Charger les view events depuis Hbase dans Spark
 Mapper les codes produits à des Int
 Récupérer les ratings et les transactions
 Appliquer les algorithmes
 Calculer les recommandations
 Calculer les similarités
 Calculer les patterns (bundles) fréquents
 Générer des outputs csv pour exploitation
 Code source:
https://github.com/yawo/yreco/blob/master/src/main/scala/com/yreco/RecommenderDemo.scala
L’approche générale Yrecommender
29
#yTechParis
 Le Machine Learning ne vient pas des Mayas! (pas une prophétie)
 Méthodes d’évaluation d’erreurs d’un model
 À vue d’oeil
 L’erreur quadratique moyenne (MSE, utilisé en statistique)
 Les algorithmes permettent le “Tuning” des paramètres
 Diminuer les erreurs en affinant les paramètres
 Tester différentes facettes de models
Evaluation d’erreurs et ajustements
30
#yTechParis
 1 – Batch mode: Génération des résultats en csv
 2 – => Exploitation dans Hybris via Hotfolder
 3 – Real time mode: Finagle ThriftServer
 4 – => Exploitation dans Hybris via Spring
 5 – Possibilités: Solr, RestServer / Cronjob, Crontab…
Exploitation dans Hybris
31
#yTechParis
 Les models restent internes à la JVM Spark (classes java)
 Besoin de formats exploitables depuis Hybris
 Compiler les résultats les plus significatifs
 Définir des seuils de pertinence (en fonction des algorithmes)
 Tenir compte de l’aspect distribué des données…
 Plusieurs options d’output possibles: csv, parquet, sql, etc
 Approche Yrecommender:
 Ex format = productCode, similarProductCode
Batch mode: Génération des résultats en csv
32
#yTechParis
 Une nouvelle extension de plus sur terre: yrecommender
 Config hotfolder (code source: https://goo.gl/MeSNae)
 Importer des ProductReferences (relation dans les deux sens)
Exploitation dans Hybris via Hotfolder
33
#yTechParis
 Apache Thrift = sorte de corba, avec idl, cross language
 Outils de génération server/client vers plusieurs langages
 Twitter Finagle = framework de services RPC
 Destiné à la JVM
 Basé sur les Futures pour un multithreading clean…
 Supporte thrift, rest http, sockets, …
 Supporte des filters,
 Yrecommender expose les models via un server Thrift
code source: https://goo.gl/bCQmIp
Real time mode: Finagle Thrift Server
34
#yTechParis
 Ajouter le client Thrift généré (sous forme de jar) à Hybris
 Exposer le client sous forme de service via Spring
code source: https://goo.gl/6acykF
Exploitation dans Hybris via Spring
35
#yTechParis
 Exposer un serveur Rest
 Embarqué avec finagle
 Externe avec tomcat
 Indexer les résultats de models dans Solr ou Elasticsearch
 Streamer les events vers Spark (par ex avec Kafka et Spark Streaming)
 Automatiser tout le process depuis les events jusqu’aux csvs
 Unix crontab (ou équivalent windows) pour la mise à jour des models
 Hybris dynamic cronjob avec triggers
Possibilités: Solr, RestServer / Cronjob, Crontab
36
#yTechParis
 Outils: Hybris, Spark 1.5, Hbase, Bash (ou powershell)
 Environnement de démo : Ubuntu, Hybris 5.7, scala 2.11
 Github code spark:
 Github extension yrecommender:
Live Demo
37
#yTechParis
Questions

Contenu connexe

En vedette

Expérience informationnelle et exploitation analytique des données : comment ...
Expérience informationnelle et exploitation analytique des données : comment ...Expérience informationnelle et exploitation analytique des données : comment ...
Expérience informationnelle et exploitation analytique des données : comment ...Le_GFII
 
Data2Content - Datajournalisme - Machine Learning - Meet Up Paris
Data2Content - Datajournalisme - Machine Learning - Meet Up ParisData2Content - Datajournalisme - Machine Learning - Meet Up Paris
Data2Content - Datajournalisme - Machine Learning - Meet Up ParisChristophe Tricot
 
Mahout Workshop on Google Cloud Platform
Mahout Workshop on Google Cloud PlatformMahout Workshop on Google Cloud Platform
Mahout Workshop on Google Cloud PlatformIMC Institute
 
Big Data Analytics using Mahout
Big Data Analytics using MahoutBig Data Analytics using Mahout
Big Data Analytics using MahoutIMC Institute
 
Apprentissage Automatique et moteurs de recherche
Apprentissage Automatique et moteurs de rechercheApprentissage Automatique et moteurs de recherche
Apprentissage Automatique et moteurs de recherchePhilippe YONNET
 
David Joubert - Workshop Azure ML - Azure Data Factory - Global Azure Bootcam...
David Joubert - Workshop Azure ML - Azure Data Factory - Global Azure Bootcam...David Joubert - Workshop Azure ML - Azure Data Factory - Global Azure Bootcam...
David Joubert - Workshop Azure ML - Azure Data Factory - Global Azure Bootcam...AZUG FR
 
Comparative Recommender System Evaluation: Benchmarking Recommendation Frame...
Comparative Recommender System Evaluation: Benchmarking Recommendation Frame...Comparative Recommender System Evaluation: Benchmarking Recommendation Frame...
Comparative Recommender System Evaluation: Benchmarking Recommendation Frame...Alan Said
 
Machine learning, deep learning et search : à quand ces innovations dans nos ...
Machine learning, deep learning et search : à quand ces innovations dans nos ...Machine learning, deep learning et search : à quand ces innovations dans nos ...
Machine learning, deep learning et search : à quand ces innovations dans nos ...Antidot
 
Azure Camp 9 Décembre 2014 - slides session développeurs IOT Big Data
Azure Camp 9 Décembre 2014 - slides session développeurs IOT Big DataAzure Camp 9 Décembre 2014 - slides session développeurs IOT Big Data
Azure Camp 9 Décembre 2014 - slides session développeurs IOT Big DataMicrosoft
 
[Sildes] plateforme centralisée d’analyse des logs des frontaux http en temps...
[Sildes] plateforme centralisée d’analyse des logs des frontaux http en temps...[Sildes] plateforme centralisée d’analyse des logs des frontaux http en temps...
[Sildes] plateforme centralisée d’analyse des logs des frontaux http en temps...Guillaume MOCQUET
 
The Good, Bad and Ugly of Serverless
The Good, Bad and Ugly of ServerlessThe Good, Bad and Ugly of Serverless
The Good, Bad and Ugly of ServerlessPipedrive
 
Machine Learning & SEO - SEO Camp'Us Paris 2016
Machine Learning & SEO - SEO Camp'Us Paris 2016Machine Learning & SEO - SEO Camp'Us Paris 2016
Machine Learning & SEO - SEO Camp'Us Paris 2016Julien Deneuville
 
Machine learning pour tous
Machine learning pour tousMachine learning pour tous
Machine learning pour tousDamien Seguy
 
Scikit-Learn: Machine Learning en Python
Scikit-Learn: Machine Learning en PythonScikit-Learn: Machine Learning en Python
Scikit-Learn: Machine Learning en PythonMicrosoft
 
La internacionalización de la es
La internacionalización de la esLa internacionalización de la es
La internacionalización de la esVictor Avendaño
 
Tremblay indatou__zuluaga_essai
Tremblay  indatou__zuluaga_essaiTremblay  indatou__zuluaga_essai
Tremblay indatou__zuluaga_essaimahdi taleb
 

En vedette (18)

Expérience informationnelle et exploitation analytique des données : comment ...
Expérience informationnelle et exploitation analytique des données : comment ...Expérience informationnelle et exploitation analytique des données : comment ...
Expérience informationnelle et exploitation analytique des données : comment ...
 
Data2Content - Datajournalisme - Machine Learning - Meet Up Paris
Data2Content - Datajournalisme - Machine Learning - Meet Up ParisData2Content - Datajournalisme - Machine Learning - Meet Up Paris
Data2Content - Datajournalisme - Machine Learning - Meet Up Paris
 
Mahout Workshop on Google Cloud Platform
Mahout Workshop on Google Cloud PlatformMahout Workshop on Google Cloud Platform
Mahout Workshop on Google Cloud Platform
 
Big Data Analytics using Mahout
Big Data Analytics using MahoutBig Data Analytics using Mahout
Big Data Analytics using Mahout
 
Apprentissage Automatique et moteurs de recherche
Apprentissage Automatique et moteurs de rechercheApprentissage Automatique et moteurs de recherche
Apprentissage Automatique et moteurs de recherche
 
David Joubert - Workshop Azure ML - Azure Data Factory - Global Azure Bootcam...
David Joubert - Workshop Azure ML - Azure Data Factory - Global Azure Bootcam...David Joubert - Workshop Azure ML - Azure Data Factory - Global Azure Bootcam...
David Joubert - Workshop Azure ML - Azure Data Factory - Global Azure Bootcam...
 
Comparative Recommender System Evaluation: Benchmarking Recommendation Frame...
Comparative Recommender System Evaluation: Benchmarking Recommendation Frame...Comparative Recommender System Evaluation: Benchmarking Recommendation Frame...
Comparative Recommender System Evaluation: Benchmarking Recommendation Frame...
 
Machine learning, deep learning et search : à quand ces innovations dans nos ...
Machine learning, deep learning et search : à quand ces innovations dans nos ...Machine learning, deep learning et search : à quand ces innovations dans nos ...
Machine learning, deep learning et search : à quand ces innovations dans nos ...
 
Azure Camp 9 Décembre 2014 - slides session développeurs IOT Big Data
Azure Camp 9 Décembre 2014 - slides session développeurs IOT Big DataAzure Camp 9 Décembre 2014 - slides session développeurs IOT Big Data
Azure Camp 9 Décembre 2014 - slides session développeurs IOT Big Data
 
[Sildes] plateforme centralisée d’analyse des logs des frontaux http en temps...
[Sildes] plateforme centralisée d’analyse des logs des frontaux http en temps...[Sildes] plateforme centralisée d’analyse des logs des frontaux http en temps...
[Sildes] plateforme centralisée d’analyse des logs des frontaux http en temps...
 
The Good, Bad and Ugly of Serverless
The Good, Bad and Ugly of ServerlessThe Good, Bad and Ugly of Serverless
The Good, Bad and Ugly of Serverless
 
Machine Learning & SEO - SEO Camp'Us Paris 2016
Machine Learning & SEO - SEO Camp'Us Paris 2016Machine Learning & SEO - SEO Camp'Us Paris 2016
Machine Learning & SEO - SEO Camp'Us Paris 2016
 
Machine learning pour tous
Machine learning pour tousMachine learning pour tous
Machine learning pour tous
 
Scikit-Learn: Machine Learning en Python
Scikit-Learn: Machine Learning en PythonScikit-Learn: Machine Learning en Python
Scikit-Learn: Machine Learning en Python
 
Comparatif CMS
Comparatif CMSComparatif CMS
Comparatif CMS
 
La internacionalización de la es
La internacionalización de la esLa internacionalización de la es
La internacionalización de la es
 
Tremblay indatou__zuluaga_essai
Tremblay  indatou__zuluaga_essaiTremblay  indatou__zuluaga_essai
Tremblay indatou__zuluaga_essai
 
Powerpoint27062012v2
Powerpoint27062012v2Powerpoint27062012v2
Powerpoint27062012v2
 

Similaire à Yrecommender, machine learning sur Hybris

Comment construire un environnement e-commerce complet avec Symfony 2 ?
Comment construire un environnement e-commerce complet avec Symfony 2 ? Comment construire un environnement e-commerce complet avec Symfony 2 ?
Comment construire un environnement e-commerce complet avec Symfony 2 ? Fabien Gasser
 
Matinale "Data Science et Machine Learning"
Matinale "Data Science et Machine Learning"Matinale "Data Science et Machine Learning"
Matinale "Data Science et Machine Learning"Aline Deschamps
 
Business Intelligence
Business IntelligenceBusiness Intelligence
Business Intelligences.poles
 
Gestion_d_un_projet_Web_e_commerce_Piece (1).pdf
Gestion_d_un_projet_Web_e_commerce_Piece (1).pdfGestion_d_un_projet_Web_e_commerce_Piece (1).pdf
Gestion_d_un_projet_Web_e_commerce_Piece (1).pdfSofianeHassine2
 
Gestion_d_un_projet_Web_e_commerce_Piece.pdf
Gestion_d_un_projet_Web_e_commerce_Piece.pdfGestion_d_un_projet_Web_e_commerce_Piece.pdf
Gestion_d_un_projet_Web_e_commerce_Piece.pdfSofianeHassine2
 
Big Data by Soft Computing - Lille
Big Data by Soft Computing - LilleBig Data by Soft Computing - Lille
Big Data by Soft Computing - LilleSoft Computing
 
L'expérience client au centre de la donnée @AirFrance
L'expérience client au centre de la donnée @AirFranceL'expérience client au centre de la donnée @AirFrance
L'expérience client au centre de la donnée @AirFranceMongoDB
 
E-Commerce et cross canal
E-Commerce et cross canalE-Commerce et cross canal
E-Commerce et cross canalFabien Gasser
 
Les technologies big data avec speech commentaries
Les technologies big data avec speech commentariesLes technologies big data avec speech commentaries
Les technologies big data avec speech commentariesRima Jamli Faidi
 
Conférence #nwxtech5 : Introduction à Backbone.js par Hugo Larcher
Conférence #nwxtech5 : Introduction à Backbone.js par Hugo LarcherConférence #nwxtech5 : Introduction à Backbone.js par Hugo Larcher
Conférence #nwxtech5 : Introduction à Backbone.js par Hugo LarcherNormandie Web Xperts
 
Business Intelligence : Offres du marché et benchmarking
Business Intelligence : Offres du marché et benchmarkingBusiness Intelligence : Offres du marché et benchmarking
Business Intelligence : Offres du marché et benchmarkingSamia NACIRI
 
UN ÉLÉPHANT QUI SE BALANÇAIT … Comment mettre en musique les big data et valo...
UN ÉLÉPHANT QUI SE BALANÇAIT … Comment mettre en musique les big data et valo...UN ÉLÉPHANT QUI SE BALANÇAIT … Comment mettre en musique les big data et valo...
UN ÉLÉPHANT QUI SE BALANÇAIT … Comment mettre en musique les big data et valo...OCTO Technology
 
Apprentissage automatique avec RapidMiner
Apprentissage automatique avec RapidMinerApprentissage automatique avec RapidMiner
Apprentissage automatique avec RapidMinerMajdi Hannachi
 
Conference Informatique Embarquée Synergie-NTIC
Conference Informatique Embarquée Synergie-NTICConference Informatique Embarquée Synergie-NTIC
Conference Informatique Embarquée Synergie-NTICChristian Charreyre
 
Ibm cloud support for partners 9 feb 2011
Ibm cloud support for partners   9 feb 2011Ibm cloud support for partners   9 feb 2011
Ibm cloud support for partners 9 feb 2011Club Alliances
 
ERP, à destination des TPE et PME - Jesuisfantastic
ERP, à destination des TPE et PME  - JesuisfantasticERP, à destination des TPE et PME  - Jesuisfantastic
ERP, à destination des TPE et PME - JesuisfantasticUCM James Van Wayenbergh
 
Volcamp 2023 - Compter les moutons à grande échelle
Volcamp 2023 - Compter les moutons à grande échelleVolcamp 2023 - Compter les moutons à grande échelle
Volcamp 2023 - Compter les moutons à grande échelleKarim Bogtob
 
AWS Paris Summit 2014 - T3 - Du temps réel au data warehouse : capturez et an...
AWS Paris Summit 2014 - T3 - Du temps réel au data warehouse : capturez et an...AWS Paris Summit 2014 - T3 - Du temps réel au data warehouse : capturez et an...
AWS Paris Summit 2014 - T3 - Du temps réel au data warehouse : capturez et an...Amazon Web Services
 
Monitoring applicatif : Pourquoi et comment ?
Monitoring applicatif : Pourquoi et comment ?Monitoring applicatif : Pourquoi et comment ?
Monitoring applicatif : Pourquoi et comment ?Kenny Dits
 

Similaire à Yrecommender, machine learning sur Hybris (20)

Comment construire un environnement e-commerce complet avec Symfony 2 ?
Comment construire un environnement e-commerce complet avec Symfony 2 ? Comment construire un environnement e-commerce complet avec Symfony 2 ?
Comment construire un environnement e-commerce complet avec Symfony 2 ?
 
Matinale "Data Science et Machine Learning"
Matinale "Data Science et Machine Learning"Matinale "Data Science et Machine Learning"
Matinale "Data Science et Machine Learning"
 
Business Intelligence
Business IntelligenceBusiness Intelligence
Business Intelligence
 
Gestion_d_un_projet_Web_e_commerce_Piece (1).pdf
Gestion_d_un_projet_Web_e_commerce_Piece (1).pdfGestion_d_un_projet_Web_e_commerce_Piece (1).pdf
Gestion_d_un_projet_Web_e_commerce_Piece (1).pdf
 
Gestion_d_un_projet_Web_e_commerce_Piece.pdf
Gestion_d_un_projet_Web_e_commerce_Piece.pdfGestion_d_un_projet_Web_e_commerce_Piece.pdf
Gestion_d_un_projet_Web_e_commerce_Piece.pdf
 
Big Data by Soft Computing - Lille
Big Data by Soft Computing - LilleBig Data by Soft Computing - Lille
Big Data by Soft Computing - Lille
 
L'expérience client au centre de la donnée @AirFrance
L'expérience client au centre de la donnée @AirFranceL'expérience client au centre de la donnée @AirFrance
L'expérience client au centre de la donnée @AirFrance
 
E-Commerce et cross canal
E-Commerce et cross canalE-Commerce et cross canal
E-Commerce et cross canal
 
Les technologies big data avec speech commentaries
Les technologies big data avec speech commentariesLes technologies big data avec speech commentaries
Les technologies big data avec speech commentaries
 
Conférence #nwxtech5 : Introduction à Backbone.js par Hugo Larcher
Conférence #nwxtech5 : Introduction à Backbone.js par Hugo LarcherConférence #nwxtech5 : Introduction à Backbone.js par Hugo Larcher
Conférence #nwxtech5 : Introduction à Backbone.js par Hugo Larcher
 
Business Intelligence : Offres du marché et benchmarking
Business Intelligence : Offres du marché et benchmarkingBusiness Intelligence : Offres du marché et benchmarking
Business Intelligence : Offres du marché et benchmarking
 
UN ÉLÉPHANT QUI SE BALANÇAIT … Comment mettre en musique les big data et valo...
UN ÉLÉPHANT QUI SE BALANÇAIT … Comment mettre en musique les big data et valo...UN ÉLÉPHANT QUI SE BALANÇAIT … Comment mettre en musique les big data et valo...
UN ÉLÉPHANT QUI SE BALANÇAIT … Comment mettre en musique les big data et valo...
 
Big data
Big dataBig data
Big data
 
Apprentissage automatique avec RapidMiner
Apprentissage automatique avec RapidMinerApprentissage automatique avec RapidMiner
Apprentissage automatique avec RapidMiner
 
Conference Informatique Embarquée Synergie-NTIC
Conference Informatique Embarquée Synergie-NTICConference Informatique Embarquée Synergie-NTIC
Conference Informatique Embarquée Synergie-NTIC
 
Ibm cloud support for partners 9 feb 2011
Ibm cloud support for partners   9 feb 2011Ibm cloud support for partners   9 feb 2011
Ibm cloud support for partners 9 feb 2011
 
ERP, à destination des TPE et PME - Jesuisfantastic
ERP, à destination des TPE et PME  - JesuisfantasticERP, à destination des TPE et PME  - Jesuisfantastic
ERP, à destination des TPE et PME - Jesuisfantastic
 
Volcamp 2023 - Compter les moutons à grande échelle
Volcamp 2023 - Compter les moutons à grande échelleVolcamp 2023 - Compter les moutons à grande échelle
Volcamp 2023 - Compter les moutons à grande échelle
 
AWS Paris Summit 2014 - T3 - Du temps réel au data warehouse : capturez et an...
AWS Paris Summit 2014 - T3 - Du temps réel au data warehouse : capturez et an...AWS Paris Summit 2014 - T3 - Du temps réel au data warehouse : capturez et an...
AWS Paris Summit 2014 - T3 - Du temps réel au data warehouse : capturez et an...
 
Monitoring applicatif : Pourquoi et comment ?
Monitoring applicatif : Pourquoi et comment ?Monitoring applicatif : Pourquoi et comment ?
Monitoring applicatif : Pourquoi et comment ?
 

Yrecommender, machine learning sur Hybris

  • 1. 1 #yTechParis Machine Learning sur hybris ecommerce [Y]recommender Présenté par Yawo KPOTUFE Hybris expert / Solution architect
  • 3. 3 #yTechParis  Partie I – Savoir plus pour vendre plus  Partie II – Hybris Business Events data  Partie III – Data Mining, création des Modèles  Partie IV – Exploitation dans Hybris  Partie V – Perspectives & Live Demo  Partie VI – Questions Agenda
  • 4. 4 #yTechParis  1 – Le merchandising  2 – Outils Hybris pour le merchandising  3 – Solutions tierces (compario, fredhopper)  4 – Concept: Collaborative Filtering, Similarités  5 – Exemples de Netflix, Amazon  6 – Hybris Business Events  7 – Recommandations avec Business events Savoir plus pour vendre plus
  • 5. 5 #yTechParis Le merchandising  Une politique efficace de prix, de discounts et de promotions  Ensemble des efforts, moyens et techniques mis en œuvre pour vendre
  • 6. 6 #yTechParis  Un design et un packaging séduisants Le merchandising
  • 7. 7 #yTechParis  Et surtout la combinaison du tout. Décider à quel moment, à quel utilisateur présenter tel produit, telle promotion… Le merchandising
  • 8. 8 #yTechParis SAP Hybris Marketing extensions  Classiques: PDP, PLP, Facets  Product References sur le Product (administrable en hmc)  Similar, Accessory  Up-sell, Cross-sell, …  Hot Folders pour l’intégration de ProductReferences  CMS Components Outils Hybris pour le merchandising
  • 11. 11 #yTechParis Concept: Collaborative Filtering, Similarités  Détecter des similarités à partir des actions et comportements des utilisateurs dans la vraie vie.  Détecter des similarités à partir des caractéristiques (product features/categories) des produits Merchandising par recommandation
  • 12. 12 #yTechParis Success stories: Netflix & Amazon AmazonProduct recommandation system NetflixMovie recommender engine
  • 13. 13 #yTechParis  Capture les actions des utilisateurs (view, buy, …)  Similaire à un certain degré à google analytics  Possibilité de définir de nouveaux events  Tracking basé sur Piwik (un puissant moteur gratuit d’analytics)  Gestion du flux d’events via Spring integration  Plusieurs outputs possibles  Stream (ex: Storm, Spark Stream)  File (ex: Logger)  Queue (ex: RabbitMQ, Kafka)  Database (ex: MySQL, Oracle, Mongo, Hbase, Cassandra)… Hybris Business events
  • 14. 14 #yTechParis Hybris Business events Events supportés Out Of The Box
  • 16. 16 #yTechParis Recommandations avec Business events a. Récolter des business events b. Calculer les recommandations
  • 17. 17 #yTechParis  1 – Préparation des données  2 – Le stockage des données  3 – Hbase, une solution Big Data  4 – Schema des tables Hbase  5 – Yrecommender: notre table ‘view’ Hybris Business Events data
  • 18. 18 #yTechParis  Phase très importante de Machine Learning  Données erronées ou mal structurées = Big Fail !  Collecte des données des events via Spring integration  Transformation aux structures de données des algorithmes  Nettoyage des données erronées  Stockage persistant des données (Databases, files, …) Préparation des données
  • 19. 19 #yTechParis  Problématique de taille illimitée (terabytes en quelques années)  Limites du modèle relationnel :  Scalability  Distribution  Fast query  Schema-flexibles tables Le stockage des données
  • 20. 20 #yTechParis  Solution basée sur les recherches de Google Big Table  Supporte des milliards lignes X des millions de colonnes !  Ecriture et lecture strictement consistents  Schéma flexible en famille de colonne …  Supporte Hadoop (Jobs MapReduce)  Failover automatique sur le cluster de servers (region servers)  Partitionnement automatique des tables (sharding)  Offre un shell en ruby, une API Java et un accès Thrift Hbase, une solution NoSQL - Big Data
  • 21. 21 #yTechParis  Les column families (cf) sont définies dans le schema  Chaque couple row/cf est une sorte de HashMap libre  La cf peut contenir ainsi des champs différents par row Schema des tables Hbase
  • 22. 22 #yTechParis  Row key construite à partir des infos de chaque event  3 columns families (cf) définies: u,p, et c (user, product et cart)  Chaque row peut définir les champs de ses cfs  Données vérifiables via le shell hbase (requête de scan)  Script shell Yrecommender: > transforme les derniers business events, les charge dans Hbase et les archive: https://github.com/yawo/yreco/blob/master/scripts/tsv.extract.sh [Y]recommender: notre table ‘view’ Rows Column families u (user) p (product) c (cart/order) Row key • id • name • … • id • name • … • id • total • …
  • 23. 23 #yTechParis  1 – Le framework de calcul distribué Spark  2 – Concepts: RDD  3 – Quelques algorithmes: ALS, FP-Growth  4 – L’approche Yrecommender  5 – Evaluation d’erreurs et ajustements Data Mining, création des Modèles
  • 24. 24 #yTechParis  Framework de calcul très rapide en cluster  Pionner dans le monde du Machine Learning  100x plus rapide que Hadoop sur certains algorithmes  Dispose de plusieurs composants dont:  Spark core pour le processing en parallèle de données  MLLib, une librairie d’algorithmes de machine learning  Fournit les algorithmes dont nous avons besoin:  Recommandations par Collaborative filtering  Similarités  Bundles frequents par FP-Growth Le framework de calcul distribué Apache Spark
  • 25. 25 #yTechParis  Spark utilise une abstraction de collection parallèle  File, Array, Hbase table, MySQL, etc. -> RDD  RDD supporte des fonctions parallélisées comme: • foreach, map, flatMap, collect, filter, count, aggregate, reduce, … Concept: RDD
  • 26. 26 #yTechParis ALS pour Alternating Least Squares  Algorithme phare de recommendation  ALS opère sur un RDD de Rating  Rating = note (action) d’un utilisateur sur un élement  Modélisation Rating pour Yrecommender:  user = colonne u:id de la table ‘view’ de Hbase  item = colonne p:id de la table ‘view’ de Hbase  rating = 1 (indique que la PDP est vue).  En scala: class Rating(user:Int, item:Int, rating:Double) Quelques Algorithmes: ALS
  • 27. 27 #yTechParis  FP-Growth pour Frequent Pattern Growth  Algorithme phare de détection de fréquence  Intérêt: détecte les bundles/promos intéressants  FP-Growth opère sur un RDD de Transactions (liste de produits)  Transactions = liste des produits d’un utilisateur  Modélisation Transactions pour Yrecommender:  liste des colonnes p:id de la table ‘view’ de Hbase groupés par u:id  En scala: class List[Int]( item1, item2, item3,…) Quelques Algorithmes: FP-Growth
  • 28. 28 #yTechParis  Charger les view events depuis Hbase dans Spark  Mapper les codes produits à des Int  Récupérer les ratings et les transactions  Appliquer les algorithmes  Calculer les recommandations  Calculer les similarités  Calculer les patterns (bundles) fréquents  Générer des outputs csv pour exploitation  Code source: https://github.com/yawo/yreco/blob/master/src/main/scala/com/yreco/RecommenderDemo.scala L’approche générale Yrecommender
  • 29. 29 #yTechParis  Le Machine Learning ne vient pas des Mayas! (pas une prophétie)  Méthodes d’évaluation d’erreurs d’un model  À vue d’oeil  L’erreur quadratique moyenne (MSE, utilisé en statistique)  Les algorithmes permettent le “Tuning” des paramètres  Diminuer les erreurs en affinant les paramètres  Tester différentes facettes de models Evaluation d’erreurs et ajustements
  • 30. 30 #yTechParis  1 – Batch mode: Génération des résultats en csv  2 – => Exploitation dans Hybris via Hotfolder  3 – Real time mode: Finagle ThriftServer  4 – => Exploitation dans Hybris via Spring  5 – Possibilités: Solr, RestServer / Cronjob, Crontab… Exploitation dans Hybris
  • 31. 31 #yTechParis  Les models restent internes à la JVM Spark (classes java)  Besoin de formats exploitables depuis Hybris  Compiler les résultats les plus significatifs  Définir des seuils de pertinence (en fonction des algorithmes)  Tenir compte de l’aspect distribué des données…  Plusieurs options d’output possibles: csv, parquet, sql, etc  Approche Yrecommender:  Ex format = productCode, similarProductCode Batch mode: Génération des résultats en csv
  • 32. 32 #yTechParis  Une nouvelle extension de plus sur terre: yrecommender  Config hotfolder (code source: https://goo.gl/MeSNae)  Importer des ProductReferences (relation dans les deux sens) Exploitation dans Hybris via Hotfolder
  • 33. 33 #yTechParis  Apache Thrift = sorte de corba, avec idl, cross language  Outils de génération server/client vers plusieurs langages  Twitter Finagle = framework de services RPC  Destiné à la JVM  Basé sur les Futures pour un multithreading clean…  Supporte thrift, rest http, sockets, …  Supporte des filters,  Yrecommender expose les models via un server Thrift code source: https://goo.gl/bCQmIp Real time mode: Finagle Thrift Server
  • 34. 34 #yTechParis  Ajouter le client Thrift généré (sous forme de jar) à Hybris  Exposer le client sous forme de service via Spring code source: https://goo.gl/6acykF Exploitation dans Hybris via Spring
  • 35. 35 #yTechParis  Exposer un serveur Rest  Embarqué avec finagle  Externe avec tomcat  Indexer les résultats de models dans Solr ou Elasticsearch  Streamer les events vers Spark (par ex avec Kafka et Spark Streaming)  Automatiser tout le process depuis les events jusqu’aux csvs  Unix crontab (ou équivalent windows) pour la mise à jour des models  Hybris dynamic cronjob avec triggers Possibilités: Solr, RestServer / Cronjob, Crontab
  • 36. 36 #yTechParis  Outils: Hybris, Spark 1.5, Hbase, Bash (ou powershell)  Environnement de démo : Ubuntu, Hybris 5.7, scala 2.11  Github code spark:  Github extension yrecommender: Live Demo