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

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

获取建议

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

注意

如果您使用了个性化 _ 排名配方,请参阅获得个性化排名

评分的工作原理

为提出推荐,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_个性化配方,输入User ID (用户 ID)对于要获得其建议的用户。对于相关项目配方,输入Item Item Id您希望 Amazon Personalize 用于确定类似商品的商品。

  6. (可选)选择筛选器。有关更多信息,请参阅 筛选建议

  7. 如果您的广告活动使用上下文元数据(有关要求,请参阅使用上下文元数据提高建议相关性)可以选择提供上下文数据。

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

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

获得推荐 (Amazon CLI)

使用以下代码可获得推荐。将 userId 的值更改为用于训练解决方案的数据中的用户 ID。此时将显示为用户推荐的前 10 个项目的列表。要更改推荐的项目的数目,请更改numResults。默认值为 25 项。最多 500 项。如果您使用了相关的 _ITES 配方来训练支持营销活动的解决方案版本,请将user-id带的参数item-id并指定项目 ID。

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

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

以下代码说明了如何使用 SDK for Python (Boto3)(Bto3)或适用于 Java 2.x 的软件开发工具包获取 Amazon Personalize 建议。

SDK for Python (Boto3)

使用以下代码可获得推荐。将 userId 的值更改为用于训练解决方案的数据中的用户 ID。此时将显示为用户推荐的前 10 个项目的列表。要更改推荐的项目的数目,请更改numResults。默认值为 25 项。最多 500 项。如果您使用了相关的 _ITES 配方来训练支持营销活动的解决方案版本,请将userId带的参数itemId并指定项目 ID。

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

要获得推荐,请使用以下getRecommendations方法并将以下内容作为参数传递:APersonalizeRuntimeClient、您的活动的 Amazon 资源名称 (ARN) 以及userId对于要获得推荐的用户。如果您使用了相关的 _ITES 配方来训练支持营销活动的解决方案版本,请将userId带的参数itemId并指定项目 ID。

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'])