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

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

获取建议

您从 Amazon Personalize 化广告活动中获得个性化推荐或类似商品推荐 您可以使用 Amazon Personalize 化控制台获取建议,Amazon Command Line Interface(Amazon CLI),或者Amazon开发工具包。

注意

如果你使用了个性化 _RANGING 食谱,请参阅获得个性化排名.

评分的工作原理

为提出推荐,Amazon Personalize 化将根据用户的交互数据和元数据为项目数据集中的项目生成分值。这些分数表明,Amazon Personalize 化拥有用户接下来将选择哪个项目的相对确定性。分数越高,意味着确定性越大。

基于 USER_PERSONALIZATION 方法的模型对项目数据集中的所有项目进行相对于彼此的评分,其分数范围为 0 到 1(包含这两者),使得所有分数的总和等于 1。例如,如果您要获取用户的影片推荐,并且项目数据集中有三部影片,则其分数可能为 0.60.3、和 0.1。同样,如果您的库存中有 1,000 部电影,则得分最高的电影的分数可能非常小(平均分数为.001),但由于评分是相对的,推荐仍然有效。

在数学术语中,每个用户项目对 (u, i) 的分数是根据以下公式计算的,其中exp是指数函数,wu和 wi/j分别是用户和项目嵌入,希腊字母 sigma (Σ) 表示项目数据集中所有项目的总和:

注意

Amazon Personalize 化不显示 SIMS 或基于流行计数的模型的分数。

获取推荐(控制台)

要通过 Amazon Personalize 化控制台获取推荐,请在广告活动的详情页面上提供推荐请求信息。

获得针对用户的推荐

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

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

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

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

  5. UNDER测试活动结果中,根据您使用的配方输入推荐请求详细信息。对于 USER_PERSONALIZATION 配方,请输入User ID (用户 ID)要获得其建议的用户。对于 RELATED_ITEMS 配方,请输入Item Id您希望 Amazon Personalize 化用于确定类似商品的商品。

    如果您在用户(匿名用户)登录之前为其录制了事件,则可以通过提供sessionId来自那些事件而不是userId. 有关为匿名用户录制事件的更多信息,请参阅PutEvents 操作.

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

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

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

  8. 选择 Get recommendations (获得推荐)。此时将显示一个包含用户前 25 个推荐项目的表。

获得推荐(Amazon CLI)

使用以下代码可获得推荐。将 userId 的值更改为用于训练解决方案的数据中的用户 ID。将显示为用户推荐的 10 项的列表。要更改推荐的项目的数量,请更改的值numResults. 默认值为 25 项。最多 500 项。如果您使用 READEST_ITEMS 配方来训练支持营销活动的解决方案版本,请替换user-id带有的参数item-id然后指定商品编号。

如果您在用户(匿名用户)登录之前为其录制了事件,则可以通过提供sessionId来自那些事件而不是userId. 有关为匿名用户录制事件的更多信息,请参阅PutEvents 操作.

aws personalize-runtime get-recommendations \ --campaign-arn campaign arn \ --user-id User ID \ --num-results 10

获得推荐(Amazon开发工具包)

以下代码演示了如何使用 SDK for Python (Boto3) 或适用于 Java 2.x 的开发工具包以获取 Amazon Personalize 化推荐。将 userId 的值更改为用于训练解决方案的数据中的用户 ID。将显示为用户推荐的 10 项的列表。要更改推荐的项目的数量,请更改的值numResults. 默认值为 25 项。最多 500 项。如果您使用 READEST_ITEMS 配方来训练支持营销活动的解决方案版本,请替换userId带有的参数itemId然后指定商品编号。

如果您在用户(匿名用户)登录之前为其录制了事件,则可以通过提供sessionId来自那些事件而不是userId. 有关为匿名用户录制事件的更多信息,请参阅PutEvents 操作.

SDK for Python (Boto3)
import boto3 personalizeRt = boto3.client('personalize-runtime') response = personalizeRt.get_recommendations( campaignArn = 'Campaign ARN', userId = 'User ID', numResults = 10 ) print("Recommended items") for item in response['itemList']: print (item['itemId'])
SDK for Java 2.x
public static void getRecs(PersonalizeRuntimeClient personalizeRuntimeClient, String campaignArn, String userId){ try { GetRecommendationsRequest recommendationsRequest = GetRecommendationsRequest.builder() .campaignArn(campaignArn) .numResults(20) .userId(userId) .build(); GetRecommendationsResponse recommendationsResponse = personalizeRuntimeClient.getRecommendations(recommendationsRequest); List<PredictedItem> items = recommendationsResponse.itemList(); for (PredictedItem item: items) { System.out.println("Item Id is : "+item.itemId()); System.out.println("Item score is : "+item.score()); } } catch (AwsServiceException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } }

使用上下文元数据获取建议 (AmazonPython 开发工具包)

使用以下代码,根据上下文元数据获取建议。适用于context,对于每个键值对,提供元数据字段作为键,上下文数据作为值。在以下示例代码中,关键是DEVICE而且价值是mobile phone. 替换这些值和Campaign ARNUser ID用你自己的。将显示为用户推荐的项目的列表。

import boto3 personalizeRt = boto3.client('personalize-runtime') response = personalizeRt.get_recommendations( campaignArn = 'Campaign ARN', userId = 'User ID', context = { 'DEVICE': 'mobile phone' } ) print("Recommended items") for item in response['itemList']: print (item['itemId'])