

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Fórmula User-Personalization
<a name="native-recipe-new-item-USER_PERSONALIZATION"></a>

**Importante**  
Recomendamos usar a fórmula [User-Personalization-v2](native-recipe-user-personalization-v2.md). Ela pode considerar até 5 milhões de itens com um treinamento mais rápido e gerar recomendações mais relevantes com menor latência.

A receita User-Personalization (aws-user-personalization) é otimizada para todos os cenários de recomendação personalizada. Ela prevê os itens com os quais um usuário tem mais probabilidade de interagir. Por exemplo, você pode usar a User-Personalization para gerar recomendações personalizadas de filmes para um aplicativo de streaming ou recomendações personalizadas de produtos para um aplicativo de varejo.

Com a User-Personalization, o Amazon Personalize gera recomendações com base principalmente em dados de interações com itens em um conjunto de dados de interações com itens. Ele também pode usar qualquer item e metadados de usuário em seus conjuntos de dados de itens e usuários. Para obter mais informações sobre os dados que ele usa, consulte [Conjuntos de dados obrigatórios e opcionais](#user-personalization-datasets). 

**Topics**
+ [Recursos da fórmula](#user-personalization-features)
+ [Conjuntos de dados obrigatórios e opcionais](#user-personalization-datasets)
+ [Propriedades e hiperparâmetros](#bandit-hyperparameters)
+ [Treinamento com a fórmula User-Personalization (console)](#training-user-personalization-recipe-console)
+ [Treinamento com a fórmula User-Personalization (SDK do Python)](#training-user-personalization-recipe)
+ [Obter recomendações e gravar impressões (SDK para Python (Boto3))](#user-personalization-get-recommendations-recording-impressions)
+ [Exemplo de caderno Jupyter](#bandits-sample-notebooks)

## Recursos da fórmula
<a name="user-personalization-features"></a>

A User-Personalization usa os seguintes recursos da fórmula do Amazon Personalize ao gerar recomendações de itens: 
+ Personalização em tempo real: o Amazon Personalize usa personalização em tempo real para atualizar e adaptar as recomendações de ações de acordo com a evolução do interesse do usuário. Para obter mais informações, consulte [Personalização em tempo real](use-case-recipe-features.md#about-real-time-personalization).
+ Exploração: com a exploração, as recomendações incluem novos itens ou itens com menos dados de interações. Isso melhora a descoberta e o engajamento de itens quando você tem um catálogo que muda rapidamente ou quando novos itens, como artigos de notícias ou promoções, são mais relevantes para os usuários quando são novos. Para obter mais informações sobre exploração, consulte [Exploration (Exploração)](use-case-recipe-features.md#about-exploration).
+ Atualizações automáticas: com as atualizações automáticas, o Amazon Personalize atualiza automaticamente o modelo mais recente (versão da solução) a cada duas horas para incluir novas ações nas recomendações. Para obter mais informações, consulte [Atualizações automáticas](use-case-recipe-features.md#automatic-updates).

## Conjuntos de dados obrigatórios e opcionais
<a name="user-personalization-datasets"></a>

Para usar a User-Personalization, você deve criar um [conjunto de dados de interações com itens](interactions-datasets.md) e importar no mínimo 1.000 interações. O Amazon Personalize gera recomendações com base principalmente em dados de interações.

Com a User-Personalization, o Amazon Personalize pode usar dados de interações com itens que incluem o seguinte:
+ Dados de tipo e valor do evento: o Amazon Personalize usa dados de tipos de evento, como tipos de evento de clique ou exibição, para identificar a intenção e o interesse do usuário por meio de padrões de comportamento. Além disso, é possível usar dados de tipo e valor do evento para filtrar registros antes do treinamento. Para obter mais informações, consulte [Tipo de evento e dados de valor do evento](interactions-datasets.md#event-type-and-event-value-data). 
+ Metadados contextuais: são dados de interações que você coleta no ambiente do usuário no momento de um evento, como sua localização ou tipo de dispositivo. Para obter mais informações, consulte [Metadados contextuais](interactions-datasets.md#interactions-contextual-metadata). 
+ Dados de impressões: impressões são listas de itens que estavam visíveis para um usuário durante a interação dele (clicar, assistir, comprar e assim por diante) com um determinado item. Para obter mais informações, consulte [Dados de impressões](interactions-datasets.md#interactions-impressions-data).

 Os seguintes conjuntos de dados são opcionais e podem melhorar as recomendações: 
+ Conjunto de dados de usuários: o Amazon Personalize usa todos os dados do conjunto de dados para entender melhor os usuários e seus interesses. Também é possível usar dados em um conjunto de dados de usuários para filtrar recomendações. Para obter informações sobre os dados de usuários que podem ser importados, consulte [Metadados do usuário](users-datasets.md).
+ Conjunto de dados de itens: o Amazon Personalize pode usar todos os dados do conjunto de dados dos itens para identificar conexões e padrões no comportamento. Isso ajuda o Amazon Personalize a entender os usuários e os respectivos interesses. Também é possível usar dados em um conjunto de dados de itens para filtrar as recomendações. Para obter informações sobre os dados de itens que podem ser importados, consulte [Metadados de itens](items-datasets.md). 

## Propriedades e hiperparâmetros
<a name="bandit-hyperparameters"></a>

A fórmula User-Personalization tem as seguintes propriedades:
+  **Nome**: `aws-user-personalization`
+  **Fórmula nome do recurso da Amazon (ARN)** – `arn:aws:personalize:::recipe/aws-user-personalization`
+  **ARN do algoritmo** – `arn:aws:personalize:::algorithm/aws-user-personalization`

Para obter mais informações, consulte [Escolher uma fórmula](working-with-predefined-recipes.md).

A tabela a seguir descreve os hiperparâmetros da fórmula User-Personalization. Um *hiperparâmetro* é um parâmetro de algoritmo que pode ser ajustado para melhorar o desempenho do modelo. Os hiperparâmetros do algoritmo controlam o desempenho do modelo. Os hiperparâmetros de caracterização controlam como filtrar os dados a serem usados no treinamento. O processo de escolher o melhor valor para um hiperparâmetro é chamado de otimização de hiperparâmetros (HPO). Para obter mais informações, consulte [Hiperparâmetros e HPO](customizing-solution-config-hpo.md). 

A tabela também fornece as seguintes informações para cada hiperparâmetro:
+ **Intervalo**: [limite inferior, limite superior]
+ **Tipo de valor**: inteiro, contínuo (float), categórico (booliano, lista, string)
+ **HPO ajustável**: o parâmetro pode participar da HPO?


<table>
<thead>
  <tr><th>Nome</th><th>Description</th></tr>
</thead>
<tbody>
  <tr><td colspan="2">Hiperparâmetros de algoritmo</td></tr>
  <tr><td>hidden\_dimension</td><td>O número de variáveis ocultas usadas no modelo. *Variáveis ocultas* recriam o histórico de compras dos usuários e as estatísticas de itens para gerar pontuações de classificação. Especifique um número maior de dimensões ocultas quando o conjunto de dados de interações com itens incluir padrões mais complicados. Usar mais dimensões ocultas requer um conjunto de dados maior e mais tempo para processamento. Para decidir sobre o valor ideal, use HPO. Para usar a HPO, defina `performHPO` `true` ao chamar as operações [CreateSolution](API_CreateSolution.md) e [CreateSolutionVersion](API_CreateSolutionVersion.md).<br />Valor padrão: 149<br />Intervalo: [32, 256]<br />Tipo de valor: inteiro<br />Ajustável de HPO: sim</td></tr>
  <tr><td>bptt</td><td>Determina se é necessário usar a técnica de propagação retroativa ao longo do tempo. A *propagação retroativa ao longo do tempo* é uma técnica que atualiza pesos em algoritmos baseados em rede neural recorrente. Use o `bptt` para créditos de longo prazo a fim de conectar prêmios atrasados a eventos iniciais. Por exemplo, um prêmio atrasado pode ser uma compra feita após vários cliques. Um evento inicial pode ser um clique inicial. Mesmo dentro dos mesmos tipos de evento, como um clique, é uma boa ideia considerar efeitos de longo prazo e maximizar os prêmios totais. Para considerar efeitos de longo prazo, use valores `bptt` maiores. O uso de um valor `bptt` maior exige conjuntos de dados maiores e mais tempo para processamento.<br />Valor padrão: 32<br />Intervalo: [2, 32]<br />Tipo de valor: inteiro<br />Ajustável de HPO: sim</td></tr>
  <tr><td>recency\_mask</td><td>Determina se o modelo deve utilizar as tendências de popularidade mais recentes no conjunto de dados de interações com itens. As tendências de popularidade mais recentes podem incluir mudanças repentinas nos padrões subjacentes de eventos de interação. Para treinar um modelo que posiciona mais peso sobre eventos recentes, defina `recency_mask` como `true`. Para treinar um modelo que pese igualmente todas as interações passadas, defina `recency_mask` como `false`. Para obter boas recomendações usando um peso igual, talvez seja necessário um conjunto de dados de treinamento maior.<br />Valor padrão: `True`<br />Intervalo: `True` ou `False`<br />Tipo de valor: booliano<br />Ajustável de HPO: sim</td></tr>
  <tr><td colspan="2">Hiperparâmetros de caracterização</td></tr>
  <tr><td>min\_user\_history\_length\_percentile</td><td>O percentil mínimo dos comprimentos dos históricos de usuários para incluir no treinamento do modelo. *Tamanho do histórico* é a quantidade total de dados sobre um usuário. Use `min_user_history_length_percentile` para excluir uma porcentagem de usuários com históricos breves. Os usuários com um histórico breve geralmente mostram padrões baseados na popularidade dos itens em vez das necessidades ou dos desejos pessoais do usuário. Removê-los pode treinar modelos com mais foco nos padrões subjacentes nos dados. Escolha um valor apropriado depois de revisar os comprimentos de histórico dos usuários usando um histograma ou uma ferramenta semelhante. Recomendamos definir um valor que retenha a maioria dos usuários, mas remova os casos de borda.<br /> Por exemplo, a definição de `min_user_history_length_percentile to 0.05` e `max_user_history_length_percentile to 0.95` inclui todos os usuários, exceto aqueles com comprimentos de histórico nos 5% inferiores ou superiores.<br />Valor padrão: 0.0<br />Intervalo: [0,0, 1,0]<br />Tipo de valor: flutuante<br />HPO ajustável: não</td></tr>
  <tr><td>max\_user\_history\_length\_percentile</td><td>O percentil máximo dos comprimentos dos históricos de usuários a ser incluído no treinamento do modelo. *Tamanho do histórico* é a quantidade total de dados sobre um usuário. Use `max_user_history_length_percentile` para excluir uma porcentagem de usuários com históricos longos, pois os dados desses usuários tendem a conter ruído. Por exemplo, um robô pode ter uma longa lista de interações automatizadas. A remoção desses usuários limita o ruído no treinamento. Escolha um valor apropriado depois de revisar os comprimentos de histórico dos usuários usando um histograma ou uma ferramenta semelhante. Recomendamos definir um valor que retenha a maioria dos usuários, mas remova os casos de borda.<br />Por exemplo, a definição de `min_user_history_length_percentile to 0.05` e `max_user_history_length_percentile to 0.95` inclui todos os usuários, exceto aqueles com comprimentos de histórico nos 5% inferiores ou superiores.<br />Valor padrão: 0.99<br />Intervalo: [0,0, 1,0]<br />Tipo de valor: flutuante<br />HPO ajustável: não</td></tr>
  <tr><td colspan="2">Hiperparâmetros de configuração da campanha de exploração de itens</td></tr>
  <tr><td>exploration\_weight</td><td>Determina com que frequência as recomendações incluem itens com menos dados de interações com itens ou menor relevância. Quanto mais próximo o valor estiver de 1,0, maior será a exploração. Em zero, nenhuma exploração ocorre, e as recomendações são baseadas nos dados atuais (relevância). Para obter mais informações, consulte [CampaignConfig](API_CampaignConfig.md).<br />Valor padrão: 0.3<br />Intervalo: [0,0, 1,0]<br />Tipo de valor: flutuante<br />HPO ajustável: não</td></tr>
  <tr><td>exploration\_item\_age\_cut\_off</td><td>Especifique a idade máxima do item em dias desde a última interação em todos os itens no conjunto de dados de interações com itens. Isso define o escopo da exploração do item com base na idade do item. O Amazon Personalize determina a idade do item com base no carimbo de data e hora de criação ou, caso esses dados não existam, nos dados das interações com itens. Para obter mais informações sobre como o Amazon Personalize determina a idade do item, consulte [Dados de carimbo de data e hora de criação](items-datasets.md#creation-timestamp-data). <br />Para aumentar os itens que o Amazon Personalize considera durante a exploração, insira um valor maior. O mínimo é 1 dia e o padrão é 30 dias. As recomendações podem incluir itens mais antigos do que o limite de idade do item especificado. Isso ocorre porque esses itens são relevantes para o usuário, e a exploração não os identificou.<br />Valor padrão: 30.0<br />Intervalo: flutuantes positivos<br />Tipo de valor: flutuante<br />HPO ajustável: não</td></tr>
</tbody>
</table>


## Treinamento com a fórmula User-Personalization (console)
<a name="training-user-personalization-recipe-console"></a>

Para usar a fórmula User-Personalization para gerar recomendações no console, primeiro treine uma nova versão da solução usando a fórmula. Em seguida, implante uma campanha usando a versão da solução e use a campanha para obter recomendações. 

**Treinar uma nova versão da solução com a fórmula User-Personalization (console)**

1. Abra o console Amazon Personalize em [https://console.aws.amazon.com/personalize/casa](https://console.aws.amazon.com/personalize/home) e faça login na sua conta.

1. Crie um grupo de conjuntos de dados personalizados com um novo esquema e carregue seu conjunto de dados com dados de impressões. Opcionalmente, inclua [CREATION\_TIMESTAMP]() e dados de [Metadados de texto não estruturados](items-datasets.md#text-data) no conjunto de dados de itens para que o Amazon Personalize possa calcular com mais precisão a idade de um item e identificar itens frios.

   Para obter mais informações sobre como importar dados, consulte [Importar dados de treinamento para os conjuntos de dados do Amazon Personalize](import-data.md).

1. Na página **Grupos de conjuntos de dados**, escolha o novo grupo de conjuntos de dados que contém o conjunto de dados ou conjuntos de dados com dados de impressões.

1. No painel de navegação, escolha **Soluções e fórmulas** e escolha **Criar solução**.

1. Na página **Criar solução**, em **Nome da solução**, insira o nome da sua nova solução.

1. Em **Tipo de solução**, escolha **Recomendação de item** para obter recomendações de itens para seus usuários. 

1. Para **Receita**, escolha **aws-user-personalization**. A seção **Configuração da solução** aparece com várias opções de configuração. 

1. Em **Configuração de evento**, se o conjunto de dados de interações com itens tiver as colunas EVENT\_TYPE ou EVENT\_TYPE e EVENT\_VALUE, use os campos **Tipo de evento** e **Limite de valor do evento** para escolher os dados de interações com itens que o Amazon Personalize utiliza ao treinar o modelo. Para obter mais informações, consulte [Selecionar os dados de interações com itens utilizados para treinamento](event-values-types.md). 

    Se você tiver vários tipos de eventos e usar a receita User-Personalization-v Personalized-Ranking-v 2 ou a receita 2, também poderá especificar pesos diferentes para tipos diferentes. Por exemplo, você pode configurar uma solução para dar mais peso aos eventos de compra do que aos eventos de clique. Para obter mais informações, consulte [Otimização de uma solução com configuração de eventos](optimizing-solution-events-config.md). 

1. Opcionalmente, configure hiperparâmetros para sua solução. Para obter uma lista das propriedades e hiperparâmetros da fórmula User-Personalization, consulte [Propriedades e hiperparâmetros](#bandit-hyperparameters). 

1. Escolha **Criar e treinar a solução** para iniciar o treinamento. A página **Painel** é exibida.

   Você pode navegar até a página de detalhes da solução para acompanhar o andamento do treinamento na seção **Versões da solução**. Quando o treinamento for concluído,o status será **Ativo**.

**Criar uma campanha e receber recomendações (console)**

 Quando o status da versão da solução for **Ativo**, você estará pronto para criar sua campanha e receber recomendações da seguinte forma: 

1. Na página de detalhes da solução ou na página **Campanhas**, escolha **Criar nova campanha**.

1.  Na página **Criar nova campanha**, para **Detalhes da campanha**, forneça as seguintes informações: 
   + **Nome da campanha:** insira o nome da campanha. O texto que você insere aqui aparece no painel Campanha e na página de detalhes.
   + **Solução:** escolha a solução que você acabou de criar.
   + **ID da versão da solução:** escolha a ID da versão da solução que você acabou de criar.
   + **Transações mínimas provisionadas por segundo:** defina as transações mínimas provisionadas por segundo compatíveis com o Amazon Personalize. Para obter mais informações, consulte a operação [CreateCampaign](API_CreateCampaign.md).

1. Para **Configuração da campanha**, forneça as seguintes informações:
   + **Peso da exploração:** configure quanto explorar. Quando as recomendações incluírem itens com menos dados de interações ou menor relevância com maior frequência, você deve especificar uma exploração maior. Quanto mais próximo o valor estiver de 1, maior será a exploração. Em zero, nenhuma exploração ocorre, e as recomendações são baseadas nos dados atuais (relevância).
   + **Limite de idade do item de exploração**: insira a idade máxima do item, em dias desde a última interação, para definir o escopo da exploração do item. Para aumentar a quantidade de itens que o Amazon Personalize considera durante a exploração, insira um valor maior. 

      Por exemplo, se você inserir dez, somente itens com dados de interações com itens dos dez dias desde a última interação no conjunto de dados serão utilizados durante a exploração. 
**nota**  
As recomendações podem incluir itens sem dados de interações com itens de fora desse período. Isso ocorre porque esses itens são relevantes para os interesses do usuário, e a exploração não foi necessária para identificá-los.

1. Escolha **Create campaign (Criar campanha)**.

1. Na página de detalhes da campanha, quando o status da campanha é **Ativo**, você pode usar a campanha para obter recomendações e registrar impressões. Para obter mais informações, consulte [Etapa 5: Obter recomendações](getting-started-console.md#getting-started-console-get-recommendations) em "Conceitos básicos". 

    O Amazon Personalize atualiza automaticamente a versão da solução mais recente a cada duas horas para incluir novos dados. Sua campanha usa automaticamente a versão atualizada da solução. Para obter mais informações, consulte [Atualizações automáticas](use-case-recipe-features.md#automatic-updates). 

   Para atualizar manualmente a campanha, primeiro crie e treine uma nova versão da solução usando o console ou a operação [CreateSolutionVersion](API_CreateSolutionVersion.md), com o `trainingMode` definido como`update`. Em seguida, atualize manualmente a campanha na página **Campanha** do console ou usando a operação [UpdateCampaign](API_UpdateCampaign.md). 
**nota**  
 O Amazon Personalize não atualiza automaticamente as versões da solução que você criou antes de 17 de novembro de 2020. 

## Treinamento com a fórmula User-Personalization (SDK do Python)
<a name="training-user-personalization-recipe"></a>

Depois de criar um grupo de conjuntos de dados e carregar seus conjuntos de dados com dados de impressões, você pode treinar uma solução com a fórmula User-Personalization. Opcionalmente, inclua [CREATION\_TIMESTAMP]() e dados de [Metadados de texto não estruturados](items-datasets.md#text-data) no conjunto de dados de itens para que o Amazon Personalize possa calcular com mais precisão a idade de um item e identificar itens frios. Para obter mais informações sobre a criação de grupos de conjuntos de dados e o upload de dados de treinamento, consulte [Criar arquivos JSON de esquema para esquemas do Amazon Personalize](how-it-works-dataset-schema.md).

**Para treinar uma solução com a receita de personalização do usuário usando o SDK AWS**

1. Crie uma nova solução usando o método `create_solution`.

   Substitua `solution name` pelo nome da solução e `dataset group arn` pelo nome do recurso da Amazon (ARN) do grupo do conjunto de dados.

   ```
   import boto3
   
   personalize = boto3.client('personalize')
   
   print('Creating solution')
   create_solution_response = personalize.create_solution(name = '{{solution name}}', 
                               recipeArn = 'arn:aws:personalize:::recipe/aws-user-personalization', 
                               datasetGroupArn = '{{dataset group arn}}',
                               )
   solution_arn = create_solution_response['solutionArn']
   print('solution_arn: ', solution_arn)
   ```

   Para obter uma lista das propriedades e hiperparâmetros da aws-user-personalization receita, consulte[Propriedades e hiperparâmetros](#bandit-hyperparameters).

1. Crie uma nova *versão da solução* com os dados de treinamento atualizados e defina `trainingMode` como `FULL` usando o snippet de código a seguir. Substitua o `solution arn` pelo ARN da solução.

   ```
   import boto3
           
   personalize = boto3.client('personalize')
           
   create_solution_version_response = personalize.create_solution_version(solutionArn = '{{solution arn}}', 
                                                                  trainingMode='FULL')
   
   new_solution_version_arn = create_solution_version_response['solutionVersionArn']
   print('solution_version_arn:', new_solution_version_arn)
   ```

1. Quando o Amazon Personalize terminar de criar sua versão da solução, crie sua campanha com os seguintes parâmetros:
   + Forneça um novo `campaign name` e o `solution version arn` gerado na etapa 2.
   + Modifique o hiperparâmetro de configuração de exploração do item `explorationWeight` para configurar quanto explorar. Itens com menos dados de interações ou menor relevância são recomendados com maior frequência dependendo da proximidade em relação ao valor 1,0. O valor padrão é 0,3.
   + Modifique o parâmetro do hiperparâmetro da configuração de exploração do item `explorationItemAgeCutOff` para fornecer a duração máxima, em dias, em relação à interação mais recente, para a qual os itens devem ser explorados. Quanto maior o valor, mais itens são considerados durante a exploração.

   Use o seguinte snippet de Python para criar uma nova campanha com ênfase na exploração com limite de exploração em 30 dias. Criar uma campanha geralmente leva alguns minutos, mas pode demorar mais de uma hora.

   ```
   import boto3
           
   personalize = boto3.client('personalize')
   
   create_campaign_response = personalize.create_campaign(
       name = '{{campaign name}}',
       solutionVersionArn = '{{solution version arn}}',
       minProvisionedTPS = 1,
       campaignConfig = {"itemExplorationConfig": {"explorationWeight": "{{0.3}}", "explorationItemAgeCutOff": "{{30}}"}}
   )
   
   campaign_arn = create_campaign_response['campaignArn']
   print('campaign_arn:', campaign_arn)
   ```

    Com User-Personalization, o Amazon Personalize atualiza automaticamente a versão da solução a cada duas horas para incluir novos dados. Sua campanha usa automaticamente a versão atualizada da solução. Para obter mais informações, consulte [Atualizações automáticas](use-case-recipe-features.md#automatic-updates). 

   Para atualizar manualmente a campanha, primeiro crie e treine uma nova versão da solução usando o console ou a operação [CreateSolutionVersion](API_CreateSolutionVersion.md), com o `trainingMode` definido como`update`. Em seguida, atualize manualmente a campanha na página **Campanha** do console ou usando a operação [UpdateCampaign](API_UpdateCampaign.md).
**nota**  
 O Amazon Personalize não atualiza automaticamente as versões da solução que você criou antes de 17 de novembro de 2020. 

## Obter recomendações e gravar impressões (SDK para Python (Boto3))
<a name="user-personalization-get-recommendations-recording-impressions"></a>

Quando sua campanha é criada, você pode usá-la para obter recomendações para um usuário e registrar impressões. Para obter informações sobre como obter recomendações de lotes usando o AWS SDKs consulte[Criar um trabalho de inferência em lote (AWS SDKs)](creating-batch-inference-job.md#batch-sdk).



**Para obter recomendações e registrar impressões**

1. Chame o método `get_recommendations`. Altere o `campaign arn` para o ARN da sua nova campanha e `user id` para o ID do usuário.

   ```
   import boto3
               
   rec_response = personalize_runtime.get_recommendations(campaignArn = '{{campaign arn}}', userId = '{{user id}}')
   print(rec_response['recommendationId'])
   ```

1. Crie um novo rastreador de eventos para enviar PutEvents solicitações. Substitua `event tracker name` pelo nome do seu rastreador de eventos e `dataset group arn` pelo ARN do seu grupo de conjuntos de dados.

   ```
   import boto3
           
   personalize = boto3.client('personalize')
   
   event_tracker_response = personalize.create_event_tracker( 
       name = '{{event tracker name}}',
       datasetGroupArn = '{{dataset group arn}}'
   )
   event_tracker_arn = event_tracker_response['eventTrackerArn']
   event_tracking_id = event_tracker_response['trackingId']
   print('eventTrackerArn:{},\n eventTrackingId:{}'.format(event_tracker_arn, event_tracking_id))
   ```

1.  Use o `recommendationId` da etapa 1 e o `event tracking id` da etapa 2 para criar uma nova solicitação `PutEvents`. Essa solicitação registra os novos dados de impressão da sessão do usuário. Altere o `user id` para o ID do usuário. 

   ```
   import boto3
               
   personalize_events.put_events(
        trackingId = '{{event tracking id}}',
        userId= '{{user id}}',
        sessionId = '1',
        eventList = [{
        'sentAt': datetime.now().timestamp(),
        'eventType' : 'click',
        'itemId' : rec_response['itemList'][0]['itemId'],        
        'recommendationId': rec_response['{{recommendationId}}'],
        'impression': [item['itemId'] for item in rec_response['itemList']],
        }]
   )
   ```

## Exemplo de caderno Jupyter
<a name="bandits-sample-notebooks"></a>

Para obter um exemplo de caderno Jupyter que mostre como usar a fórmula User-Personalization, consulte [User-Personalization com exploração](https://github.com/aws-samples/amazon-personalize-samples/blob/master/next_steps/core_use_cases/user_personalization/user-personalization-with-exploration.ipynb).