Personalização de vários slots (versão prévia)

Importante

A partir de 20 de setembro de 2023, não será mais possível criar novos recursos do Personalizador. O serviço Personalizador está sendo desativado no dia 1º de outubro de 2026.

A personalização de vários slots (versão prévia) permite direcionar o conteúdo em layouts da Web, carrossel e listas em que mais de uma ação (como um produto ou conteúdo) é mostrada aos usuários. Com as APIs de vários slots do Personalizador, você pode fazer com que os modelos de IA no Personalizador aprendam quais contextos e produtos do usuário conduzem determinados comportamentos, considerando e aprendendo com o posicionamento em sua interface do usuário. Por exemplo, o Personalizador pode aprender que determinados produtos ou conteúdos induzem a mais cliques como uma barra lateral ou rodapé do que como um destaque principal em uma página.

Neste artigo, você aprenderá por que a personalização de vários slots melhora os resultados, como habilita-la e quando usá-la. Este artigo presume que você está familiarizado com as APIs do Personalizador como Rank e Reward e tem uma compreensão conceitual de como usá-las em seu aplicativo. Se você não estiver familiarizado com o Personalizador e com como ele funciona, leia o seguinte antes de continuar:

Importante

A personalização de vários slots está em Versão Prévia Pública. Recursos, abordagens e processos mudarão com base nos comentários de usuários. A habilitação da versão prévia de vários slots desabilitará permanentemente outras funcionalidades do Personalizador em seu loop. A personalização de vários slots não pode ser desligada depois que ela é habilitada para um loop do Personalizador. Leia este documento e considere o impacto antes de configurar um loop do Personalizador para personalização de vários slots.

Quando usar a Personalização de vários slots

Sempre que você exibir produtos e/ou conteúdos para os usuários, você pode querer mostrar mais de um item para seus clientes. Por exemplo:

  • Layouts de site para páginas iniciais: muitos blocos e áreas da página são dedicados a realçar o conteúdo em caixas, faixas e barras laterais de diferentes formas e tamanhos. A personalização de vários slots aprenderá como as características desse layout afetam as opções e as ações dos clientes.
  • Carrossel: os carrosséis de conteúdo de alteração dinâmica precisam de alguns itens para serem fecharem seus ciclos. A personalização de vários slots pode aprender como a sequência e até mesmo a duração da exibição afeta os cliques e o envolvimento.
  • Produtos/conteúdo e referências incorporadas relacionadas: é comum envolver os usuários inserindo ou intercalando referências a conteúdo e produtos adicionais em faixas, barras laterais, vinhetas e caixas de rodapé. A personalização de vários slots pode ajudá-lo a alocar suas referências onde elas têm mais probabilidade de impulsionar mais uso.
  • Resultados da pesquisa ou listas: se seu aplicativo busca funcionalidade, em que você fornece resultados como listas ou blocos, é possível usar a personalização de vários slots para escolher quais itens realçar na parte superior considerando mais metadados do que os classificadores tradicionais.
  • Canais dinâmicos e listas de reprodução: a personalização de vários slots pode ajudar a determinar uma pequena sequência para uma lista de vídeos ou músicas a serem executados em um canal dinâmico.

A personalização de vários slots permite que você declare os "slots" na interface do usuário para as quais as ações precisam ser escolhidas. Ele também permite que você forneça mais informações sobre os slots para que o personalizador possa usar o para melhorar o posicionamento do produto, por exemplo, é uma caixa grande ou uma pequena caixa? Ele exibe uma legenda ou apenas um recurso? Ele está em um rodapé ou em uma barra lateral?

Como usar a Personalização de vários slots

  1. Habilitar personalização de vários slots
  2. Criar objeto JSON para Solicitação de classificação
  3. Chamar a API de classificação definindo slots e ações de linha de base
  4. Chamar as APIs de recompensas

Habilitar personalização de vários slots

Consulte as Diferenças entre a Personalização de slot único e de vários slots abaixo para entender e decidir se a personalização de vários slots é útil para você. A personalização de vários slots é uma versão prévia do recurso: incentivamos você a criar um novo loop do Personalizador se quiser testar as APIs de personalização de vários slots, pois habilitá-lo não é reversível e terá efeitos em um loop do Personalizador em execução na produção.

Depois de decidir converter um loop em personalização de vários slots, você deverá seguir estas etapas uma vez para este loop do Personalizador:

Atualizar a instância do Personalizador para vários slots

Observação

A personalização de vários slots (versão prévia) afeta outra funcionalidade do serviço Personalizador. Essa alteração não pode ser desfeita. Antes de habilitar a personalização de vários slots, confira Personalização de vários slots (versão prévia).

  1. Desabilite a Otimização Automática no portal do Azure, no recurso Personalizador, em Gerenciamento de Recursos, na página Configurações de modelo e de aprendizado, desative a Otimização Automática e salve a seleção.

Observação

A personalização de vários slots não funcionará, a menos que você desabilite a Otimização Automática. A Otimização Automática para a personalização de vários slots terá suporte no futuro.

  1. Atualize o Personalizador para vários slots no portal do Azure, no recurso Personalizador, em Gerenciamento de Recursos, na página Configurações de modelo e de aprendizado, clique em Exportar configurações de aprendizado. O campo argumentos no arquivo json baixado começará com --cb_explore_adf. Altere isso para --ccb_explore_adf e salve o arquivo. CB (Bandits contextuais) e CCB (Bandits contextuais condicionais) são os algoritmos que o Personalizador usa para personalização de slot único e de vários slots, respectivamente. ADF (recursos dependentes de ação) significa que as ações são expressas/identificadas com recursos.

Learning settings before change

Learning settings after change

Na mesma guia no portal, em importar configurações de aprendizado, navegue até encontrar o arquivo json modificado recentemente e faça o upload. Isso atualizará sua instância do Personalizador para ser um Personalizador de "Vários Slots", e agora dará suporte a chamadas de Classificação e de Recompensa de vários slots.

Criar objeto JSON para uma Solicitação de classificação

Usar a personalização de vários slots requer uma API que difere ligeiramente da API de personalização de slot único.

Você declara os slots disponíveis para atribuir ações em cada solicitação de chamada de classificação, nos objetos de slots:

  • Matriz de slots: você precisa declarar uma matriz de slots. Os slots são ordenados: a posição de cada slot na matriz é importante. É fortemente recomendável ordenar suas definições de slot com base em quantas recompensas/cliques/conversões cada slot tende a obter, começando com aquele que obtém mais. Por exemplo, você colocaria uma caixa grande e chamativa na página inicial de um site como slot 1, em vez de um rodapé pequeno. Todas as outras coisas sendo iguais, o Personalizador atribuirá ações com mais chances de obter recompensas anteriormente na sequência.
  • ID do slot: você precisa dar uma slotId para cada slot – uma cadeia de caracteres exclusiva para todos os outros slots nesta Chamada de classificação.
  • Recursos do slot: você deve fornecer metadados adicionais que descrevem e os distinguem ainda mais de outros slots. Eles são chamados de recursos. Ao determinar recursos de slot, você deve seguir as mesmas diretrizes recomendadas para os recursos de contexto e ações (Consulte: Recursos para contexto e ações). Recursos típicos de slot ajudam a identificar características de tamanho, posição ou visual de um elemento de interface do usuário. Por exemplo position: "top-left", size: "big", animated: "no", sidebar: "true" ou sequence: "1".
  • Ações de linha de base: você precisa especificar a ID de ação de linha de base para cada slot. Ou seja, a ID da Ação que seria mostrada nesse slot se o Personalizador não existisse. Isso é necessário para treinar o Personalizador no Modo de Aprendiz e ter um número significativo ao fazer Avaliações Offline.
  • Ter ações suficientes: certifique-se de chamar Classificação com mais Ações do que slots, para que o Personalizador possa atribuir pelo menos uma ação a cada slot. O Personalizador não repetirá as recomendações de ação nos slots: a resposta de classificação atribuirá cada ação no máximo a um slot.

Não tem problema, se você adicionar ou remover slots ao longo do tempo, adicionar e alterar seus recursos ou reordenar a matriz: o Personalizador se adaptará e manterá o treinamento com base nas novas informações.

Aqui está um objeto de exemplo slots com alguns recursos de exemplo. Embora a maioria do objeto slots seja estável (uma vez que as UIs tendem a ser alteradas lentamente), a maior parte dele não será alterada com frequência. Mas você deve se certificar de atribuir as IDs de baselineaction apropriadas a cada Chamada de classificação.

"slots": [ 
    { 
      "id": "BigHighlight", 
      "features": [ 
            { 
              "size": "Large", 
              "position": "Left-Middle" 
            }
        ],
        "baselineAction": "BlackBoot_4656" 
    }, 

    { 
      "id": "Sidebar1", 
      "features": [ 
            { 
              "size": "Small", 
              "position": "Right-Top" 
            } 
        ],
        "baselineAction": "TrekkingShoe_1122"  
    }  
  ]

Usar a resposta da API de classificação

Uma resposta de classificação de vários slots da solicitação acima pode ser semelhante ao seguinte:

{ 
  "slots": [ 
        { 
          "id": "BigHighlight", 
          "rewardActionId": "WhiteSneaker_8181" 
        }, 
        { 
          "id": "SideBar1", 
          "rewardActionId": "BlackBoot_4656" 
        } 
    ], 
  "eventId": "123456D0-BFEE-4598-8196-C57383D38E10" 
} 

Pegue o rewardActionId para cada slot e o use para renderizar a interface do usuário adequadamente.

Chamar a API de Recompensa

O Personalizador aprende como escolher ações que irão maximizar a recompensa obtida. Seu aplicativo observará o comportamento do usuário e computará uma "pontuação de recompensa" para o Personalizador com base na reação observada. Por exemplo, se o usuário clicou na ação em "slotId": "SideBar1",, você enviará um "1" para o Personalizador para fornecer reforço positivo para as opções de ação.

A API de recompensa especifica o eventId para a recompensa na URL:

https://{endpoint}/personalizer/v1.0/events/{eventId}/reward

Por exemplo, a recompensa para o evento acima com ID: 123456D0-BFEE-4598-8196-C57383D38E10/reward será enviada para https://{endpoint}/personalizer/v1.0/events/123456D0-BFEE-4598-8196-C57383D38E10/reward/reward:

{ 
  "reward": [ 
    { 
      "slotId": "BigHighlight", 
      "value": 0.2 
    }, 
    { 
      "slotId": "SideBar1", 
     "value": 1.0 
    }, 
  ] 
} 

Você não precisa fornecer todas as pontuações de recompensa em apenas uma chamada da API de recompensa. Você pode chamar a API de recompensa várias vezes, cada uma com o eventId e o slotIds apropriados. Se nenhuma pontuação de recompensa for recebida para um slot em um evento, o Personalizador atribuirá implicitamente a recompensa padrão configurada para o loop (normalmente 0).

Diferenças entre personalização de slot único e de vários slots

Há diferenças em como você usa as APIs de classificação e recompensa com personalização de slots únicos ou vários slots:

Descrição Personalização de slot único Personalização de vários slots
Elementos de solicitação de chamada da API de classificação Você envia um objeto de Contexto e uma lista de Ações Você envia Contexto, uma lista de Ações e uma lista ordenada de Slots
Linha de base especificada pela solicitação de classificação O Personalizador tomará a primeira Ação na lista de ações como a ação de linha de base (o item que seu aplicativo teria escolhido se o Personalizador não existisse). Você deve especificar a ActionID de linha de base que teria sido usada em cada Slot.
Resposta de chamada da API de classificação Seu aplicativo realça a ação indicada no campo rewardActionId A resposta inclui uma rewardActionId diferente para cada Slot especificado na solicitação. Seu aplicativo mostrará essas ações rewardActionId em cada slot.
Chamada à API de recompensa Você chama a API de Recompensa com uma pontuação de recompensa, que você calcula de acordo com como os usuários interagiram com rewardActionId para esse eventId específico. Por exemplo, se o usuário clicou nele, você envia uma recompensa de 1. Especifique a Recompensa para cada slot, considerando o quão bem a ação com rewardActionId gerou o comportamento desejado do usuário. Isso pode ser enviado em uma ou várias chamadas à API de Recompensa com a mesma eventId.

Impacto da habilitação de vários slots para um loop do Personalizador

Além disso, ao habilitar vários slots, considere o seguinte:

Descrição Personalização de slot único Personalização de vários slots
Eventos inativos e ativação Ao chamar a API de ativação, o Personalizador ativará o evento, esperando uma Pontuação de recompensa ou atribuindo a Recompensa Padrão configurada se o Tempo de Espera de Recompensa for excedido. O Personalizador ativa e espera recompensas para todos os slots que foram especificados no eventId
Modo Aprendiz A API de Classificação do Personalizador sempre retorna a ação de linha de base e treina modelos internos imitando a ação de linha de base. A API de Classificação do Personalizador retorna a ação de linha de base para cada slot especificado no campo baselineAction. O Personalizador treinará modelos internos para imitar o primeiro
Velocidade de aprendizagem Aprende apenas a partir de uma ação realçada Pode aprender com interações com qualquer slot. Isso normalmente significa mais comportamentos de usuário que podem produzir recompensas, o que resultaria em aprendizado mais rápido para o Personalizador.
Avaliações Offline Compara o desempenho do Personalizador com as configurações de linha de base e de aprendizado otimizado, com base em qual ação teria sido escolhida. (Limitação de versão prévia) Avalia apenas o desempenho do primeiro slot na matriz. Para avaliações mais precisas, é recomendável garantir que o slot com a maioria das recompensas seja o primeiro em sua matriz.
Otimização Automática (Versão prévia) O loop do Personalizador pode realizar Avaliações Offline periodicamente em segundo plano e otimizar as Configurações de Aprendizado sem intervenção administrativa (Limitação de versão prévia) A Otimização Automática está desabilitada para loops do Personalizador que têm APIs de vários slots habilitadas.

Próximas etapas