对 OpenSearch 搜索结果进行个性化设置 - Amazon Personalize
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

对 OpenSearch 搜索结果进行个性化设置

您可以使用 Amazon Personalize 为您的用户对开源 OpenSearch 或 Amazon OpenSearch Service 结果进行个性化设置。

OpenSearch 是一项基于 Apache 2.0 许可证的自托管开源搜索服务。Amazon OpenSearch Service 是一项托管服务,可帮助您在 Amazon 云中部署、运行并扩展 OpenSearch 资源。当您使用 Amazon OpenSearch Service 时,OpenSearch 会检索结果并对其进行排名。

对查询结果排名时,OpenSearch 使用名为 BM-25 的概率排名框架来计算相关性得分。如果独特的关键词在文档中出现较为频繁,BM-25 会为该文档分配更高的相关性分数。OpenSearch 排名不考虑点击数据等用户行为。

将 Amazon Personalize 与 OpenSearch 结合使用时,Amazon Personalize 会根据用户过去的行为、有关物品的任何元数据以及用户相关的任何元数据,对 OpenSearch 结果进行重新排名。随后,OpenSearch 会合并重新排名,然后再将搜索响应返回到您的应用程序。在将 Amazon Personalize 的排名应用于 OpenSearch 结果时,您可以控制 OpenSearch 给予该排名的权重。

通过这个重新排名,结果可以更具吸引力,更符合用户的兴趣。这可以提高应用程序的点击率和转化率。有关描述个性化搜索如何改善电子商务应用程序结果的使用案例示例,请参阅使用案例示例

在开始对 OpenSearch 结果进行个性化设置之前,请查看指南和要求中列出的要求。

使用案例示例

当您使用 Amazon Personalize 对 OpenSearch 结果进行重新排名时,搜索结果可能与您的用户更加相关。例如,您可能有一个销售汽车的电子商务应用程序。如果您的用户输入了丰田汽车的查询,而您没有对结果进行个性化设置,则 OpenSearch 将根据您数据中的关键字返回丰田汽车制造的汽车列表。对于所有用户,此列表将按相同的顺序进行排名。

但是,如果您使用 Amazon Personalize 对结果进行个性化设置,则 OpenSearch 会根据特定用户的行为(例如单击次数)按与特定用户的相关性顺序对这些汽车进行重新排名。用户最有可能单击的汽车排在第一位。

在对 OpenSearch 结果进行个性化设置时,您可以控制 OpenSearch 给予 Amazon Personalize 排名的权重(重视度)。继续此示例,如果用户搜索特定年份特定类型的汽车(例如 2008 Toyota Prius),则您可能需要更加重视 OpenSearch 的原始排名。

但是,对于能够产生广泛结果且更通用的查询(例如搜索所有丰田汽车),您可能会高度重视个性化。这样,列表顶部的汽车与特定用户更加相关。

个性化搜索工作流程

要对 OpenSearch 结果进行个性化设置,请执行以下操作:

  1. 设置 Amazon Personalize - 如果您尚未设置,请完成设置 Amazon Personalize 中的步骤来设置凭证,并为 Amazon Personalize 设置权限。您无需设置 Amazon SDK 即可对 OpenSearch 结果进行个性化设置。

  2. 完成 Amazon Personalize 工作流程 - 完成 Amazon Personalize 工作流程,以导入数据,使用 Personalized-Ranking 配方创建解决方案,训练自定义解决方案版本,并将其部署到市场活动中。您只能使用 Personalized-Ranking 配方。您必须创建物品交互数据集。用户数据集和物品数据集是可选项。有关更多信息,请参阅Amazon Personalize 工作流程

  3. 设置 OpenSearch 并安装 Amazon Personalize 搜索排名插件 - 如果您还没有设置,请设置 OpenSearch Service 域或开源 OpenSearch 集群。然后,安装 Amazon Personalize 搜索排名插件。此插件可处理与 Amazon Personalize 的通信以及对结果的重新排名。有关更多信息,请参阅设置 OpenSearch 并安装插件

  4. 配置 Amazon Personalize 搜索排名插件 - 要配置该插件,您需要创建搜索管道。搜索管道 是一组请求和响应处理器。为插件创建管道时,需在 personalized_search_ranking 响应处理器中指定您的 Amazon Personalize 资源。此外,还要配置插件在重新对结果排名时对 Amazon Personalize 结果给予的权重。有关更多信息,请参阅配置插件

  5. 将 Amazon Personalize 搜索排名插件应用于 OpenSearch 查询 - 您可以将 Amazon Personalize 搜索排名插件应用于 OpenSearch 索引的所有查询和回复。您也可以将该插件应用于单个 OpenSearch 查询。有关更多信息,请参阅将插件应用于 OpenSearch 查询

  6. 比较结果 - Amazon Personalize 搜索排名插件会对 OpenSearch 查询响应中的搜索结果进行重新排名。它既考虑 Amazon Personalize 的排名,也考虑 OpenSearch 的排名。要了解如何对结果进行重新排名,您可以比较使用个性化的查询和不使用个性化的查询的结果。有关更多信息,请参阅将 OpenSearch 结果与插件的结果进行比较

  7. 监控 Amazon Personalize 搜索排名插件 - 将 Amazon Personalize 搜索排名插件应用于搜索查询时,您可以通过获取搜索渠道的指标来监控该插件。有关更多信息,请参阅监控插件

Amazon Personalize 搜索排名插件的工作原理

下图显示了 Amazon Personalize 搜索排名插件的工作原理。


        描述了使用插件对 OpenSearch 结果进行个性化设置时该插件的工作原理。
  1. 您将客户的查询提交到您的 OpenSearch Service 域或您的开源 OpenSearch 集群。

  2. OpenSearch 将查询响应(与查询相关的物品列表)和用户 ID 发送到 Amazon Personalize 搜索排名插件。

  3. 该插件将响应中的物品和用户发送到您的 Amazon Personalize 市场活动,以进行排名。它使用搜索管道中的配方和市场活动 Amazon 资源名称 (ARN) 值为用户获取个性化排名。它使用 GetPersonalizedRanking API 操作来获取建议。在请求中,它传递进行查询的用户的 userId 以及从 inputList 中 OpenSearch 查询返回的项。

  4. Amazon Personalize 将重新排名的结果返回给插件。

  5. 该插件重新排列搜索结果并将其返回到您的 OpenSearch Service 域或开源 OpenSearch 集群。它根据 Amazon Personalize 市场活动的响应以及您在设置过程中指定的个性化重视程度,对结果重新排名。

  6. 您的开源 OpenSearch 集群或 OpenSearch Service 域将最终结果返回到您的应用程序。

其他信息

以下资源提供有关使用 OpenSearch 的更多信息。