배치 추천을 위한 입력 데이터 준비 - Personalize

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

배치 추천을 위한 입력 데이터 준비

배치 추론 작업은 S3 버킷에서 배치 입력 JSON 데이터를 가져오고, 사용자 지정 솔루션 버전을 사용하여 추천을 생성한 다음, 항목 추천을 S3 버킷으로 내보냅니다. 배치 추천을 받으려면 먼저 JSON 파일을 준비하고 S3 버킷에 업로드해야 합니다. S3 버킷에 출력 폴더를 생성하거나 별도의 출력 S3 버킷을 사용하는 것이 좋습니다. 그런 다음 동일한 입력 데이터 위치를 사용하여 여러 배치 추론 작업을 실행할 수 있습니다.

자리 표시자 파라미터가 포함된 필터(예: $GENRE)를 사용하는 경우 filterValues객체의 파라미터 값을 입력 JSON에 제공해야 합니다. 자세한 내용은 입력 JSON에서 필터 값 제공단원을 참조하세요.

데이터를 준비하고 가져오려면
  1. 레시피에 따라 배치 입력 데이터의 형식을 지정합니다. 지금-유행 레시피로는 배치 추천을 받을 수 없습니다.

    • USER_PERSONALIZATION 레시피와 인기도-집계 레시피의 경우 입력 데이터는 사용자 ID 목록이 포함된 JSON 파일입니다

    • RELATED_ITEMS 레시피의 경우 입력 데이터는 항목 ID 목록입니다

    • PERSONALIZED_RANKING 레시피의 경우 입력 데이터는 사용자 ID 목록이며, 각 목록은 ItemID 컬렉션과 쌍을 이룹니다

    각 행을 새 줄로 구분합니다. 입력 데이터 예제는 배치 추론 작업 입력 및 출력 JSON 예제단원을 참조하세요.

  2. S3 버킷의 입력 폴더에 입력 JSON을 업로드합니다. 자세한 내용은 Simple Storage Service 사용 설명서의 드래그 앤 드롭을 사용하여 파일 및 폴더 업로드 단원을 참조하세요.

  3. 출력 데이터를 저장할 별도의 위치(폴더 또는 다른 S3 버킷)를 만듭니다. 출력 JSON을 위한 별도의 위치를 생성하면 동일한 입력 데이터 위치로 여러 배치 추론 작업을 실행할 수 있습니다.

  4. 배치 추론 작업을 생성합니다. Personalize는 솔루션 버전의 추천을 출력 데이터 위치로 출력합니다.

배치 추론 작업 입력 및 출력 JSON 예제

사용하는 레시피에 따라 입력 데이터 형식을 지정하는 방법. 자리 표시자 파라미터가 포함된 필터(예: $GENRE)를 사용하는 경우 filterValues객체의 파라미터 값을 입력 JSON에 제공해야 합니다. 자세한 내용은 입력 JSON에서 필터 값 제공단원을 참조하세요.

다음에 이어지는 단원에는 배치 추론 작업에 대한 올바른 형식의 JSON 입력 및 출력 예제가 나열되어 있습니다. 지금-유행 레시피로는 배치 추천을 받을 수 없습니다.

USER_PERSONALIZATION 레시피

다음은 USER_PERSONALIZATION 레시피에 대한 올바른 형식의 JSON 입력 및 출력 예제를 보여줍니다. User-Personalization-v2를 사용하는 경우 각 권장 항목에는 해당 항목이 권장 사항에 포함된 이유 목록이 포함됩니다. 이 목록은 비어 있을 수 있습니다. 가능한 이유에 대한 자세한 내용은 을 참조하십시오추천 이유 (사용자 맞춤화-v2).

Input

다음과 같이 각 userId을 새 줄로 구분합니다.

{"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} ...

다음은 인기도-집계 레시피에 대한 올바른 형식의 JSON 입력 및 출력 예제를 보여줍니다. 지금-유행 레시피로는 배치 추천을 받을 수 없습니다.

Input

다음과 같이 각 userId을 새 줄로 구분합니다.

{"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"]}} ...

PERSONALIZED_RANKING 레시피

다음은 PERSONALIZED_RANKING 레시피에 대한 올바른 형식의 JSON 입력 및 출력 예제를 보여줍니다.

Input

다음과 같이 순위가 매겨질 각 userIditemIds목록을 새 줄로 구분합니다.

{"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]}} ...

다음은 RELATED_ITEMS 레시피에 대한 올바른 형식의 JSON 입력 및 출력 예제를 보여줍니다.

Input

다음과 같이 각 itemId을 새 줄로 구분합니다.

{"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"]}} ...

다음은 테마가 있는 유사-항목 레시피에 대한 올바른 형식의 JSON 입력 및 출력 예제를 보여줍니다.

Input

다음과 같이 각 itemId을 새 줄로 구분합니다.

{"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]}} ...