Preparando dados de interação de itens para treinamento - Amazon Personalize

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á.

Preparando dados de interação de itens para treinamento

Uma interação de item é um evento de interação positiva entre um usuário e um item em seu catálogo. Por exemplo, um usuário assistindo a um filme, visualizando um anúncio ou comprando um par de sapatos. Você deve importar dados sobre interações entre usuários e itens para um conjunto de dados de interações com itens. Você pode gravar vários tipos de eventos, como clicar, assistir ou comprar.

Por exemplo, se um usuário clicar em um item específico e depois curtir o item, você pode fazer com que o Amazon Personalize use esses eventos como dados de treinamento. Para cada evento, você registraria o ID do usuário, o ID do item, o carimbo de data/hora (no formato de horário Unix epoch) e o tipo de evento (clicar e curtir). Depois, você deve adicionar os dois eventos de interação a um conjunto de dados de interações com itens.

Para todos os casos de uso de domínio e receitas personalizadas, seus dados de interações de itens em massa devem estar em um CSV arquivo. Cada linha deve representar uma única interação entre um usuário e um item. Depois de concluir a preparação dos dados, você estará pronto para criar um JSON arquivo de esquema. Esse arquivo informa ao Amazon Personalize sobre a estrutura dos seus dados. Para obter mais informações, consulte Criação de JSON arquivos de esquema para esquemas do Amazon Personalize.

As seções a seguir fornecem mais informações sobre como preparar os dados de interação do item para o Amazon Personalize. Para obter diretrizes de formato de dados em massa para todos os tipos de dados, consulte as diretrizes de formato de dados em massa

Requisitos de dados de interação do item

As seções a seguir listam os requisitos de dados de interação do item para o Amazon Personalize. Para cotas adicionais, consulteCotas e endpoints do Amazon Personalize.

Requisitos mínimos de treinamento

Para todos os casos de uso de domínio e receitas personalizadas, seus dados de interações de itens em massa devem ter o seguinte:

  • No mínimo, mil registros de interações com itens de usuários que interagem com itens do catálogo. Essas interações podem ser de importações em massa, eventos transmitidos ou ambas as coisas.

  • No mínimo 25 usuários únicos IDs com pelo menos duas interações de itens para cada um.

Para obter recomendações de qualidade, o ideal é que você tenha, no mínimo, cinquenta mil interações com itens de, pelo menos, mil usuários com duas ou mais interações com itens cada.

Para criar um recomendador ou uma solução personalizada, é necessário, no mínimo, criar um conjunto de dados de interações com itens.

Requisitos de coluna

Os dados de interações do item devem ter as seguintes colunas.

  • USER_ID — O identificador exclusivo do usuário que interagiu com o item. Todo evento deve ter um USER _ID. Ele deve ter string um tamanho máximo de 256 caracteres.

  • ITEM_ID — O identificador exclusivo do item com o qual o usuário interagiu. Todo evento deve ter um ID de item. Ele deve ter string um tamanho máximo de 256 caracteres.

  • TIMESTAMP— A hora em que o evento ocorreu (no formato de hora de época do Unix em segundos). Cada interação deve ter umTIMESTAMP. Para obter mais informações, consulte Dados de carimbo de data/hora.

  • EVENT_ TYPE — A natureza do evento de interação do item, como clicar, assistir ou comprar. Para recomendadores de domínio, você deve ter uma coluna de tipo de evento e cada interação deve ter um tipo de evento. Para todas as receitas personalizadas, uma TYPE coluna EVENT _ é recomendada, mas opcional. Se você adicioná-lo, cada evento deverá ter um tipo de evento. Para ter mais informações, consulte Tipo de evento e dados de valor do evento.

Você pode adicionar colunas personalizadas adicionais, dependendo do seu caso de uso e dos seus dados. O número máximo de colunas de metadados opcionais é 5. Essas colunas podem incluir valores vazios/nulos. Recomendamos que essas colunas estejam no mínimo 70% completas.

Dados de carimbo de data/hora

Os dados do carimbo de data/hora devem estar no formato de hora de época do Unix em segundos. Por exemplo, o carimbo de data/hora Unix epoch em segundos para a data 31 de julho de 2020 é 1596238243. Para converter datas em timestamps Unix epoch, use um conversor Epoch - conversor de timestamp Unix.

O Amazon Personalize usa dados de carimbo de data/hora para calcular a atualidade e identificar qualquer padrão baseado em tempo. Isso ajuda o Amazon Personalize a manter as recomendações de acordo up-to-date com as preferências em evolução dos usuários.

Tipo de evento e dados de valor do evento

Um conjunto de dados de interações de itens pode armazenar dados de tipo e valor de evento para cada interação. Somente recursos personalizados usam dados de valor do evento.

Dados de tipos de eventos

O tipo de evento de uma interação de item fornece contexto sobre sua natureza e significado. Exemplos de tipos de eventos podem ser clicar, assistir ou comprar. O Amazon Personalize usa dados do tipo de evento, como dados de clique ou compra, para identificar a intenção e o interesse do usuário. O número máximo de tipos de eventos distintos combinados com o número total de colunas de metadados opcionais em um conjunto de dados de interações de itens é 10.

Para recomendadores de domínio, você deve ter uma coluna de tipo de evento e cada interação deve ter um tipo de evento. Para todas as receitas personalizadas, uma TYPE coluna EVENT _ é recomendada, mas opcional. Se você adicioná-lo, cada evento deverá ter um tipo de evento.

Se você criar recursos personalizados, poderá escolher os eventos usados para treinamento por tipo de evento. Se seu conjunto de dados tiver vários tipos de eventos em uma TYPE coluna EVENT _ e você não fornecer um tipo de evento ao configurar uma solução personalizada, o Amazon Personalize usará todos os dados de interações do item para treinar com o mesmo peso, independentemente do tipo. Para obter mais informações, consulte Selecionar os dados de interações com itens utilizados para treinamento.

Os seguintes casos de uso têm requisitos específicos de tipo de evento:

VIDEO_ON_ casos de uso DEMAND do domínio

  • Porque você assistiu X, requer no mínimo 1000 Watch eventos.

  • Os mais populares exigem no mínimo 1000 Watch eventos.

ECOMMERCEcasos de uso de domínio

  • Os mais vistos exigem no mínimo 1000 View eventos.

  • Os mais vendidos exigem no mínimo 1000 Purchase eventos.

Tipos de eventos positivos e negativos

O Amazon Personalize presume que qualquer interação é positiva. Interações com um tipo de evento negativo, como não curtir, não necessariamente impedirão que o item apareça nas recomendações futuras do usuário.

Veja a seguir formas de fazer com que eventos negativos e o desinteresse dos usuários influenciem as recomendações:

Dados de valor do evento (recursos personalizados)

Os dados do valor do evento podem ser a porcentagem de um filme que um usuário assistiu ou uma classificação de 10. Se você criar soluções personalizadas, poderá escolher os registros usados para treinamento com base nos dados nas VALUE colunas EVENT EVENT _ TYPE e _. Com os recomendadores de domínio, o Amazon Personalize não usa dados de valor de eventos e você não pode filtrar eventos antes do treinamento.

Para escolher registros com base no tipo e no valor, registre os dados do tipo de evento e do valor do evento para eventos. Nem todos os eventos devem ter um valor de evento. O valor escolhido para cada evento depende dos dados que você deseja excluir e dos tipos de eventos que você está gravando. Por exemplo, você pode corresponder à atividade do usuário, como a porcentagem de vídeos que o usuário assistiu para os tipos de eventos assistir.

Ao configurar uma solução, você define um valor específico como limite para excluir registros do treinamento. Por exemplo, se seus EVENT _ VALUE dados de eventos com EVENT _ TYPE de exibição forem a porcentagem de um vídeo que um usuário assistiu, se você definir o limite do valor do evento como 0,5 e o tipo de evento a ser assistido, o Amazon Personalize treina o modelo usando apenas eventos de interação com o relógio com EVENT um VALUE _ maior ou igual a 0,5.

Para ter mais informações, consulte Selecionar os dados de interações com itens utilizados para treinamento

Metadados contextuais

Com determinados casos de uso de fórmulas e recomendadores, o Amazon Personalize pode usar metadados contextuais ao identificar padrões subjacentes que revelam os itens mais relevantes para seus usuários. 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. Você também pode especificar o contexto de um usuário ao receber recomendações para o usuário.

Inclua metadados contextuais para fornecer uma experiência mais personalizada para seus usuários e diminuir a fase de inicialização a frio para novos usuários. A fase de inicialização a frio ocorre quando as recomendações são menos relevantes devido à falta de dados históricos do usuário.

Por exemplo, se seu CSV arquivo de interações de itens incluir uma TYPE coluna DEVICE _ com phone valores tablet e valores, o Amazon Personalize poderá aprender como os clientes compram de forma diferente em dispositivos diferentes. Ao receber recomendações para um usuário, você pode especificar o dispositivo e as recomendações serão mais relevantes, mesmo que o usuário não tenha histórico de interações.

Veja a seguir como você formataria um CSV arquivo de interações de itens com uma TYPE coluna DEVICE _ como metadados contextuais.

ITEM_ID,USER_ID,TIMESTAMP,DEVICE_TYPE,EVENT_TYPE shoe12345,12,1428624000,Tablet,CLICK shoe12346,12,1420416000,Tablet,CLICK shoe12347,12,1410652800,Tablet,BUY shoe4444,13,1409961600,Phone,CLICK shoe4445,13,1402876800,Phone,BUY shoe4336,13,1402185600,Phone,CLICK .....

Para grupos de conjuntos de dados de domínio, os seguintes casos de uso de recomendador podem usar metadados contextuais:

Para recursos personalizados, as fórmulas que usam metadados contextuais incluem o seguinte:

Para obter informações sobre como incluir contexto ao receber recomendações, consulteComo aumentar a relevância das recomendações com metadados contextuais. Para obter um exemplo completo que mostra como usar metadados contextuais, consulte o seguinte AWS Publicação no blog do Machine Learning: Aumentando a relevância de suas recomendações do Amazon Personalize utilizando informações contextuais.

Dados de impressões

Impressões são listas de itens que estavam visíveis para um usuário durante a interação (por exemplo, clicar ou assistir) com determinado item. Se você usar um caso de uso de domínio que forneça personalização ou a User-Personalization receita, o Amazon Personalize poderá usar dados de impressões para orientar a exploração.

Com a exploração, as recomendações incluem alguns itens ou ações que normalmente teriam menor probabilidade de ser recomendados para o usuário, como novos itens ou ações, itens ou ações com poucas interações ou itens ou ações menos relevantes com base no comportamento anterior do usuário. Quanto mais frequentemente um item aparece nos dados de impressões, menor a probabilidade de o Amazon Personalize incluir o item na exploração.

Quando você cria um recomendador ou uma solução, o Amazon Personalize sempre exclui os dados de impressões do treinamento. Isso ocorre porque o Amazon Personalize não treina seus modelos com dados de impressões. Em vez disso, ele o usa quando você recebe recomendações para orientar a exploração para o usuário.

Os valores de impressão podem ter no máximo 1.000 caracteres (incluindo o caractere da barra vertical). Para grupos de conjuntos de dados de domínio, os seguintes casos de uso recomendados podem usar dados de impressões:

Para obter mais informações sobre exploração, consulte Exploration (Exploração). O Amazon Personalize pode modelar dois tipos de impressões: Impressões implícitas e Impressões explícitas.

Impressões explícitas

Impressões explícitas são impressões que você grava e envia manualmente para o Amazon Personalize. Use impressões explícitas para manipular os resultados do Amazon Personalize. A ordem dos itens não é relevante.

Por exemplo, você pode ter um aplicativo de compras que faça recomendações de calçados. Se recomendar apenas calçados que estão atualmente em estoque, você pode especificar esses itens usando impressões explícitas. Seu fluxo de trabalho de recomendação usando impressões explícitas pode ser o seguinte:

  1. Você solicita recomendações para um de seus usuários usando o Amazon Personalize GetRecommendationsAPI.

  2. O Amazon Personalize gera recomendações para o usuário usando seu modelo (versão da solução) e as retorna na API resposta.

  3. Você mostra ao usuário somente os calçados recomendados que estão em estoque.

  4. Para importação incremental de dados em tempo real, quando o usuário interage com (por exemplo, clica) com um par de sapatos, você grava a escolha em uma chamada para o PutEvents API e lista os itens recomendados que estão em estoque no parâmetro. impression Para obter um exemplo de código, consulte Gravação de eventos de interação de itens com dados de impressões.

    Para importar impressões em dados históricos de interações com itens, é possível listar impressões explícitas no arquivo csv e separar cada item com um caractere “|”. O caractere de barra vertical conta para o limite de 1.000 caracteres. Para ver um exemplo, consulte Como formatar impressões explícitas.

  5. O Amazon Personalize usa os dados de impressões para orientar a exploração, considerando que as recomendações futuras incluem novos sapatos com menos dados de interações ou relevância.

Como formatar impressões explícitas

Para incluir impressões explícitas em seu CSV arquivo, adicione uma IMPRESSION coluna. Para cada interação de item, adicione uma lista de caracteres itemIds separados com uma barra vertical, '|'. O caractere de barra vertical conta para o limite de 1.000 caracteres dos dados de impressões. Se você incluir impressões explícitas em PutEvents operação, você especifica os itens em uma matriz de cadeias de caracteres.

Veja a seguir um pequeno trecho de um CSV arquivo que inclui impressões explícitas na coluna. IMPRESSION

EVENT_TYPE IMPRESSION ITEM_ID TIMESTAMP USER_ID
click

73|70|17|95|96

73

1586731606

USER_1
click

35|82|78|57|20|63|1|90|76|75|49|71|26|24|25|6

35

1586735164

USER_2
... ... ... ... ...

A aplicação mostrava itens USER_1 do usuário: 73, 70, 17, 95 e 96; e o usuário finalmente escolheu o item 73. Quando você cria uma nova versão da solução com base nesses dados, os itens 70, 17, 95 e 96 serão recomendados com menos frequência ao usuário USER_1.

Impressões implícitas

As impressões implícitas são as recomendações, recuperadas do Amazon Personalize, que você mostra ao usuário. Seu CSV arquivo não precisa incluir colunas IMPRESSION ou RECOMMENDATION _ID para usar impressões implícitas. Em vez disso, você inclui o RecommendationId (retornado pelas GetPersonalizedRanking operações GetRecommendations e) nas PutEvents solicitações. O Amazon Personalize obtém as impressões implícitas com base nos seus dados de recomendação.

Por exemplo, você pode ter um aplicativo que faça recomendações de streaming de vídeo. Seu fluxo de trabalho de recomendação usando impressões implícitas pode ser o seguinte:

  1. Você solicita recomendações de vídeo para um de seus usuários usando a operação Amazon Personalize. GetRecommendations API

  2. O Amazon Personalize gera recomendações para o usuário usando seu modelo (versão da solução) e as retorna com um recommendationId na API resposta.

  3. Você mostra as recomendações de vídeo para o usuário em seu aplicativo.

  4. Quando seu usuário interage com (por exemplo, clica) com um vídeo, grave a escolha em uma chamada para o PutEvents API e inclua o recommendationId como parâmetro. Para obter um exemplo de código, consulte Gravação de eventos de interação de itens com dados de impressões.

  5. O Amazon Personalize usa o recommendationId para derivar os dados de impressão das recomendações de vídeo anteriores e, em seguida, usa os dados de impressão para orientar a exploração, onde as recomendações futuras incluem novos vídeos com menos dados de interações ou relevância.

    Para obter mais informações sobre como registrar eventos com dados de impressão implícita, consulte Gravação de eventos de interação de itens com dados de impressões.

Exemplo de dados de interações

Os dados de interações a seguir representam o histórico da atividade do usuário em um site de streaming de vídeo. Você pode usar os dados para treinar um modelo que fornece recomendações de filmes com base nos dados de interação dos usuários. Observe que alguns valores para EVENT _ VALUE são nulos.

USER_ID,ITEM_ID,EVENT_TYPE,EVENT_VALUE,TIMESTAMP 196,242,watch,.50,881250949 186,302,watch,.75,891717742 22,377,click,,878887116 244,51,click,,880606923 166,346,watch,.50,886397596 298,474,watch,.25,884182806 115,265,click,,881171488 253,465,watch,.50,891628467 305,451,watch,.75,886324817

O Amazon Personalize exige a USER_ID colunaITEM_ID, e. TIMESTAMP USER_IDé o identificador de um usuário do seu aplicativo. ITEM_IDé o identificador de um filme. EVENT_TYPEe EVENT_VALUE são os identificadores das interações do usuário. Nos dados de amostra, os eventos são watch e click eventos e os valores são a porcentagem de um vídeo que um usuário assistiu. TIMESTAMPRepresenta a época do Unix em que a compra do filme ocorreu.

Depois de concluir a preparação dos dados, você estará pronto para criar um JSON arquivo de esquema. Esse arquivo informa ao Amazon Personalize sobre a estrutura dos seus dados. Para obter mais informações, consulte Criação de JSON arquivos de esquema para esquemas do Amazon Personalize. Essa é a aparência do JSON arquivo de esquema para os dados de amostra.

{ "type": "record", "name": "Interactions", "namespace": "com.amazonaws.personalize.schema", "fields": [ { "name": "USER_ID", "type": "string" }, { "name": "ITEM_ID", "type": "string" }, { "name": "EVENT_TYPE", "type": "string" }, { "name": "EVENT_VALUE", "type": "float" }, { "name": "TIMESTAMP", "type": "long" } ], "version": "1.0" }