meetup bigdata et machine learning

Post on 09-Feb-2017

411 Views

Category:

Data & Analytics

1 Downloads

Preview:

Click to see full reader

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

Jose@skapane.com

06.19.92.63.18

top related