Apprentissage par renforcement sur des données historiques


9

J'ai travaillé sur l'apprentissage de la politique optimale de communication pour les clients (quelles notifications envoyer, combien envoyer et quand envoyer). J'ai des données historiques des notifications passées envoyées (avec des horodatages) et leurs performances. J'essayais d'appliquer RL à ce problème afin d'apprendre la stratégie optimale. Cependant, une contrainte clé ici est que je n'ai pas le luxe d'apprendre la politique à la volée (en ligne) car je ne contrôle pas actuellement les actions (quelles notifications peuvent être envoyées à quels clients). J'ai deux questions:

  1. RL est-il le bon cadre sous de telles contraintes?
  2. Comment pouvons-nous apprendre la politique optimale hors ligne dans de telles situations et comment pouvons-nous évaluer la même chose?

Réponses:


6
  1. RL est-il le bon cadre sous de telles contraintes?

Cela semble possible , mais peut-être que quelques petits détails que vous n'avez pas fournis rendraient d'autres approches plus réalisables. Par exemple, si les événements de notification peuvent être traités comme plus ou moins indépendants, une approche d'apprentissage supervisé peut être meilleure, ou du moins plus pragmatique.

Plus concrètement, il n'est pas clair à 100% quels seront votre état, vos pas de temps et vos choix d'action. Celles-ci doivent être bien définies pour que les approches RL fonctionnent. De plus, vous voulez pouvoir construire des états qui ont (ou ont presque) la propriété Markov - essentiellement que tout ce qui est connu et non aléatoire sur la récompense attendue et l'état suivant est couvert par l'état.

  1. Comment pouvons-nous apprendre la politique optimale hors ligne dans de telles situations

Vous voulez à la fois un apprenant hors ligne (les données sont historiques et non "en direct") et hors politique (les données sont générées par une politique différente de celle que vous souhaitez évaluer). De plus, je suppose que vous ne connaissez pas les politiques de comportement qui ont généré vos données, vous ne pouvez donc pas utiliser l' échantillonnage d'importance .

Vous pouvez probablement utiliser une approche Q-learning et parcourir vos données existantes soit en rejouant chaque trajectoire à l'aide de Q (λ) en lots, ou une variante de DQN utilisant des mini-lots échantillonnés .

Cela n'est pas garanti de fonctionner, car l'apprentissage hors politique a tendance à être moins stable que dans la politique, et peut nécessiter plusieurs tentatives pour obtenir des hyper-paramètres qui fonctionneront. Vous aurez besoin d'un bon nombre d'échantillons qui couvrent des choix optimaux ou presque optimaux à chaque étape (pas nécessairement dans les mêmes épisodes), car l'apprentissage Q repose sur le bootstrap - copiant essentiellement les estimations de valeur des choix d'action vers l'arrière vers les pas de temps antérieurs afin d'influencer qui indique plus tôt que l'agent préfère prendre des mesures pour se diriger vers.

Si votre espace d'état / d'action est suffisamment petit (lorsque vous énumérez complètement les états et les actions), vous préférerez peut-être utiliser la forme tabulaire de Q-learning, car cela offre certaines garanties de convergence. Cependant, pour la plupart des problèmes pratiques, cela n'est pas vraiment possible, vous voudrez donc examiner les options d'utilisation des fonctions d'approximation.

... et comment évaluons-nous la même chose?

Si vous pouvez obtenir des valeurs d'action convergentes réalistes à partir de votre Q-learning (par inspection), il n'y a que 2 façons raisonnables d'évaluer les performances:

  • En exécutant l'agent dans une simulation (et peut-être en l'affinant davantage) - je ne m'attends pas à ce que cela soit possible pour votre scénario, car votre environnement comprend les décisions prises par vos clients. Cependant, c'est un bon tremplin pour certains scénarios, par exemple si l'environnement est dominé par la physique de base du monde réel.

  • En exécutant l'agent pour de vrai, peut-être sur un sous-ensemble de la charge de travail, et en comparant les récompenses réelles à celles prévues pendant suffisamment de temps pour établir une confiance statistique.

Vous pouvez également exécuter à sec l'agent aux côtés d'un opérateur existant et obtenir des commentaires sur le caractère réaliste de ses suggestions d'actions (et prévisions de récompense). Ce sera une rétroaction subjective et difficile à évaluer numériquement les performances lorsque les actions peuvent ou non être utilisées. Cependant, cela vous donnerait un peu d'assurance qualité.


1

La réponse courte est non.

Maintenant que vous avez déjà l'action et les performances historiques, il s'agit d'un problème d'apprentissage supervisé classique qui mappe votre tuple (profil client, action) à un score de performance.

Les raisons ci-dessous expliquent pourquoi l'apprentissage par renforcement sera un mauvais choix pour votre tâche:

  1. L'apprentissage par renforcement fait une utilisation très INEFFICACE des données, donc il nécessite généralement une sorte de quantité infinie de données fournies, soit à partir d'un simulateur ou d'une expérience réelle. Je pense qu'aucun de ces cas ne s'applique à vous, car vous ne voudrez pas que votre modèle non formé envoie des notifications aléatoires à vos clients au début de la formation, et votre problème sera considéré comme résolu si vous avez déjà un simulateur.

  2. L'apprentissage par renforcement est généralement utilisé pour traiter de longues séquences d'actions, et l'action précoce pourrait avoir une influence considérable sur le résultat final, comme aux échecs. Dans ce cas, il n'y a pas de partition claire de la récompense finale reçue à la fin de chaque étape de vos actions, donc l'équation de Bellman est utilisée explicitement ou implicitement dans l'apprentissage par renforcement pour résoudre ce problème d'attribution de récompense. D'un autre côté, votre problème ne semble pas avoir cette nature séquentielle (sauf si j'ai mal compris ou si votre système envoie des courriels avec un client), et chaque échantillon de vos données est un IID en une seule étape.


1

Ces documents fournissent une méthode appelée Q Aménagée pour l' apprentissage Iteration de renforcement lots (apprentissage d' une politique des expériences passées) https://pdfs.semanticscholar.org/2820/01869bd502c7917db8b32b75593addfbbc68.pdf https://pdfs.semanticscholar.org/03fd/37aba0c900e232550cf8cc7f66e9465fae94 .pdf

Vous aurez besoin d'une fonction de récompense, d'états et d'actions clairement définis.

Pour les tests, le mieux est d'utiliser une petite cohorte d'utilisateurs et un test A / B en ce qui concerne vos mesures.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.