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
Importante
Recomendamos usar a fórmula User-Personalization-v2. 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.
Tópicos
- Recursos da fórmula
- Conjuntos de dados obrigatórios e opcionais
- Propriedades e hiperparâmetros
- Treinamento com a fórmula User-Personalization (console)
- Treinamento com a receita de personalização do usuário (Python) SDK
- Obter recomendações e gravar impressões (SDKpara Python (Boto3))
- Exemplo de caderno Jupyter
Recursos da fórmula
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.
-
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).
-
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.
Conjuntos de dados obrigatórios e opcionais
Para usar a User-Personalization, você deve criar um conjunto de dados de interações com itens 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.
-
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.
-
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.
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.
-
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.
Propriedades e hiperparâmetros
A fórmula User-Personalization tem as seguintes propriedades:
-
Nome:
aws-user-personalization
-
Receita Nome do recurso da Amazon (ARN) —
arn:aws:personalize:::recipe/aws-user-personalization
-
Algoritmo ARN —
arn:aws:personalize:::algorithm/aws-user-personalization
Para obter mais informações, consulte Escolher uma fórmula.
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 escolha do melhor valor para um hiperparâmetro é chamado de otimização de hiperparâmetros ()HPO. Para obter mais informações, consulte Hiperparâmetros e HPO.
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)
-
HPOajustável: O parâmetro pode participarHPO?
Nome | Descrição |
---|---|
Hiperparâmetros de algoritmo | |
hidden_dimension |
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 o melhor valor, useHPO. Para usarHPO, Valor padrão: 149 Intervalo: [32, 256] Tipo de valor: inteiro HPOajustável: Sim |
bptt |
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 Valor padrão: 32 Intervalo: [2, 32] Tipo de valor: inteiro HPOajustável: Sim |
recency_mask |
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 Valor padrão: Intervalo: Tipo de valor: booliano HPOajustável: Sim |
Hiperparâmetros de caracterização | |
min_user_history_length_percentile |
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 Por exemplo, a definição de Valor padrão: 0.0 Intervalo: [0,0, 1,0] Tipo de valor: flutuante HPOajustável: Não |
max_user_history_length_percentile |
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 Por exemplo, a definição de Valor padrão: 0.99 Intervalo: [0,0, 1,0] Tipo de valor: flutuante HPOajustável: Não |
Hiperparâmetros de configuração da campanha de exploração de itens | |
exploration_weight |
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 ter mais informações, consulte CampaignConfig. Valor padrão: 0.3 Intervalo: [0,0, 1,0] Tipo de valor: flutuante HPOajustável: Não |
exploration_item_age_cut_off |
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. 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. Valor padrão: 30.0 Intervalo: flutuantes positivos Tipo de valor: flutuante HPOajustável: Não |
Treinamento com a fórmula User-Personalization (console)
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)
-
Abra o console Amazon Personalize em https://console.aws.amazon.com/personalize/casa
e faça login na sua conta. -
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 Metadados de texto não estruturados dados em seu 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.
-
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.
-
No painel de navegação, escolha Soluções e fórmulas e escolha Criar solução.
-
Na página Criar solução, em Nome da solução, insira o nome da sua nova solução.
-
Em Tipo de solução, escolha Recomendação de item para obter recomendações de itens para seus usuários.
-
Para Receita, escolha aws-user-personalization. A seção Configuração da solução aparece com várias opções de configuração.
-
Na configuração adicional, se seu conjunto de dados de interações do item tiver EVENT _ TYPE ou ambas as VALUE colunas EVENT _ TYPE e EVENT _, opcionalmente, use os campos Tipo de evento e Limite de valor do evento para escolher os dados de interações do item que o Amazon Personalize usa ao treinar o modelo. Para obter mais informações, consulte Selecionar os dados de interações com itens utilizados para treinamento.
-
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.
-
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:
-
Na página de detalhes da solução ou na página Campanhas, escolha Criar nova campanha.
-
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.
-
-
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.
-
-
Escolha Create campaign (Criar campanha).
-
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 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.
Para atualizar manualmente a campanha, primeiro crie e treine uma nova versão da solução usando o console ou a operação CreateSolutionVersion, com o
trainingMode
definido comoupdate
. Em seguida, atualize manualmente a campanha na página Campanha do console ou usando a operação UpdateCampaign.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 receita de personalização do usuário (Python) SDK
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 Metadados de texto não estruturados dados em seu 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.
Para treinar uma solução com a receita de personalização do usuário usando o AWS SDK
-
Crie uma nova solução usando o método
create_solution
.solution name
Substitua pelo nome da sua solução edataset group arn
pelo Amazon Resource Name (ARN) do seu grupo de conjuntos 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, consultePropriedades e hiperparâmetros.
-
Crie uma nova versão da solução com os dados de treinamento atualizados e defina
trainingMode
comoFULL
usando o snippet de código a seguir.solution arn
Substitua o pelo ARN da sua 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) -
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 osolution 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.
Para atualizar manualmente a campanha, primeiro crie e treine uma nova versão da solução usando o console ou a operação CreateSolutionVersion, com o
trainingMode
definido comoupdate
. Em seguida, atualize manualmente a campanha na página Campanha do console ou usando a operação UpdateCampaign.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 (SDKpara Python (Boto3))
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 consulteCriar um trabalho de inferência em lote (AWS SDKs).
Para obter recomendações e registrar impressões
-
Chame o método
get_recommendations
. Altere ocampaign arn
para o ARN da sua nova campanha euser id
para o userId do usuário.import boto3 rec_response = personalize_runtime.get_recommendations(campaignArn = '
campaign arn
', userId = 'user id
') print(rec_response['recommendationId']) -
Crie um novo rastreador de eventos para enviar PutEvents solicitações.
event tracker name
Substitua pelo nome do seu rastreador de eventos edataset group arn
pelo do seu grupo ARN 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)) -
Use o
recommendationId
da etapa 1 e oevent tracking id
da etapa 2 para criar uma nova solicitaçãoPutEvents
. Essa solicitação registra os novos dados de impressão da sessão do usuário. Altere ouser 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
Para obter um exemplo de caderno Jupyter que mostre como usar a fórmula User-Personalization, consulte User-Personalization com exploração