meetup bigdata et machine learning

31
Prédiction de comportements client dans le tunnel de commande avec Spark SKAPÁNÊ

Upload: jose-corral-gallego

Post on 09-Feb-2017

411 views

Category:

Data & Analytics


1 download

TRANSCRIPT

Page 1: Meetup BigData et Machine Learning

Prédiction de comportements clientdans le tunnel de commande avec Spark

SKAPÁNÊ

Page 2: Meetup BigData et Machine Learning

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Ê

Page 3: Meetup BigData et Machine Learning
Page 4: Meetup BigData et Machine Learning

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Ê

Page 5: Meetup BigData et Machine Learning

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Ê

Page 6: Meetup BigData et Machine Learning

Classification de clients sur deux variables

Page 7: Meetup BigData et Machine Learning

On postule un modèle linéaire

Page 8: Meetup BigData et Machine Learning

On postule un modèle polynomial

Page 9: Meetup BigData et Machine Learning

On ne postule pas de modèle

Page 10: Meetup BigData et Machine Learning

•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Ê

Page 11: Meetup BigData et Machine Learning

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Ê

Page 12: Meetup BigData et Machine Learning

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Ê

Page 13: Meetup BigData et Machine Learning

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Ê

Page 14: Meetup BigData et Machine Learning

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

Page 15: Meetup BigData et Machine Learning

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)

Page 16: Meetup BigData et Machine Learning

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

Page 17: Meetup BigData et Machine Learning

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Ê

Page 18: Meetup BigData et Machine Learning

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Ê

Page 19: Meetup BigData et Machine Learning

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Ê

Page 20: Meetup BigData et Machine Learning

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

Page 21: Meetup BigData et Machine Learning

Optimisation du modèleHyper parameter tuning

Gain de 8 % sur AuC

SKAPÁNÊ

Hyper parameter

tuning

Page 22: Meetup BigData et Machine Learning

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.

Page 23: Meetup BigData et Machine Learning

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

Page 24: Meetup BigData et Machine Learning

Intégration en production

SKAPÁNÊ

Page 25: Meetup BigData et Machine Learning

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

Page 26: Meetup BigData et Machine Learning

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

Page 27: Meetup BigData et Machine Learning

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

Page 28: Meetup BigData et Machine Learning

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

Page 29: Meetup BigData et Machine Learning

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

Page 30: Meetup BigData et Machine Learning

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Ê

Page 31: Meetup BigData et Machine Learning

SKAPÁNÊActivez la richesse inexplorée de vos données !

José Corral Gallego

[email protected]

06.19.92.63.18