meetup bigdata et machine learning
TRANSCRIPT
Prédiction de comportements clientdans le tunnel de commande avec Spark
SKAPÁNÊ
Skapánê: un futur champion européen du Big Data
Crée en mars 2015
Compte aujourd’hui 9 personnes
Accélérée à Euratechnologies depuis ses débuts
Membre de la « French Tech » - supportée par la BPI
Lauréat du Réseau Entreprendre en 2016
Lauréat LMI « Pépite » en 2016
SKAPÁNÊ
Le problème à traiter
o Identifier en temps réel le comportement probable d’un client pendant sa session de navigation:
o Va-t’il acheter ? Quel est le risque d’abandon de panier ?
o Si oui, pour quel montant ?
o Quel mode de livraison va-t-il choisir ?
o Quel moyen de paiement va t’il préférer ?
o Le paiement sera t’il honoré (fraude) ?
o Pour:
o Diminuer les abandons de panier : réduction, frais de livraison,…
o Proposer des produits complémentaires le plus tôt possible
o Modifier l’expérience client: choix des paiement proposés (one-click,…), choix du mode de livraison
SKAPÁNÊ
Les apports du Machine Learning
o Informatique traditionnelle postule un modèle
elle traite des données et fournit des modèles descriptifs
Sur la base d’hypothèses déjà définies
o Le Big Data traite les signaux faibles sans postuler de modèles
il infère des modèles prédictifs à partir des données
Et trouve ainsi des choses que l’on ne cherchait pas forcément !
Ou fournit des résultats que l’on ne sait pas toujours interpréter en « boîte blanche »
SKAPÁNÊ
Classification de clients sur deux variables
On postule un modèle linéaire
On postule un modèle polynomial
On ne postule pas de modèle
•Identité•Localisation•Page d’entrée
Début de session•Durée de session•Pages visitées•…
Navigation
•Durée complète de session
•Pages visitées•Bilan de la session
Sortie du tunnel de commande
Mise à jour des données
Calcul des prédictions
Mise à jour des indicateurs de
supervision
Personnalisation de la navigation
Action client
La capacité de prédiction au long d’une session de navigation
SKAPÁNÊ
Un exemple : la fraude
Les transactions de paiement sur les sites de eCommerce sont généralement sécurisées par le passage en authentification forte, de type 3DSecure
La sécurisation de la transaction en elle-même est très bonne, car elle garantit le paiement pour le e-marchand
Cette méthode est généralement complétée par un service de lutte contre la fraude au moment du paiement ou post-paiement
Identification des cartes suspectes
Non-validation des commandes (ou contrôle unitaire)
Néanmoins, plusieurs écueils subsistent:
Du point de vue de la sécurité, ces méthodes ne garantissent que le premier paiement des achats en plusieurs paiements
Le marché s’accorde à reconnaître que des ventes sont perdues au passage en 3DS
Le coût du service n’est pas neutre
SKAPÁNÊ
Objectif
Une méthode de détection de la fraude avant le passage en phase de paiement permet:
D’identifier des cas potentiels de fraude pour décider du type de paiement
Un click ou sécurisé, contrôle manuel, paiement en 3 ou 4 fois ou pas, …
D’utiliser le comportement du client avant la commande
D’utiliser l’historique du client sur le site marchand
L’objectif est d’affiner les critères de déclenchement de 3DS afin de réduire le nombre de commandes soumises au contrôle, et de faciliter les achats des bons clients
Réduction des coûts de 3DS
Augmentation des ventes
En maîtrisant le coût de la fraude
SKAPÁNÊ
Méthode
Cette détection peut se faire à l’aide d’un modéle prédictif de machine learning intégré dans le tunnel de commande
Le modéle statisque peut également aider à définir les régles de détection
Intégration dans un moteur de fraude existant
SKAPÁNÊ
Données Transactions
0,18% à 0,23% de transactions en impayé sur les données (Classe déséquilibrée)
Expérience Skapánê :
25 millions de transactions
4 milliards de lignes de web logs traitées
Règles temps réel via un Business Rules Engine
SKAPÁNÊ
Unbalanced Binary Classification
Modèles étudiés
Différents modéles pour la classification sont disponibles dans Spark:
Logistic regression
Decision tree classifier
Random forest classifier
Gradient-boosted tree classifier
Multilayer perceptron classifier
One-vs-Rest classifier (a.k.a. One-vs-All)
Naive Bayes
SVM
SKAPÁNÊ
Algorithmes les plus utilisés pour une classification binaire(notamment en Spark)
Méthodes d’évaluation
SKAPÁNÊ
Evaluation principale du modéle pour une classification binaire ‘déséquilibrée’:
ROC (Receiver Operating Characteristic)
AuC (Area Under Curve)
Evaluation en liaison avec la matrice de confusion
Méthodes d’évaluationMatrice de confusion – ROC-AuC
Trx estimée – Fraude Trx estimée – Non Fraude
Trx réelle – Fraude VP(Vrai Positif) FN(Faux Négatif)
Trx réelle – Non Fraude FP(Faux Positif) VN(Vrai Négatif)
SKAPÁNÊ
Optimisation du modèle
L’algorithme choisi : Random Forest
Plusieurs paramètres à optimiser pour obtenir le meilleur résultats
Profondeur d’arbre
Coefficient pour le gain de l’information
Nombre d’arbre
Nombre d’itération
Le choix est fait lors de la phase d’ Hyper parameter tuning
SKAPÁNÊ
Optimisation du modèleHyper parameter tuning
Les différents paramètres sont évalués suivant une échelle de valeur fournie.
Chaque résultat est évalué grâce à une fonction d’évaluation (AuC)
Cette évaluation se fait par la biais de la validation croisée et évite le sur-apprentissage (Overfitting)
SKAPÁNÊ
Optimisation du modèleHyper parameter tuning
Exemple de tuning
SKAPÁNÊ
rf=RandomForestClassifier()
pipeline = Pipeline(stages=[rf])
paramGrid = ParamGridBuilder().addGrid(rf.numTrees, [10,15,20])\
.addGrid(rf.impurity, [u"gini",u"entropy"]).addGrid(rf.maxBins,[32,48])\
.addGrid(rf.maxDepth,[8,12,16]).build()
crossval = CrossValidator(estimator=pipeline,\
estimatorParamMaps=paramGrid,\
evaluator=BinaryClassificationEvaluator(),\
numFolds=3) # use 3+ folds in practice
# Run cross-validation, and choose the best set of parameters.
cvModel = crossval.fit(training) #training variable holds the training Dataset (DF)
Sur 25 M d’enregistrement: 1h30 de traitement
Optimisation du modèleHyper parameter tuning
Gain de 8 % sur AuC
SKAPÁNÊ
Hyper parameter
tuning
Algorithme SkapánêRoC-AuC
SKAPÁNÊ
Analyse:- Résultat optimisé- AuC:0.965Exemple: Pour détecter 98% des fraudeurs, il suffit de passer 29% des commandes en 3DS.
Modéle intéressant pour déploiement en production.
Intégration en production
SKAPÁNÊ
o Un bon modèle prédictif doit s’appuyer sur les données du site concerné
Calcul d’un modèle sur l’historique du site concerné (logs web et transactions)
Mise à jour du modèle de façon régulière (pour s’adapter à l’évolution de la fraude)
o Utilisation de ce modèle en temps réel pour calculer un score de fraude avant le passage au paiement
Intégration en production
SKAPÁNÊ
Fonctionnalités
SKAPÁNÊ
Gestion des produits Identifiant, liste des catégories, description, libellé, marque, prix
Pour chaque produit, série temporelle sur la quantité commandée ; mise à jour en temps réel à chaque nouvelle commande
Gestion des consommateurs Identifiant, nom, date d'enregistrement, information de livraison, information de facturation
Pour chaque consommateur, série temporelle sur le nombre de commandes effectuées ; mise à jour en temps réel à chaque nouvelle commande
Gestion des scores de fraude Identifiant, identifiant du consommateur, information de livraison, information de facturation, date de commande, adresse IP, prix total,
carte de paiement, liste des items, …
Propriétés d'item gérées: identifiant du produit, quantité commandée, prix unitaire, prix total
Intégration en production
SKAPÁNÊ
Moteur de règles assurant la supervision du système
Déclenchement d’alertes
Paramétrable via des fichiers excel
Règles d’exemples
Bags• Par catégorie• …
SKAPÁNÊ
p:Product
category.contains($param) addToBags.add(new AddToBag($1, $2));
Category BagName, Quantity
"1000000230" "1000000230",1
"1000000235" "1000000235",1
"1000000269" "1000000269",1
"1000001161" "1000001161",1
"1000001188" "1000001188",1
"1000001359" "1000001359",1
"1000001700" "1000001700",1
"1000001876" "1000001876",1
"1000002192" "1000002192",1
Intégration en production
SKAPÁNÊ
Architecture de production
Distribution de charge – haute disponibilité
Intégration multi-solution (API Rest/WebService)
Temps de réponse < 100 ms
Plateforme utilisée
Spark 2 .0 / Hadoop 2.5
Jboss Drools
Java / Scala / Python
SKAPÁNÊ
Cluster Skapánê
80 cores
152 Go RAM
40 To disque
1 To de weblogs
25 millions de commandes
< 2 h de calcul d’algorithme
Temps de réponse web < 10 ms
Conclusion
La combinaison: De méthodes de Datascience (algorithmes et méthodologie)
De volumes importants de données
D’une plateforme puissante
De l’intégration d’algorithmes en temps réel
Permet: De créer des fonctionnalités nouvelles
De dépasser les capacités actuelles d’analyse en introduisant le prédictif
De rentrer dans l’ère du “Data Driven”
SKAPÁNÊ
SKAPÁNÊActivez la richesse inexplorée de vos données !
José Corral Gallego
06.19.92.63.18