Como preparar dados de entrada para recomendações em lote - 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á.

Como preparar dados de entrada para recomendações em lote

Um trabalho de inferência em lote importa seus dados do JSON de entrada em lote de um bucket do Amazon S3, usa a versão da solução personalizada para gerar recomendações e exporta as recomendações de itens para um bucket do Amazon S3. Antes de obter segmentos em lote, prepare e faça upload do arquivo JSON em um bucket do Amazon S3. Recomendamos que você crie uma pasta de saída no seu bucket do Amazon S3 ou use um bucket de saída separado do Amazon S3. Em seguida, pode executar vários trabalhos de inferência em lote usando o mesmo local de dados de entrada.

Ao utilizar um filtro com parâmetros de espaço reservado, como $GENRE, você deve fornecer os valores dos parâmetros em um objeto filterValues no seu JSON de entrada. Para obter mais informações, consulte Como fornecer valores de filtro no seu JSON de entrada.

Preparar e importar dados
  1. Formate os dados de entrada em lote de acordo com a fórmula. Não é possível obter recomendações em lote com a fórmula Trending-Now.

    • Para fórmulas USER_PERSONALIZATION e Popularity-Count, seus dados de entrada são um arquivo JSON com uma lista de userIds.

    • Para fórmulas RELATED_ITEMS, seus dados de entrada são uma lista de itemIds.

    • Para fórmulas PERSONALIZED_RANKING, seus dados de entrada são uma lista de userIds, cada um emparelhado com uma coleção de itemIds.

    Separe cada linha com uma nova linha. Para exemplos de dados de entrada, consulte Exemplos de JSON de entrada e saída de trabalho de inferência em lote.

  2. Faça upload do JSON de entrada em uma pasta de entrada no bucket do Amazon S3. Para obter mais informações, consulte Fazer upload de arquivos e pastas usando arrastar e soltar no Guia do usuário do Amazon Simple Storage Service.

  3. Crie um local separado para seus dados de saída, seja uma pasta ou um bucket diferente do Amazon S3. Ao criar um local separado para o JSON de saída, você pode executar vários trabalhos de inferência em lote com o mesmo local de dados de entrada.

  4. Crie um trabalho de inferência em lote. O Amazon Personalize envia as recomendações da versão da sua solução para o local dos dados de saída.

Exemplos de JSON de entrada e saída de trabalho de inferência em lote

Como formatar seus dados de entrada de acordo com a fórmula. Ao utilizar um filtro com parâmetros de espaço reservado, como $GENRE, você deve fornecer os valores dos parâmetros em um objeto filterValues no seu JSON de entrada. Para obter mais informações, consulte Como fornecer valores de filtro no seu JSON de entrada.

As seções a seguir listam exemplos de entrada e saída JSON formatados corretamente para trabalhos de inferência em lote. Não é possível obter recomendações em lote com a fórmula Trending-Now.

Fórmulas de USER_PERSONALIZATION

A seguir, são mostrados exemplos de entrada e saída JSON formatados corretamente para as receitas USER_PERSONALIZATION. Se você usa User-Personalization-v2, cada item recomendado inclui uma lista de motivos pelos quais o item foi incluído nas recomendações. Essa lista pode estar vazia. Para obter informações sobre possíveis motivos, consulteMotivos da recomendação (personalização do usuário-v2).

Input

Separe cada userId com uma nova linha da seguinte maneira.

{"userId": "4638"} {"userId": "663"} {"userId": "3384"} ...
Output
{"input":{"userId":"4638"},"output":{"recommendedItems":["63992","115149","110102","148626","148888","31685","102445","69526","92535","143355","62374","7451","56171","122882","66097","91542","142488","139385","40583","71530","39292","111360","34048","47099","135137"],"scores":[0.0152238,0.0069081,0.0068222,0.006394,0.0059746,0.0055851,0.0049357,0.0044644,0.0042968,0.004015,0.0038805,0.0037476,0.0036563,0.0036178,0.00341,0.0033467,0.0033258,0.0032454,0.0032076,0.0031996,0.0029558,0.0029021,0.0029007,0.0028837,0.0028316]},"error":null} {"input":{"userId":"663"},"output":{"recommendedItems":["368","377","25","780","1610","648","1270","6","165","1196","1097","300","1183","608","104","474","736","293","141","2987","1265","2716","223","733","2028"],"scores":[0.0406197,0.0372557,0.0254077,0.0151975,0.014991,0.0127175,0.0124547,0.0116712,0.0091098,0.0085492,0.0079035,0.0078995,0.0075598,0.0074876,0.0072006,0.0071775,0.0068923,0.0066552,0.0066232,0.0062504,0.0062386,0.0061121,0.0060942,0.0060781,0.0059263]},"error":null} {"input":{"userId":"3384"},"output":{"recommendedItems":["597","21","223","2144","208","2424","594","595","920","104","520","367","2081","39","1035","2054","160","1370","48","1092","158","2671","500","474","1907"],"scores":[0.0241061,0.0119394,0.0118012,0.010662,0.0086972,0.0079428,0.0073218,0.0071438,0.0069602,0.0056961,0.0055999,0.005577,0.0054387,0.0051787,0.0051412,0.0050493,0.0047126,0.0045393,0.0042159,0.0042098,0.004205,0.0042029,0.0040778,0.0038897,0.0038809]},"error":null} ...

Veja a seguir exemplos de entrada e saída JSON formatadas corretamente para a fórmula Popularity-Count. Não é possível obter recomendações em lote com a fórmula Trending-Now.

Input

Separe cada userId com uma nova linha da seguinte maneira.

{"userId": "12"} {"userId": "105"} {"userId": "41"} ...
Output
{"input": {"userId": "12"}, "output": {"recommendedItems": ["105", "106", "441"]}} {"input": {"userId": "105"}, "output": {"recommendedItems": ["105", "106", "441"]}} {"input": {"userId": "41"}, "output": {"recommendedItems": ["105", "106", "441"]}} ...

Fórmulas PERSONALIZED_RANKING

Veja a seguir exemplos de entrada e saída JSON formatadas corretamente para fórmulas PERSONALIZED_RANKING.

Input

Separe cada userId e uma lista de itemIds a serem classificados com uma nova linha da seguinte forma.

{"userId": "891", "itemList": ["27", "886", "101"]} {"userId": "445", "itemList": ["527", "55", "901"]} {"userId": "71", "itemList": ["27", "351", "101"]} ...
Output
{"input":{"userId":"891","itemList":["27","886","101"]},"output":{"recommendedItems":["27","101","886"],"scores":[0.48421,0.28133,0.23446]}} {"input":{"userId":"445","itemList":["527","55","901"]},"output":{"recommendedItems":["901","527","55"],"scores":[0.46972,0.31011,0.22017]}} {"input":{"userId":"71","itemList":["29","351","199"]},"output":{"recommendedItems":["351","29","199"],"scores":[0.68937,0.24829,0.06232]}} ...

Veja a seguir exemplos de entrada e saída JSON formatadas corretamente para as fórmulas RELATED_ITEMS.

Input

Separe cada itemId com uma nova linha da seguinte maneira.

{"itemId": "105"} {"itemId": "106"} {"itemId": "441"} ...
Output
{"input": {"itemId": "105"}, "output": {"recommendedItems": ["106", "107", "49"]}} {"input": {"itemId": "106"}, "output": {"recommendedItems": ["105", "107", "49"]}} {"input": {"itemId": "441"}, "output": {"recommendedItems": ["2", "442", "435"]}} ...

Veja a seguir exemplos de entrada e saída JSON formatadas corretamente para a fórmula Similar-Items com temas.

Input

Separe cada itemId com uma nova linha da seguinte maneira.

{"itemId": "40"} {"itemId": "43"} ...
Output
{"input":{"itemId":"40"},"output":{"recommendedItems":["36","50","44","22","21","29","3","1","2","39"],"theme":"Movies with a strong female lead","itemsThemeRelevanceScores":[0.19994527,0.183059963,0.17478035,0.1618133,0.1574806,0.15468733,0.1499242,0.14353688,0.13531424,0.10291852]}} {"input":{"itemId":"43"},"output":{"recommendedItems":["50","21","36","3","17","2","39","1","10","5"],"theme":"The best movies of 1995","itemsThemeRelevanceScores":[0.184988,0.1795761,0.11143453,0.0989443,0.08258403,0.07952615,0.07115086,0.0621634,-0.138913,-0.188913]}} ...