Share via


Use o modo Aprendiz para treinar o Personalizador sem afetar seu aplicativo existente

Importante

A partir de 20 de setembro de 2023, você não poderá criar novos recursos do Personalizador. O serviço de Personalizador será aposentado no dia 1º de outubro de 2026.

Ao implantar um novo recurso do Personalizador, ele é inicializado com um modelo não treinado ou em branco. Ou seja, não aprendeu com nenhum dado e, portanto, não terá um bom desempenho na prática. Isso é conhecido como o problema de "partida a frio" e é resolvido ao longo do tempo treinando o modelo com dados reais do seu ambiente de produção. O modo aprendiz é um comportamento de aprendizagem que ajuda a mitigar o problema do "arranque a frio" e permite ganhar confiança no modelo antes de tomar decisões na produção, tudo sem exigir qualquer alteração de código.

O que é o modo Aprendiz?

Semelhante a como um aprendiz pode aprender um ofício observando um especialista, o modo Aprendiz permite que o Personalizador aprenda observando as decisões tomadas pela lógica atual do seu aplicativo. O modelo Personalizer treina imitando a mesma saída de decisão que o aplicativo. Com cada chamada à API de classificação, o Personalizer pode aprender sem afetar a lógica e os resultados existentes. As métricas, disponíveis no portal do Azure e na API, ajudam a entender o desempenho à medida que o modelo aprende. Especificamente, quão bem o Personalize está correspondendo à sua lógica existente (também conhecida como política de linha de base).

Quando o Personalizador for capaz de corresponder razoavelmente à sua lógica existente 60-80% do tempo, você poderá alterar o comportamento do modo Aprendiz para o modo Online. Nesse momento, o Personalizer retorna as melhores ações na API de classificação, conforme determinado pelo modelo subjacente, e pode aprender a tomar decisões melhores do que sua política de linha de base.

Por que usar o modo Aprendiz?

O modo Aprendiz fornece uma maneira de seu modelo imitar sua lógica de decisão existente antes de tomar decisões on-line usadas pelo seu aplicativo. Isso ajuda a mitigar o problema de arranque a frio acima mencionado e dá-lhe mais confiança no serviço Personalizer e garantia de que os dados enviados para o Personalizer são valiosos para treinar o modelo. Isso é feito sem arriscar ou afetar seu tráfego on-line e experiências do cliente.

As duas principais razões para usar o modo Aprendiz são:

  • Mitigando Cold Starts: O modo Aprendiz ajuda a mitigar o custo de um treinamento de um "novo" modelo de produção, aprendendo sem a necessidade de tomar decisões desinformadas. O modelo aprende a imitar a lógica do aplicativo existente.
  • Validando recursos de ação e contexto: os recursos de contexto e ação podem ser inadequados, imprecisos ou projetados de forma subotimizada. Se houver poucas, muitas, incorretas, barulhentas ou malformadas características, o Personalize terá dificuldade em treinar um modelo com bom desempenho. A realização de uma avaliação de recursos no modo Aprendiz permite que você descubra o quão eficazes os recursos são no treinamento do Personalizador e pode identificar áreas para melhorar a qualidade dos recursos.

Quando você deve usar o modo Aprendiz?

Use o modo Aprendiz para treinar o Personalizador para melhorar sua eficácia através dos seguintes cenários, deixando a experiência de seus usuários não afetada pelo Personalizador:

  • Você está implementando o Personalizer em um novo cenário.
  • Você fez alterações importantes nos recursos Contexto ou Ação.

No entanto, o modo Aprendiz não é uma forma eficaz de medir o impacto que o Personalizador pode ter na melhoria da recompensa média ou dos KPIs do seu negócio. Ele só pode avaliar o quão bem o serviço está aprendendo sua lógica existente, dados os dados atuais que você está fornecendo. Para medir a eficácia do Personalizador na escolha da melhor ação possível para cada chamada de Classificação, o Personalizador deve estar no modo Online ou você pode usar avaliações Offline durante um período de tempo em que o Personalizador estava no modo Online.

Quem deve usar o modo Aprendiz?

O modo aprendiz é útil para desenvolvedores, cientistas de dados e tomadores de decisões de negócios:

  • Os desenvolvedores podem usar o modo Aprendiz para garantir que as APIs de Classificação e Recompensa sejam implementadas corretamente no aplicativo e que os recursos enviados para o Personalizador estejam livres de erros e erros comuns. Saiba mais sobre como criar bons recursos de Contexto e Ação.

  • Os cientistas de dados podem usar o modo Aprendiz para validar se os recursos são eficazes no treinamento dos modelos do Personalizador. Ou seja, os recursos contêm informações úteis que permitem ao Personalizer aprender a lógica de decisão existente.

  • Os tomadores de decisão de negócios podem usar o modo Aprendiz para avaliar o potencial do Personalizador para melhorar os resultados (ou seja, recompensas) em comparação com a lógica de negócios existente. Especificamente, se o Personalizador pode ou não aprender com os dados fornecidos antes de entrar no modo Online. Isso permite que eles tomem uma decisão informada sobre o impacto da experiência do usuário, onde a receita real e a satisfação do usuário estão em jogo.

Comparando Comportamentos - Modo Aprendiz e Modo Online

A aprendizagem no modo Aprendiz difere do modo Online das seguintes formas.

Area Modo Aprendiz Modo online
Impacto na experiência do usuário A experiência dos usuários e as métricas de negócios não mudarão. O Personalizer é treinado observando as ações de linha de base da lógica atual do seu aplicativo, sem afetá-las. A experiência dos seus utilizadores pode mudar à medida que a decisão é tomada pelo Personalizador e não pela sua ação de base.
Velocidade de aprendizagem O Personalizador aprenderá mais lentamente quando estiver no modo Aprendiz em comparação com o aprendizado no modo Online. O modo aprendiz só pode aprender observando as recompensas obtidas pela sua ação padrão sem exploração, o que limita o quanto o Personalizador pode aprender. Aprende mais rápido porque pode explorar a melhor ação do modelo atual e explorar outras ações para obter resultados potencialmente melhores.
Eficácia da aprendizagem "Teto" O Personalizer só pode aproximar, e nunca exceder, o desempenho da lógica atual do seu aplicativo (a recompensa média total alcançada pela ação de linha de base). É improvável que o Personalizer atinja 100% de correspondência com a lógica do seu aplicativo atual, e é recomendado que, uma vez que a correspondência de 60% a 80% seja alcançada, o Personalizer deve ser mudado para o modo Online. O Personalizer deve exceder o desempenho da lógica do seu aplicativo de linha de base. Se o desempenho do Personalizer parar com o tempo, você poderá realizar uma avaliação offline e uma avaliação de recursos para buscar melhorias adicionais.
Classificar o valor de retorno da API para rewardActionId O rewardActionId será sempre o Id da ação padrão. Ou seja, a ação que você envia como a primeira ação na solicitação de API de classificação JSON. Em outras palavras, a API Rank não faz nada visível para seu aplicativo durante o modo Aprendiz. O rewardActionId será um dos Ids fornecidos na chamada da API de classificação, conforme determinado pelo modelo do Personalizador.
Avaliações O Personalizer mantém uma comparação dos totais de recompensas recebidas pela lógica atual do seu aplicativo, e os totais de recompensas que o Personalizer receberia se estivesse no modo Online naquele momento. Esta comparação está disponível para visualização na folha Monitor do seu recurso Personalizador no portal do Azure. Avalie a eficácia do Personalizer executando avaliações Offline, que permitem comparar o total de recompensas que o Personalizer alcançou com as recompensas potenciais da linha de base do aplicativo.

Observe que é improvável que o Personalizer atinja uma correspondência de desempenho de 100% com a lógica de linha de base do aplicativo e nunca a excederá. A correspondência de desempenho de 60% a 80% deve ser suficiente para mudar o Personalizer para o modo Online, onde o Personalizer pode aprender melhores decisões e exceder o desempenho da lógica de linha de base do seu aplicativo.

Limitações do Modo Aprendiz

O Modo Aprendiz treina o modelo do Personalizador tentando imitar a lógica de linha de base do aplicativo existente, usando os recursos de Contexto e Ação presentes nas chamadas de Classificação. Os seguintes fatores afetarão a capacidade de aprendizagem do modo Aprendiz.

Cenários em que o Modo Aprendiz pode não ser apropriado:

Conteúdo escolhido editorialmente:

Em alguns cenários, como notícias ou entretenimento, o item de linha de base pode ser atribuído manualmente por uma equipe editorial. Isso significa que os seres humanos estão usando seu conhecimento sobre o mundo mais amplo, e compreensão do que pode ser conteúdo atraente, para escolher artigos específicos ou mídia fora de um pool, e sinalizá-los como artigos "preferidos" ou "heróis". Porque esses editores não são um algoritmo, e os fatores considerados pelos editores podem ser subjetivos e possivelmente não relacionados aos recursos de Contexto ou Ação. Neste caso, o modo Aprendiz pode ter dificuldade em prever a ação da linha de base. Nestas situações, pode:

  • Personalizar de teste no modo online: considere colocar o personalizador no modo online por tempo ou em um teste A/B, se você tiver a infraestrutura, e execute uma avaliação offline para avaliar a diferença entre a lógica de linha de base do seu aplicativo e o personalizador.
  • Adicione considerações editoriais e recomendações como recursos: pergunte aos seus editores quais fatores influenciam suas escolhas e veja se você pode adicioná-los como recursos em seu contexto e ação. Por exemplo, os editores de uma empresa de mídia podem destacar conteúdo quando uma determinada celebridade é frequentemente notícia: esse conhecimento pode ser adicionado como um recurso de contexto.

Fatores que irão melhorar e acelerar o Modo Aprendiz

Se o modo aprendiz está aprendendo e alcançando um desempenho correspondente acima de zero, mas o desempenho está melhorando lentamente (não chegando a 60% a 80% de recompensas correspondentes em duas semanas), é possível que haja poucos dados sendo enviados para o Personalizador. Os seguintes passos podem ajudar a facilitar uma aprendizagem mais rápida:

  1. Adicionando recursos diferenciadores: Você pode fazer uma inspeção visual das ações em uma chamada de classificação e seus recursos. A ação de base tem características que são diferenciadas de outras ações? Se eles parecerem basicamente iguais, adicione mais recursos que aumentarão a diversidade dos valores dos recursos.
  2. Reduzindo ações por evento: o personalizador usará a configuração "% de chamadas de classificação para uso para exploração" para descobrir preferências e tendências. Quando uma chamada de Rank tem mais ações, a chance de qualquer Ação em particular ser escolhida para exploração torna-se menor. Reduzir o número de ações enviadas em cada chamada de Rank para um número menor (menos de 10) pode ser um ajuste temporário que pode indicar se o Modo Aprendiz tem ou não dados suficientes para aprender.

Usando o modo Aprendiz para treinar com dados históricos

Se você tiver uma quantidade significativa de dados históricos que gostaria de usar para treinar o Personalizador, poderá usar o modo Aprendiz para reproduzir os dados por meio do Personalizador.

Configure o Personalizador no Modo Aprendiz e crie um script que chame Rank com as ações e os recursos de contexto dos dados históricos. Ligue para a API de recompensa com base nos seus cálculos dos registros nesses dados. Você pode precisar de aproximadamente 50.000 eventos históricos para ver o Personalizer atingir uma correspondência de 60-80% com a lógica de linha de base do seu aplicativo. Você pode ser capaz de alcançar resultados satisfatórios com menos ou mais eventos.

Ao treinar a partir de dados históricos, é recomendável que os dados enviados [recursos para contexto e ações, seu layout no JSON usado para solicitações de classificação e o cálculo de recompensa neste conjunto de dados de treinamento] correspondam aos dados [recursos e cálculo de recompensa] disponíveis em seu aplicativo existente.

Os dados offline e históricos tendem a ser mais incompletos e barulhentos e podem diferir em formato do seu cenário em produção (ou online). Embora o treinamento a partir de dados históricos seja possível, os resultados de fazê-lo podem ser inconclusivos e não são necessariamente um bom preditor de quão bem o Personalizer aprenderá no modo Online, especialmente se os recursos variarem entre os dados históricos e o cenário atual.

Usando o modo Aprendiz versus testes A/B

Só é útil fazer testes A/B dos tratamentos do Personalizador depois de validado e aprender no modo Online, já que no modo Aprendiz, apenas a ação de linha de base é usada e a lógica existente é aprendida. Isso significa essencialmente que o Personalizador está retornando a ação do braço de "controle" do seu teste A/B, portanto, um teste A/B no modo Aprendiz não tem valor.

Depois de ter um caso de uso usando o Personalizer e aprendendo on-line, os experimentos A/B podem permitir que você crie coortes controladas e realize comparações de resultados que podem ser mais complexas do que os sinais usados para recompensas. Um exemplo de pergunta que um teste A/B poderia responder é: "Em um site de varejo, o Personalizer otimiza um layout e faz com que mais usuários façam check-out mais cedo, mas isso reduz a receita total por transação?"

Próximos passos