Download - Yrecommender, machine learning sur Hybris
![Page 1: Yrecommender, machine learning sur Hybris](https://reader035.vdocuments.mx/reader035/viewer/2022062218/5881dcd51a28ab331a8b7b57/html5/thumbnails/1.jpg)
1
#yTechParis
Machine Learning sur hybris ecommerce
[Y]recommend
erPrésenté par Yawo KPOTUFE Hybris expert / Solution architect
![Page 2: Yrecommender, machine learning sur Hybris](https://reader035.vdocuments.mx/reader035/viewer/2022062218/5881dcd51a28ab331a8b7b57/html5/thumbnails/2.jpg)
2
#yTechParis
Notre cible en image
![Page 3: Yrecommender, machine learning sur Hybris](https://reader035.vdocuments.mx/reader035/viewer/2022062218/5881dcd51a28ab331a8b7b57/html5/thumbnails/3.jpg)
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
![Page 4: Yrecommender, machine learning sur Hybris](https://reader035.vdocuments.mx/reader035/viewer/2022062218/5881dcd51a28ab331a8b7b57/html5/thumbnails/4.jpg)
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
![Page 5: Yrecommender, machine learning sur Hybris](https://reader035.vdocuments.mx/reader035/viewer/2022062218/5881dcd51a28ab331a8b7b57/html5/thumbnails/5.jpg)
5
#yTechParis
Le merchandising
Une politique efficace deprix, de discounts et de promotions
Ensemble des efforts, moyens et techniques mis en œuvre pour vendre
![Page 6: Yrecommender, machine learning sur Hybris](https://reader035.vdocuments.mx/reader035/viewer/2022062218/5881dcd51a28ab331a8b7b57/html5/thumbnails/6.jpg)
6
#yTechParis Un design et un packaging
séduisants
Le merchandising
![Page 7: Yrecommender, machine learning sur Hybris](https://reader035.vdocuments.mx/reader035/viewer/2022062218/5881dcd51a28ab331a8b7b57/html5/thumbnails/7.jpg)
7
#yTechParis Et surtout la combinaison du tout.
Décider à quel moment,à quel utilisateur présentertel produit, telle promotion…
Le merchandising
![Page 8: Yrecommender, machine learning sur Hybris](https://reader035.vdocuments.mx/reader035/viewer/2022062218/5881dcd51a28ab331a8b7b57/html5/thumbnails/8.jpg)
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
![Page 9: Yrecommender, machine learning sur Hybris](https://reader035.vdocuments.mx/reader035/viewer/2022062218/5881dcd51a28ab331a8b7b57/html5/thumbnails/9.jpg)
9
#yTechParis
Solutions tierces: Sparkow (ex compario)
![Page 10: Yrecommender, machine learning sur Hybris](https://reader035.vdocuments.mx/reader035/viewer/2022062218/5881dcd51a28ab331a8b7b57/html5/thumbnails/10.jpg)
10
#yTechParis
Solutions tierces: SDL (ex Fredhopper)
![Page 11: Yrecommender, machine learning sur Hybris](https://reader035.vdocuments.mx/reader035/viewer/2022062218/5881dcd51a28ab331a8b7b57/html5/thumbnails/11.jpg)
11
#yTechParis
Concept: Collaborative Filtering, Similarités
Détecter des similarités
à partir des actions et comportements desutilisateurs dans la vraie vie.
Détecter des similarités à partir des
caractéristiques (product features/categories) des produits
Merchandising par recommandation
![Page 12: Yrecommender, machine learning sur Hybris](https://reader035.vdocuments.mx/reader035/viewer/2022062218/5881dcd51a28ab331a8b7b57/html5/thumbnails/12.jpg)
12
#yTechParis
Success stories: Netflix & Amazon
AmazonProduct recommandation system
NetflixMovie recommender engine
![Page 13: Yrecommender, machine learning sur Hybris](https://reader035.vdocuments.mx/reader035/viewer/2022062218/5881dcd51a28ab331a8b7b57/html5/thumbnails/13.jpg)
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
![Page 14: Yrecommender, machine learning sur Hybris](https://reader035.vdocuments.mx/reader035/viewer/2022062218/5881dcd51a28ab331a8b7b57/html5/thumbnails/14.jpg)
14
#yTechParis
Hybris Business eventsEvents supportés Out Of The Box
![Page 15: Yrecommender, machine learning sur Hybris](https://reader035.vdocuments.mx/reader035/viewer/2022062218/5881dcd51a28ab331a8b7b57/html5/thumbnails/15.jpg)
15
#yTechParis
Hybris Business eventsArchitecture
![Page 16: Yrecommender, machine learning sur Hybris](https://reader035.vdocuments.mx/reader035/viewer/2022062218/5881dcd51a28ab331a8b7b57/html5/thumbnails/16.jpg)
16
#yTechParis
Recommandations avec Business events
a. Récolter des business events
b. Calculer les recommandations
![Page 17: Yrecommender, machine learning sur Hybris](https://reader035.vdocuments.mx/reader035/viewer/2022062218/5881dcd51a28ab331a8b7b57/html5/thumbnails/17.jpg)
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
(Extract Transform Load)(Big Data
Storage)(Google Big
Tables)
![Page 18: Yrecommender, machine learning sur Hybris](https://reader035.vdocuments.mx/reader035/viewer/2022062218/5881dcd51a28ab331a8b7b57/html5/thumbnails/18.jpg)
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
![Page 19: Yrecommender, machine learning sur Hybris](https://reader035.vdocuments.mx/reader035/viewer/2022062218/5881dcd51a28ab331a8b7b57/html5/thumbnails/19.jpg)
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
![Page 20: Yrecommender, machine learning sur Hybris](https://reader035.vdocuments.mx/reader035/viewer/2022062218/5881dcd51a28ab331a8b7b57/html5/thumbnails/20.jpg)
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
![Page 21: Yrecommender, machine learning sur Hybris](https://reader035.vdocuments.mx/reader035/viewer/2022062218/5881dcd51a28ab331a8b7b57/html5/thumbnails/21.jpg)
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
![Page 22: Yrecommender, machine learning sur Hybris](https://reader035.vdocuments.mx/reader035/viewer/2022062218/5881dcd51a28ab331a8b7b57/html5/thumbnails/22.jpg)
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• …
![Page 23: Yrecommender, machine learning sur Hybris](https://reader035.vdocuments.mx/reader035/viewer/2022062218/5881dcd51a28ab331a8b7b57/html5/thumbnails/23.jpg)
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
![Page 24: Yrecommender, machine learning sur Hybris](https://reader035.vdocuments.mx/reader035/viewer/2022062218/5881dcd51a28ab331a8b7b57/html5/thumbnails/24.jpg)
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
![Page 25: Yrecommender, machine learning sur Hybris](https://reader035.vdocuments.mx/reader035/viewer/2022062218/5881dcd51a28ab331a8b7b57/html5/thumbnails/25.jpg)
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
![Page 26: Yrecommender, machine learning sur Hybris](https://reader035.vdocuments.mx/reader035/viewer/2022062218/5881dcd51a28ab331a8b7b57/html5/thumbnails/26.jpg)
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
![Page 27: Yrecommender, machine learning sur Hybris](https://reader035.vdocuments.mx/reader035/viewer/2022062218/5881dcd51a28ab331a8b7b57/html5/thumbnails/27.jpg)
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
![Page 28: Yrecommender, machine learning sur Hybris](https://reader035.vdocuments.mx/reader035/viewer/2022062218/5881dcd51a28ab331a8b7b57/html5/thumbnails/28.jpg)
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
![Page 29: Yrecommender, machine learning sur Hybris](https://reader035.vdocuments.mx/reader035/viewer/2022062218/5881dcd51a28ab331a8b7b57/html5/thumbnails/29.jpg)
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
![Page 30: Yrecommender, machine learning sur Hybris](https://reader035.vdocuments.mx/reader035/viewer/2022062218/5881dcd51a28ab331a8b7b57/html5/thumbnails/30.jpg)
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
![Page 31: Yrecommender, machine learning sur Hybris](https://reader035.vdocuments.mx/reader035/viewer/2022062218/5881dcd51a28ab331a8b7b57/html5/thumbnails/31.jpg)
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
![Page 32: Yrecommender, machine learning sur Hybris](https://reader035.vdocuments.mx/reader035/viewer/2022062218/5881dcd51a28ab331a8b7b57/html5/thumbnails/32.jpg)
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
![Page 33: Yrecommender, machine learning sur Hybris](https://reader035.vdocuments.mx/reader035/viewer/2022062218/5881dcd51a28ab331a8b7b57/html5/thumbnails/33.jpg)
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
![Page 34: Yrecommender, machine learning sur Hybris](https://reader035.vdocuments.mx/reader035/viewer/2022062218/5881dcd51a28ab331a8b7b57/html5/thumbnails/34.jpg)
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
![Page 35: Yrecommender, machine learning sur Hybris](https://reader035.vdocuments.mx/reader035/viewer/2022062218/5881dcd51a28ab331a8b7b57/html5/thumbnails/35.jpg)
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
![Page 36: Yrecommender, machine learning sur Hybris](https://reader035.vdocuments.mx/reader035/viewer/2022062218/5881dcd51a28ab331a8b7b57/html5/thumbnails/36.jpg)
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: https://github.com/yawo/yreco Github extension yrecommender:
Live Demo
https://github.com/yawo/yrecommender-hybris-extension
![Page 37: Yrecommender, machine learning sur Hybris](https://reader035.vdocuments.mx/reader035/viewer/2022062218/5881dcd51a28ab331a8b7b57/html5/thumbnails/37.jpg)
37
#yTechParis
Questions