Aprendizado por Reforço de Dados Históricos

8

Estou trabalhando para aprender a política ideal de comunicação para os clientes (quais notificações enviar, quantas enviar e quando enviar). Tenho dados históricos de notificações passadas enviadas (com timestamps) e seus desempenhos. Estava tentando aplicar a RL a esse problema para aprender a política ideal. No entanto, uma restrição importante aqui é que não tenho o luxo de aprender a política on-line (on-line), pois atualmente não controlo as ações (quais notificações podem ser enviadas para quais clientes). Eu tenho duas perguntas:

  1. A RL é a estrutura correta sob tais restrições?
  2. Como podemos aprender a política ideal offline em tais situações e como avaliamos o mesmo?
Ashay Tamhane
fonte

Respostas:

6
  1. A RL é a estrutura correta sob tais restrições?

Parece possível , mas talvez alguns pequenos detalhes que você não tenha fornecido tornariam outras abordagens mais viáveis. Por exemplo, se os eventos de notificação puderem ser tratados como mais ou menos independentes, uma abordagem de aprendizado supervisionado poderá ser melhor ou pelo menos mais pragmática.

Mais praticamente, não está 100% claro qual será o seu estado, timesteps e opções de ação. Elas precisam ser bem definidas para que as abordagens de RL funcionem. Além disso, você deseja poder construir estados que possuem (ou quase possuem) a propriedade Markov - essencialmente que qualquer coisa conhecida e não aleatória sobre a recompensa esperada e o próximo estado seja coberta pelo estado.

  1. Como podemos aprender a política ideal offline em tais situações

Você quer um aluno offline (os dados são históricos, não "ativos") e fora da política (os dados são gerados por uma política diferente daquela que você deseja avaliar). Além disso, acho que você não conhece as políticas de comportamento que geraram seus dados, portanto não pode usar a amostragem de importância .

Provavelmente, você pode usar uma abordagem de Q-learning e trabalhar com os dados existentes, reproduzindo cada trajetória usando Q ( ) em lotes, ou alguma variante do DQN usando mini-lotes amostrados .λ

Isso não garante que funcione, pois o aprendizado fora da política tende a ser menos estável do que na política e pode exigir várias tentativas para obter hiperparâmetros que funcionem. Você precisará de um bom número de amostras que cubram as opções ideais ou quase ideais em cada etapa (não necessariamente nos mesmos episódios), porque o Q-learning depende do bootstrapping - essencialmente copiando estimativas de valor das opções de ação para trás, para os timestaps anteriores, para influenciar que afirma anteriormente que o agente prefere executar ações a seguir.

Se o seu espaço de estado / ação for pequeno o suficiente (quando você enumera completamente os estados e as ações), você pode preferir usar a forma tabular de Q-learning, pois há algumas garantias de convergência. No entanto, para a maioria dos problemas práticos, isso não é realmente possível; portanto, você deve procurar opções para usar as funções de aproximação.

... e como avaliamos o mesmo?

Se você pode obter valores de ação convergentes com aparência realista do seu Q-learning (por inspeção), existem apenas duas maneiras razoáveis ​​de avaliar o desempenho:

  • Executando o agente em uma simulação (e talvez refinando-o ainda mais lá) - não espero que isso seja viável para o seu cenário, porque seu ambiente inclui decisões tomadas por seus clientes. No entanto, este é um bom trampolim para alguns cenários, por exemplo, se o ambiente é dominado pela física básica do mundo real.

  • Executando o agente de verdade, talvez em algum subconjunto da carga de trabalho, e comparando as recompensas reais às previstas com tempo suficiente para estabelecer confiança estatística.

Você também pode executar o agente a seco com um operador existente e obter feedback sobre se suas sugestões de ações (e previsões de recompensa) parecem realistas. Isso será um feedback subjetivo e difícil de avaliar o desempenho numericamente quando as ações podem ou não ser usadas. No entanto, isso forneceria um pouco de controle de qualidade.

Neil Slater
fonte
1

A resposta curta é não.

Agora você já tem a ação e o desempenho históricos, este é um problema clássico de aprendizado supervisionado que mapeia sua tupla (perfil do cliente, ação) para uma pontuação de desempenho.

As razões abaixo são por que o aprendizado por reforço será uma má escolha para sua tarefa:

  1. O aprendizado por reforço faz uso muito ineficaz de dados; portanto, geralmente é necessário uma quantidade infinita de dados fornecidos, tanto pelo simulador quanto pela experiência real. Eu acho que nenhum desses casos se aplica a você, já que você não deseja que seu modelo não treinado envie notificações aleatórias aos seus clientes no início do treinamento, e seu problema será considerado resolvido se você já tiver um simulador.

  2. O aprendizado por reforço geralmente é usado para lidar com longas sequências de ações, e a ação inicial pode ter uma influência drástica no resultado final, como no xadrez. Nesse caso, não há uma partição clara da recompensa final recebida no final de cada etapa de suas ações; portanto, a equação de Bellman é usada explícita ou implicitamente no aprendizado por reforço para resolver esse problema de atribuição de recompensa. Por outro lado, seu problema não parece ter essa natureza seqüencial (a menos que eu tenha entendido errado ou seu sistema esteja enviando e-mails com um cliente) e cada amostra dos seus dados seja um IDI de etapa única.

DiveIntoML
fonte
1

Estes documentos fornecem um método chamado Iteração Q ajustada para aprendizado por reforço em lotes (por exemplo, aprendendo uma política a partir de experiências anteriores) https://pdfs.semanticscholar.org/2820/01869bd502c7917db8b32b75593addfbbc68.pdf https://pdfs.semanticscholar.org/03fd/37aba0c994e662550cf8cc766 .pdf

Você precisará de uma função de recompensa, estados e ações claramente definidos.

Para o teste, o melhor é usar um pequeno grupo de usuários e um teste A / B com relação às suas métricas.

DaT
fonte