Florent Renucci
Table des matières
Introduction ...................................................................................................................................... 3
I – Le problème ................................................................................................................................. 3 II -‐ Méthode ........................................................................................................................................ 4
III -‐ Résultats ..................................................................................................................................... 6
IV -‐ Application ................................................................................................................................. 7 IV.a – Cadre .................................................................................................................................................. 7 IV.b – Lien avec l'article ........................................................................................................................... 8 IV.c – Code ..................................................................................................................................................... 8 IV.d -‐ Résultats ........................................................................................................................................ 10
........................................................................................................................................................... 10
V – Elargissement ......................................................................................................................... 11 V.1 – Utilisation des semi-‐MDP dans ce contexte ......................................................................... 12 V.2 – Un seul client ? Un seul produit ? ............................................................................................ 12
Sources ............................................................................................................................................. 12
Introduction
Le cadre de l'étude est la problématique du "Customer Relationship Management", un concept fondamental en marketing, qui vise principalement à trouver le lien entre les actions marketing et la perception du client. L'objectif étant évidemment de maximiser la "Customer Lifetime Value" (la valeur du client, d'un point de vue de l'entreprise, sur toute son existence) en manipulant les actions marketing (publicité, SAV etc…), tout en réduisant au maximum les coûts de ces dernières. Si l'on garde à l'esprit que le comportement du consommateur a un caractère aléatoire (une même cause-‐marketing peut avoir différentes conséquences-‐achats), le problème se reformule de la manière suivante :
On cherche les actions (marketing), qui maximisent une fonction (bénéfices), dans un contexte incertain (comportement du prospect).
Gardons à l'esprit qu'il est en général très difficile de mesurer le lien entre une action sur un canal (publicité télévisée par exemple) et sa réponse sur un autre (achat en magasin), c'est ce qui s'appelle le "Cross Channel Challenge" : de manière plus informelle, on ne sait jamais exactement ce qui a marché et pourquoi cela a marché, donc il est très difficile de savoir ce qui va marcher. La construction d'un modèle par l'intuition est donc exclue.
L'utilisation du modèle de décision markovien (MDP) paraît donc tout à fait adaptée. Nous verrons dans un premier temps comment se modélise le problème, et quelles généralisations au MDP on doit s'autoriser pour qu'il lui corresponde (I – Méthode). Ceci nous mènera à la notion de semi-‐MDP, dont on proposera un algorithme de Q-‐learning (II – Algorithme). L'article ira beaucoup plus loin que l'utilisation de semi-‐MDP, et proposera des résultats (III – Résultats) remarquables, que l'on tente de reproduire selon un cadre de travail décrit en IV – Application.
En particulier, le problème posé dans cet article est l'optimisation de campagnes mail. C'est un exemple, dont les résultats positifs sont prometteurs quant à l'utilisation de l'apprentissage par renforcement utilisé dans des problématiques business.
I – Le problème
La plupart des méthodes se heurtent à la difficulté expliquée plus haut. Non seulement elles traitent chaque canal indépendamment, alors que certains sont potentiellement corrélés : une publicité télévisée nous aura peut-‐être autant poussé à visiter le site de commerce
présenté que le mail qu'il nous a envoyé, donc les deux sont à prendre en compte pour expliquer notre action ; mais en plus, elles maximisent le profit à court terme, quasi-‐immédiat : si un mail est envoyé aujourd'hui, un autre dans une semaine, et que le client achète quelque chose dans 10 jours, seul le 2ème mail sera considéré dans le modèle comme déclencheur de l'action (alors que le 1er, et même les précédents, ont certainement aussi joué un rôle).
Enfin, ajoutons une difficulté au problème : l'intervalle de temps entre 2 états différents (entre 2 mails publicitaires) est variable.
La méthode présentée traite ces difficultés en prenant en compte les liens éventuels entre canaux, sur le long terme. Elle s'appuie sur le canal de mail et le canal de vente, parce qu'ils sont facilement quantifiables. La variabilité temporelle est traitée par l'utilisation de semi-‐MDP.
En effet, il est facile de remarquer qu'un client a acheté un article sur le site parce qu'il a lu le mail. Lorsqu'il clique sur un lien du mail (par exemple une image d'un produit), une information est envoyée, sous forme de cookie, au commerçant, expliquant "tel identifiant client a cliqué sur tel produit à tel moment, donc s'il l'achète, la campagne mail a été fructueuse".
Le 1er réflexe pour adresser ce type de problème (lier les canaux sur le long terme) est d'utiliser les séries chronologiques, et de former un vecteur autorégressif. En fait cette méthode ne fonctionne pas parce que les canaux sont très faiblement corrélés.
On va voir comment les outils d'apprentissage par renforcement contournent cette difficulté.
II -‐ Méthode
Puisque l'on tient compte d'un horizon temporel large, il est nécessaire de maximiser le bénéfice cumulé (fonction récompense) actualisé : R = ∑γ!!r!.
Le γ est calculé suivant le taux d'actualisation r : γ = 1+ r !!, où r est choisi en fonction du calcul du risque de l'industrie ou de l'activité de l'entreprise.
Les t! sont les temps auxquels ont lieu les flux financiers r!, donc les instants auxquels les clients achètent.
Ce qui nous amène à la modélisation suivante : le processus démarre à t! = 0, l'entreprise effectue des actions marketing a! aux instants t!, recevant des récompenses aléatoires r! et aboutissant à un nouvel état s!!! . On étudie donc la série s!, a!, r!, t! !!!..! , en vue de maximiser R, avec un γ qui a été fixé.
Pour cela, on utilisera un algorithme de Q-‐learning. La principale différence avec l'algorithme pour un modèle MDP est la variabilité de l'intervalle de temps :
(source : [1])
Par ailleurs, on dispose avant l'étude des données d'apprentissage : une série de N scénarios, appelés e!, de longueur l!, indicés par j = 1. . l!.
La principale difficulté dans l'implémentation de l'algorithme de Q-‐learning est due à la variabilité des Δt! = t!!! − t! (l'intervalle de temps entre deux états), qui introduit du bruit dans l'évaluation. [2] propose un algorithme légèrement différent, qui évite de calculer la fonction Q (et donc de contourner le problème du bruit) : advantage updating apprend l'avantage relatif d'une action par rapport à l'action optimale :
A∗ s, a =1Δt!
Q∗ s, a −max!!
Q∗ s, a! 1
Cette fonction est à mettre en parallèle avec la fonction regret des algorithmes de bandit. On aimerait que cette fonction Avantage converge, tout comme la fonction regret, vers 0.
Les étapes de l'algorithme (Batch-‐AU, pour Advantage Updating) qui évalue la fonction Avantage sont les suivantes :
Input : les N scénarios D! = { s!", a!", r!" , j = 1. . l!} et les temps t!
Etape 1 : calcul des Δt! = t!!! − t! et des r!"/Δt!" (les récompenses sont données par unité de temps)
Etape 2 :
a) initialisation de A ! (dont je n'ai pas compris la notation)
b) et de V ! = max!" A ! s, a!
Etape 3 :
a) mise à jour de A(!) (Q-‐Learning "classique" avec une récompense par unité de temps, en tenant compte de 𝛥𝑡!")
diff = r!" + γ!!!"V!"!!!!! − V!"
!!! (la différence entre le gain max en j+1 et celui en j)
A!"! = 1− α! A!"
!!! + α! max!" A(!!!) s!", a! + !"##!!!"
b) mise à jour de V(!) (évaluation du meilleur gain) :
V!"! = 1− β! V!"
!!! + β!max!!
A !!! s!", a! −max!!
A !!! s!", a!
α!+ V!"
!!!
Etape 4 : normalisation de A(!), pour que A(!) converge vers 0 (c'est la fonction avantage de l'équation (1) ):
A!"! = 1−ω! A!"
! +ω! A!"(!) −max!" A(!!!) s!", a!
L'explication complète de l'algorithme (notamment celle de la notation concernant l'initialisation de A(!) ) est donnée dans l'article [3], que ni M. Munos ni moi n'avons trouvé sur internet.
III -‐ Résultats
Comme expliqué précédemment, cet algorithme a été implémenté pour traiter des données (historiques) portant sur :
-‐ les clients, en fixant un seuil d'activité, pour ne conserver que les plus actifs, et ensuite randomisés (on conserve 1% des 1.6 millions de clients "actifs"),
-‐ les transactions : qui a acheté, quel article, et quand, -‐ les campagnes de mailing.
On compare ensuite la politique optimale trouvée, en calculant l'avantage que l'on aurait récolté en suivant cette politique plutôt que celle qui a été suivie le long du scénario historique, en supposant que la suite des états suivants n'est pas significativement modifiée.
Cette hypothèse est bien évidemment discutable, puisque c'est la base de la théorie des processus de décision markoviens : l'action conditionne (de manière déterministe ou probabiliste) l'événement suivant. Donc une action différente peut faire naître un état suivant différent. Cependant cette hypothèse est très féconde : l'article [3] établit un résultat intéressant : si l'on trouve une politique 𝜋∗ dont l'avantage est positif (ie qui "aurait fait mieux" que la politique initiale 𝜋!"! utilisée, mais suivant la même suite d'états), on peut construire une 3ème politique 𝜋! à partir de 𝜋∗, qui a une récompense supérieure à celle de 𝜋!"!.
Et c'est évidemment confirmé par les résultats : si la politique optimale 𝜋∗ trouvée est proche de la politique initiale 𝜋!"! , la série d'états que 𝜋∗ aurait induite n'est pas significativement différente de celle observée, donc l'avantage est important : jusqu'à 8% de revenus supplémentaires. Si au contraire 𝜋!"! et 𝜋∗ divergent, 𝜋∗ décrit des actions qui conduisent d'autant moins probablement aux états que 𝜋∗ aurait prédit, puisqu'il faut "suivre" le scénario dicté par 𝜋!"!, qui en est très éloigné, donc les résultats sont mauvais : jusqu'à -‐1% de revenus. Cela ne signifie pas forcément que la politique optimale est mauvaise, mais plutôt qu'elle n'est pas adaptée au test qu'on lui soumet.
Pour évaluer objectivement l'avantage d'une politique optimale 𝜋∗ sur 𝜋!"!, il faudrait par exemple partir du même état initial, puis les évaluer séparément sur des évolutions en cours (et non historiques), en calculant l'avantage à chaque étape.
Donc par exemple en créant des clusters de clients (des profils similaires, pour comparer des choses comparables), en divisant un cluster en 2 parts égales de manière aléatoire, puis en appliquant 𝜋!"! à l'un et 𝜋∗ à l'autre, de manière complètement indépendante. C'est une question qui reste ouverte, d'après l'article, mais les résultats obtenus dans un cas défavorable étant positifs, on peut s'attendre à des résultats intéressants.
IV -‐ Application
Cet article introduit beaucoup de notions qui dépassent le cadre du cours. J'ai choisi de me focaliser sur certains aspects, notamment (sur les conseils de M. Munos) les semi-‐MDP. Il est intéressant de s'ancrer sur une question concrète. Ne disposant pas de données marketing semblables à celles évoquées dans l'article, il a été nécessaire que j'en génère moi-‐même. Comme il est difficile de générer le comportement d'un client répondant à une publicité, mon point de départ a été donc l'exemple du problème de planification proposé en TP1. La génération de scénarios est beaucoup plus simple, et a été généralisée de manière à introduire la notion de semi-‐MDP. Nous allons dans un premier temps présenter le problème (IV.a), puis son lien avec l'application de l'article (similarités et différences) (IV.b), le code sera ensuite expliqué (IV.c) pour enfin en donner les résultats (IV.d).
IV.a – Cadre
Nous sommes une entreprise qui achète des matières premières, fabrique un produit, le stocke, puis le vend.
On paye donc :
-‐ les matières premières et la fabrication (𝑐 = 5 par produit), -‐ le stockage (ℎ = 1 par produit par jour), -‐ les frais de livraison (𝐾 = 8 par livraison),
Et on gagne :
-‐ le prix de vente (𝑝𝑟 = 10) fois le volume de vente,
Les variables aléatoires sont :
-‐ le volume acheté par le client (𝐷!), -‐ la date d'achat (t).
Les décisions portent sur :
-‐ le nombre de machines achetées (𝐴!) pour satisfaire la demande client, et sans dépasser le stock maximum de 𝑀 = 15. Donc on cherche à maximiser la fonction bénéfices, les actions seront les machines achetées, les états (𝑋!) seront le nombre de machine en stock aux temps 𝑡! aléatoires.
IV.b – Lien avec l'article
La base de construction de ce problème est évidemment la notion de semi-‐MDP. C'est donc un point commun avec l'article.
L'objectif est de maximiser la récompense. Pour se placer dans le même cadre (et observer et discuter quantitativement l'hypothèse remise en question en III), nous avons dans un premier temps généré des scénarios, puis dans un second temps évalué la politique optimale. L'algorithme utilisé est également celui du Q-‐Learning, en temps discret. Il est différent de celui présenté dans l'article, puisque comme expliqué, l'initialisation des variables invoquait une notation que je ne comprends pas (et l'article explicatif [4] est introuvable).
On s'est placé dans un contexte de vente à un seul client. Il est plus facile de modéliser le comportement potentiel d'un client que d'une multitude de clients qui réagissent différemment à une action.
Enfin, on cherche à optimiser la récompense en agissant sur des leviers internes à l'entreprise (les achats, donc le stock), et non externes (la perception du client). C'est une simplification.
IV.c – Code
Le main.m retrace intégralement le raisonnement. Dans l'ordre des cellules :
-‐ constantes du problème : définit les constantes du problème.
-‐ Simulation de trajectoires : onsimule des trajectoires, qui serviront ensuite à apprendre la politique optimale (on utilise le même raisonnement que l'article, en construisant nos données historiques).
-‐ Q-‐learning : on apprend la fonction Q et la politique optimale à partir des données historiques.
-‐ Estimation du profit moyen cumulé discounté pour une politique quelconque (méthode de Monte-‐Carlo)
-‐ Estimation du profit moyen cumulé discounté pour la politique optimale (méthode de Monte-‐Carlo)
-‐ Estimation du profit moyen cumulé discounté pour une politique quelconque, avec une suite d'états déjà fixée : pour tester l'hypothèse de l'article
-‐ Estimation du profit moyen cumulé discounté pour la politique optimale, avec une suite d'états déjà fixée : test-‐témoin
-‐ Différence de profit : sur une trajectoire déjà fixée, en utilisant la politique optimale, y gagne-‐t-‐on par rapport à une politique quelconque, et si oui combien ?
Les fonctions ont les rôles suivants :
-‐ simu : génère d, la quantité d'achat par le client, et dt, le délai entre deux achats. d suit une loi géométrique, dt suit une loi uniforme sur 1; 7 .
-‐ Reward : calcule la récompense associée à un état et une action.
-‐ Politique : renvoie une action aléatoire.
-‐ Gen_politique : génère une politique complètement aléatoire.
-‐ Nextstate : calcule l'état suivant, à partir de l'état actuel et de l'action choisie.
-‐ Trajectoires : génère un tableau de N trajectoires, de longueur aléatoire au maximum n. Le tableau renvoyé comporte 4 lignes par épisode, respectivement les lignes des 𝑋! , 𝑟! , 𝑡! ,𝑎 𝑋! .
-‐ Q_learning : prend en argument un ensemble de trajectoires (les données historiques générées par trajectoires) et renvoie le Q et la politique optimale appris.
-‐ Calcul_profit : calcule le profit discounté associé à une trajectoire et une politique.
Chaque fonction est assez commentée pour que toutes les variables soient compréhensibles. Le temps d'exécution de certaines fonctions peut être long (maximum 3 minutes), par exemple pour trajectoires.
IV.d -‐ Résultats
Comme l'on pouvait s'y attendre, les politiques, par ordre décroissant de profit actualisé, sont :
-‐ la politique optimale dans le cas d'évolution classique (profit total = 1.2) : figure 1, -‐ la politique quelconque dans le cas d'évolution classique (profit entre -‐0.7 et 0.7) : figure 2,
-‐ la politique optimale dans le cas d'évolution fixée (profit = 1600) : figure 3, -‐ la politique quelconque dans le cas d'évolution fixée (profit = 1500) : figure 4.
Figure 1 Figure 2
Figure 3 Figure 4
Enfin, il est intéressant de tracer le gain supplémentaire obtenu grâce à la politique optimale par rapport à une politique quelconque (figure 3 – figure 4) :
Figure 5
Les graphiques 1 et 2 nous apprennent que la politique optimale est évidemment bien meilleure que n'importe quelle politique quelconque. On peut facilement s'en convaincre en itérant plusieurs fois le tracé du graphique, pour des politiques aléatoires différentes.
Les graphiques 5 sont censés nous montrer nous montre combien l'on gagne en plus en utilisant la politique optimale trouvée, sur une série d'états déjà fixée. La valeur limite varie fortement, pour être parfois négative. Plusieurs tracés donnent donc des résultats assez différents. Ce n'est pas du tout ce à quoi l'on s'attendait. En fait les 2 derniers tests ne sont pas pertinents du point de vue du problème posé : une décision conduit à une série d'états possibles, il est par exemple impossible d'avoir 5 machines en stock, d'en acheter 3, et d'en avoir 10 en stock dans l'état suivant. Cela arrive pourtant dans les 2 derniers tests. Comme en passant d'un état à l'autre, les 2 étant indépendants de la politique, on a autant de chances de perdre du stock que d'en gagner, et que lorsque l'on en perd, on y perd peu, alors que lorsqu'on en gagne, on y gagne beaucoup, le comportement de cette courbe ne rend pas du tout compte de la pertinence d'une politique, mais du résultat de l'entreprise au jeu "combien va-‐t-‐il apparaître/disparaître de machines à l'état suivant ?".
On ne peut donc pas valider (ni infirmer) l'hypothèse faite par l'article dans ce cadre.
V – Elargissement
V.1 – Utilisation des semi-‐MDP dans ce contexte
Les semi-‐MDP peuvent être utilisés dans beaucoup de problématiques business similaires, autant du point de vue des états internes (quantité en stock, nombre de lignes de production…) que des états externes (comportement du client), comme l'application de l'article.
V.2 – Un seul client ? Un seul produit ?
La modélisation à un seul client n'est pas absurde : beaucoup d'entreprises B2B (Business-‐To-‐Business, c'est à dire qui vendent des entreprises qui vendent à d'autres entreprises, et non à des clients finaux) n'ont qu'un seul "gros" client. C'est le cas par exemple pour certains composants microinformatiques ou automobiles. Telle entreprise peut être un (ou le) sous-‐traitant d'Apple ou de Volkswagen, c'est à dire qu'Apple ou Volkswagen son seul client.
Pour traiter un problème semblable à plusieurs clients, donc plusieurs variables aléatoires indépendantes composant l'environnement, on peut par exemple commencer par faire du clustering sur les clients en fonction de leur comportement d'achat (fréquence et volume), puis les regrouper par cluster, et traiter chaque cluster indépendamment, s'ils sont suffisamment éloignés, comme l'algorithme le suggère. En revanche si l'entreprise commercialise plusieurs produits (pour un ou plusieurs clients), les problèmes ne seront plus indépendants, puisque la capacité de stockage d'un produit est déterminée par le stock de l'autre.
Sources
[1] Between MDPs and Semi-‐MDPs : A Framework for Temporal Abstraction in Reinforcement Learning, Richard S. Sutton, Doina Precup, and Satinder Singh.
[2] LC Baird : Reinforcement Learning in continuous time : advantage updating.
[3] S Kakade abd J.Langford : Approximately optimal approximate reinforcement learning.
[4] technical support