Aprendizaje de refuerzo en datos históricos

9

He estado trabajando para aprender la política óptima de comunicaciones para los clientes (qué notificaciones enviar, cuántas enviar y cuándo enviar). Tengo datos históricos de notificaciones pasadas enviadas (con marcas de tiempo) y sus actuaciones. Intentaba aplicar RL a este problema para conocer la política óptima. Sin embargo, una restricción clave aquí es que no tengo el lujo de aprender la política sobre la marcha (en línea) ya que actualmente no controlo las acciones (qué notificaciones se pueden enviar a qué clientes). Tengo dos preguntas:

  1. ¿Es RL el marco adecuado bajo tales restricciones?
  2. ¿Cómo podemos aprender la política óptima fuera de línea en tales situaciones y cómo evaluamos la misma?
Ashay Tamhane
fuente

Respuestas:

6
  1. ¿Es RL el marco adecuado bajo tales restricciones?

Parece posible , pero tal vez algún pequeño detalle que no haya dado haría que otros enfoques sean más factibles. Por ejemplo, si los eventos de notificación se pueden tratar como más o menos independientes, entonces un enfoque de aprendizaje supervisado podría ser mejor, o al menos más pragmático.

Más prácticamente, no está 100% claro cuál será su estado, tiempos y opciones de acción. Estos deben estar bien definidos para que los enfoques de RL funcionen. Además, desea poder construir estados que tienen (o casi tienen) la propiedad de Markov, esencialmente que todo lo conocido y no aleatorio sobre la recompensa esperada y el próximo estado está cubierto por el estado.

  1. ¿Cómo podemos aprender la política óptima sin conexión en tales situaciones?

Desea un alumno fuera de línea (los datos son históricos, no "en vivo") y fuera de la política (los datos son generados por una política diferente a la que desea evaluar). Además, supongo que no conoce las políticas de comportamiento que generaron sus datos, por lo que no puede utilizar el muestreo de importancia .

Probablemente pueda usar un enfoque de Q-learning y trabajar a través de sus datos existentes ya sea repitiendo cada trayectoria usando Q (λ) en lotes, o alguna variante de DQN usando mini lotes muestreados .

No se garantiza que esto funcione, ya que el aprendizaje fuera de la política tiende a ser menos estable que dentro de la política, y puede requerir varios intentos de obtener hiperparámetros que funcionen. Necesitará una buena cantidad de muestras que cubran opciones óptimas o casi óptimas en cada paso (no necesariamente en los mismos episodios), porque Q-learning se basa en bootstrapping, esencialmente copiando estimaciones de valor de opciones de acción hacia atrás a pasos anteriores para influir que anteriormente indica que el agente prefiere tomar medidas para dirigirse hacia.

Si su espacio de estado / acción es lo suficientemente pequeño (cuando enumera completamente los estados y las acciones), es posible que prefiera utilizar la forma tabular de Q-learning ya que tiene algunas garantías de convergencia. Sin embargo, para la mayoría de los problemas prácticos esto no es realmente posible, por lo que querrá ver las opciones para usar las funciones de aproximación.

... y cómo evaluamos lo mismo?

Si puede obtener valores de acción convergentes de aspecto realista a partir de su Q-learning (mediante inspección), entonces solo hay 2 formas razonables de evaluar el rendimiento:

  • Al ejecutar el agente en una simulación (y tal vez refinarlo aún más allí), no espero que esto sea factible para su escenario, porque su entorno incluye las decisiones tomadas por sus clientes. Sin embargo, este es un buen trampolín para algunos escenarios, por ejemplo, si el entorno está dominado por la física básica del mundo real.

  • Al ejecutar el agente de verdad, tal vez en algún subconjunto de la carga de trabajo, y comparar las recompensas reales con las predichas durante el tiempo suficiente para establecer la confianza estadística.

También puede ejecutar el agente en seco junto con un operador existente y obtener comentarios sobre si sus sugerencias de acciones (y predicciones de recompensa) parecen realistas. Esa será una retroalimentación subjetiva y difícil de evaluar numéricamente el desempeño cuando las acciones pueden o no ser utilizadas. Sin embargo, le daría un poco de control de calidad.

Neil Slater
fuente
1

La respuesta corta es no.

Ahora que ya tiene la acción y el rendimiento históricos, este es un problema clásico de aprendizaje supervisado que asigna su tupla (perfil del cliente, acción) a una puntuación de rendimiento.

Las siguientes razones son las razones por las cuales el aprendizaje por refuerzo será una mala elección para su tarea:

  1. El aprendizaje por refuerzo hace un uso muy INEFICIENTE de los datos, por lo que generalmente requiere una cantidad infinita de datos suministrados, ya sea del simulador o de la experiencia real. Creo que ninguno de estos casos se aplica a usted, ya que no querrá que su modelo no entrenado envíe notificaciones aleatorias a sus clientes al comienzo del entrenamiento, y su problema se considerará resuelto si ya tiene un simulador.

  2. El aprendizaje de refuerzo generalmente se usa para lidiar con largas secuencias de acciones, y la acción temprana podría tener una influencia drástica en el resultado final, como en el ajedrez. En ese caso, no hay una partición clara de la recompensa final recibida al final de cada paso de sus acciones, por lo tanto, la ecuación de Bellman se usa explícita o implícitamente en el aprendizaje de refuerzo para resolver este problema de atribución de recompensa. Por otro lado, su problema no parece tener esta naturaleza secuencial (a menos que lo haya entendido mal o su sistema envíe un correo electrónico de un lado a otro con un cliente), y cada muestra de sus datos es un IID de un solo paso.

DiveIntoML
fuente
1

Estos documentos proporcionan un método llamado Fitted Q Iteration para el aprendizaje de refuerzo por lotes (es decir, aprender una política a partir de experiencias pasadas) https://pdfs.semanticscholar.org/2820/01869bd502c7917db8b32b75593addfbbc68.pdf https://pdfs.semanticscholar.org/03fd/37aba0c900e232550ce65cc .pdf

Necesitará una función de recompensa, estados y acciones claramente definidos.

Para las pruebas, lo mejor es utilizar una pequeña cohorte de usuarios y una prueba A / B con respecto a sus métricas.

DaT
fuente