获得个性化排名 - Amazon Personalize
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

获得个性化排名

个性化排名是为特定用户重新排名的推荐项目的列表。要获得个性化排名,请致电GetPersonalizedRanking通过 API 操作或从控制台中的市场活动获取推荐。

注意

必须已使用 PERSONALIZED_RANKING 类型的配方创建支持市场活动的解决方案。有关更多信息,请参阅 第 1 步:选择配方

个性化排名评分如何运作

GetRecommendations 操作返回的分数相似, GetPersonalizedRanking 分数总和为 1,但由于所考虑项目的列表比您的完整项目数据集小得多,因此推荐分数往往更高。

在数学上,GetPersonalizedRanking 的评分函数与 GetRecommendations 相同,但它只考虑输入项目。这意味着分数接近 1 的可能性更高,因为将分数进行划分的其他选择更少:

获取个性化排名(控制台)

要从 Amazon Personalize 控制台获取用户的个性化排名,请选择您正在使用的广告活动,然后提供他们的用户 ID,指定要为用户排名的项目列表,可选择选择筛选器,并可选择提供任何上下文数据。

为用户获得个性化排名

  1. 在打开 Amazon Personalize 控制台https://console.aws.amazon.com/personalize/home然后登录您的账户。

  2. 选择包含您正在使用的市场活动的数据集组。

  3. 在导航窗格中,选择 Campaigns (活动)

  4. 在存储库的活动页面中,选择目标广告系列。

  5. UNDER测试活动结果输入User ID (用户 ID)要获得其建议的用户。

  6. 适用于Item Id中,输入要为用户排名的项目列表。

  7. 也可以选择一个过滤器。有关更多信息,请参阅 筛选推荐和用户细分

  8. 如果你的广告活动使用上下文元数据(有关要求,使用上下文元数据增加推荐相关) 可选地提供上下文数据。

    对于每个上下文,对于密钥,输入元数据字段,然后对于中,输入上下文数据。

  9. 选择获取个性化物品排名. 此时将显示一个表,其中包含按用户的预测兴趣顺序排名的项目。

获得个性化排名(Amazon CLI)

使用以下命令get-personalized-ranking使用命令可获得个性化排名Amazon CLI. 为您的广告活动指定亚马逊资源名称 (ARN)、用户的用户 ID,并提供要为用户排名的商品的项目 ID 列表(每个项目以空格分隔)。要排名的项目必须位于用于训练解决方案版本的数据中。将显示排名推荐的列表。Amazon Personalize 化将列表中的第一个项目视为用户最感兴趣的项目。

aws personalize-runtime get-personalized-ranking \ --campaign-arn Campaign ARN \ --user-id 12 \ --input-list 3 4 10 8 12 7

获得个性化排名(Amazon开发工具包)

以下代码演示了如何使用获取个性化排名。Amazon SDK for Python (Boto3)要么Amazon SDK for Java 2.x.

SDK for Python (Boto3)

使用以下命令get_personalized_ranking使用 SDK for Python (Boto3) 获取个性化排名的方法。更改的值userIdinputList将其分别转换为用户的用户 ID 及项目 ID 列表。项目 ID 必须位于用于训练解决方案版本的数据中。这将显示已排名的推荐的列表。Amazon Personalize 化将列表中的第一个项目视为用户最感兴趣的项目。

import boto3 personalizeRt = boto3.client('personalize-runtime') response = personalizeRt.get_personalized_ranking( campaignArn = "Campaign arn", userId = "UserID", inputList = ['ItemID1','ItemID2'] ) print("Personalized Ranking") for item in response['personalizedRanking']: print (item['itemId'])
SDK for Java 2.x

使用以下命令getRankedRecs使 SDK for Java 的开发工具包 2.x 获得个性化排名。将以下内容作为参数传递:Amazon Personalize 化运行时客户端、您的广告活动的亚马逊资源名称 (ARN)、用户的用户 ID 以及要为用户排名的商品 ID 列表。项目 ID 必须在用于训练解决方案的数据中。该方法返回从最相关性到最不相关的推荐项目列表。

public static List<PredictedItem> getRankedRecs(PersonalizeRuntimeClient personalizeRuntimeClient, String campaignArn, String userId, ArrayList<String> items) { try { GetPersonalizedRankingRequest rankingRecommendationsRequest = GetPersonalizedRankingRequest.builder() .campaignArn(campaignArn) .userId(userId) .inputList(items) .build(); GetPersonalizedRankingResponse recommendationsResponse = personalizeRuntimeClient.getPersonalizedRanking(rankingRecommendationsRequest); List<PredictedItem> rankedItems = recommendationsResponse.personalizedRanking(); int rank = 1; for (PredictedItem item : rankedItems) { System.out.println("Item ranked at position " + rank + " details"); System.out.println("Item Id is : " + item.itemId()); System.out.println("Item score is : " + item.score()); System.out.println("---------------------------------------------"); rank++; } return rankedItems; } catch (PersonalizeRuntimeException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } return null; }

使用上下文元数据获得个性化排名(AmazonPython 开发工具包)

使用以下代码,根据上下文元数据获取个性化排名。适用于context,对于每个键值对,提供元数据字段作为键,上下文数据作为值。在以下示例代码中,关键是DEVICE而且价值是mobile phone. 替换这些值和Campaign ARNUser ID用你自己的。还要改变inputList以及用于训练解决方案的数据中的项目 ID 列表。Amazon Personalize 化将列表中的第一个项目视为用户最感兴趣的项目。

import boto3 personalizeRt = boto3.client('personalize-runtime') response = personalizeRt.get_personalized_ranking( campaignArn = "Campaign ARN", userId = "User ID", inputList = ['ItemID1', 'ItemID2'], context = { 'DEVICE': 'mobile phone' } ) print("Personalized Ranking") for item in response['personalizedRanking']: print(item['itemId'])

个性化排名示例笔记本

有关演示如何使用个性化排名配方的 Jupyter 笔记本示例,请参阅。Personalize 排名示例.