关于机器学习:猜你喜欢猜得更准确这到底是如何做到的

长年混迹于网络,置信你对各大网站和利用的「个性化举荐」零碎曾经再相熟不过了。

  • 长假前搜寻某个热门游览城市,随后取得了吃喝玩乐等一系列举荐,挺不便!
  • 买了一款最新电子产品,随后取得了各种配件的举荐,好贴心!
  • 给某位喜爱的歌手点赞,随后取得了更多同类型或同格调的好音乐举荐,真棒!

不过!!这所有都必须基于一个前提:这些举荐零碎真的能充沛理解你的爱好,并精确举荐你真的会喜爱须要的货色!要想做到这一点可并不容易。回忆一下本人的理论体验,是否有很多时候,这些举荐零碎的举荐并不合你口味的,甚至是毫无必要的,例如在你购买一款很耐用的大件产品后,反而会密集推送更多同类产品……

对商家来说,如果举荐零碎提供的举荐内容准确率低,此类举荐可能影响用户情绪,导致用户参与度升高,最终引发业务营收损失。因而很多企业会编写自定义代码解决此类问题,即通过代码将个性化零碎针对每位用户存储在数据库内的数据进行比拟,借此提供更为精确的举荐内容,同时删除举荐中用户曾经购买过的条目。但诚实说,这一实现过程相当耗时且极易出错。

Amazon Personalize 通过「举荐过滤器」为你解忧

Amazon Personalize 是一种客户体验个性化服务,能够帮忙开发人员通过 Amazon.com 应用的机器学习技术来构建应用程序,从而提供实时个性化举荐,而无需 ML 专业知识。

借助 Amazon Personalize,开发人员能够轻松构建可能提供宽泛的个性化体验的应用程序,包含特定产品举荐、个性化的产品重排序和定制直销。Amazon Personalize 是一项齐全托管型机器学习服务,超过了严格的基于动态规定的举荐零碎,并且能够训练、调整和部署定制的ML模型,以跨行业(如批发、媒体和娱乐)向客户提供高度定制的倡议。

最近,Amazon Personalize 服务正式迎来「举荐过滤器」(Recommendation Filters)性能。举荐过滤器可对用户曾经购买的产品、以往观看过的视频以及生产过的其余数字内容进行过滤与举荐,借此进步个性化举荐后果的准确率。

基于 Amazon 公司过来20多年的个性化教训,Amazon Personalize 使用户可能通过个性化产品、内容举荐以及更具针对性的宣传促销流动进步客户参与度。在机器学习技术的加持下,Amazon Personalize 将为网站与应用程序生成品质更高的举荐。

更重要的是,无需任何机器学习教训,开发人员即可间接应用简略 API,通过数次单击轻松构建起简单的个性化性能。Amazon Personalize 将负责解决并查看您的数据,确定其中有意义的内容,主动抉择正确的机器学习算法,并依据数据实现自定义模型的训练与优化。所有数据都将通过加密,在保障隐衷与平安的同时,保证数据仅被用于为用户生成举荐。

举荐过滤器的设置与应用非常简单。首先,咱们能够应用 Amazon Personalize 控制台或 API 通过 Amazon Personalize专用的 DSL(畛域特定语言)创立过滤器。接下来就能够应用 GetRecommendations 或 GetPersonalizedRanking API,或者通过批量推理作业以批量模式生成举荐内容。

本文将疏导大家逐渐实现在 Amazon Personalize 中设置及应用举荐过滤器的残缺流程。

先决条件

要定义及应用过滤器,咱们首先须要设置以下Personalize资源。在实现本文中的演练之前,大家须要在Amazon Personalize控制台中依照控制台入门指南中的阐明进行操作:

  1. 创立一个数据集组。
  2. 应用以下提供的 Schema 创立一个 Interactions 数据集,而后应用此数据文件进行数据导入。
{
 "type": "record",
 "name": "Interactions",
 "namespace": "com.amazonaws.concierge.schema",
 "fields": [
 {
 "name": "ITEM_ID",
 "type": "string"
 },
 {
 "name": "USER_ID",
 "type": "string"
 },
 {
 "name": "TIMESTAMP",
 "type": "long"
 },
 {
 "name": "EVENT_TYPE",
 "type": "string"
 },
 {
 "name": "EVENT_VALUE",
 "type": [
 "null",
 "float"
 ]
 }
 ],
 "version": "1.0"
}
  1. 应用任意 Recipe 创立一套解决方案,在本文中咱们应用 aws-hrnn recipe。
  2. 创立一项促销流动。

创立过滤器

至此咱们曾经实现了 Amazon Personalize 资源的设置,接下来是对过滤器进行定义与测试。

过滤器表白语言

Amazon Personalize 应用本人的畛域特定语言(即过滤器表达式)以确定须要在一组举荐中排除或蕴含的条目。过滤器表达式的作用域为数据集组;大家只能应用该表达式过滤处于同一数据集组范畴内的促销流动或解决方案版本(批量举荐)。Amazon Personalize 可能依据用户的交互历史记录实现条目过滤,以下为过滤器表达式的局部示例。

  • 要从用户举荐中删除所有以往购买过的条目,请应用以下过滤器表达式:
EXCLUDE itemId WHERE INTERACTIONS.event_type in ("Purchase")
  • 要删除用户以往查看、单击或者下载过的条目,请应用以下过滤器表达式:
EXCLUDE itemId WHERE INTERACTIONS.event_type in ("View","Click","Download")
  • 要删除用户以往交互过的所有条目,请应用以下过滤器表达式:
EXCLUDE itemId WHERE INTERACTIONS.event_type in ("*")

咱们能够对交互数据集中所蕴含的任意事件类型进行过滤。对于更多详细信息,请参阅数据集与 Schema。对于过滤器定义 DSL 的更多详细信息,请参阅相干阐明文档。

通过控制台创立过滤器

咱们能够应用之前提到的 DSL 在 Amazon Personalize 管制台上创立过滤器。要创立过滤器,请实现以下操作步骤:

  1. 在 Amazon Personalize 管制台上的 Filters 选项卡中,抉择 Create filter。
  2. 在 Filter name 局部,输出过滤器名称。
  3. 在 Add filtered event types 局部,输出心愿从用户举荐中删除的交互类型。
  4. 抉择 Add event type,零碎将依据抉择过滤的事件类型主动创立对应的过滤器表达式。
  5. 抉择 Finish。

创立过滤器后,咱们将进入蕴含过滤器详细信息的页面。在这里,大家能够查看对于过滤器的更多细节信息,包含过滤器ARN以及所创立的对应过滤器表达式。大家也能够在此页面上删除过滤器,或者通过摘要页面创立更多过滤器。

咱们还能够通过Amazon Personalize中的createFilter API创立过滤器。对于更多详细信息,请参阅相干阐明文档。

通过控制台应用过滤器解决实时举荐

Amazon Personalize 控制台可帮忙用户从 Campaigns 页面中实时查看实时举荐。在此页面中,大家能够在检索用户举荐的同时利用过滤器。为此,请导航至 Campaign 选项卡;该数据集应与创立过滤器时应用的数据集雷同。而后,咱们能够测试利用过滤条件并察看对举荐后果的影响。

未应用过滤器时的举荐!

以下截屏所示,为未应用过滤器时的举荐后果。

从 Interactions 数据集处,大家能够看到该用户以往购买过的一些举荐条目。Interactions 数据集中蕴含以下数据点:


USER_ID,ITEM_ID,EVENT_TYPE,TIMESTAMP

1,2657,Purchase,964983426

1,2985,Purchase,964983034

以上数据片段所示,代表 UserId 1曾经购买过举荐内容中的第三与第四项条目。

应用过滤器时的举荐

以下截屏所示,为在应用预约义过滤器从举荐中删除先前购买过的条目之后,给出的举荐后果。

结果表明,过滤器曾经从举荐内容中删除了先前购买过的条目(条目 ID 2657与2985);过滤器将删除与该用户的事件类型 Purchase 交互过的条目。

通过控制台将过滤器利用于批量举荐

要通过控制台将过滤器利用于批量举荐,请参照实时举荐的雷同过程。但请留神在 Create batch inference job 页面上抉择过滤器名称,以将先前创立的过滤器利用于本次批量举荐。

通过 SDK 将过滤器利用于实时举荐

咱们也能够将 FilterArn 作为附加及可选参数增加至 GetRecommendations调用当中,通过 SDK 或者 API 将过滤器利用于实时举荐。应用 filterArn 作为参数键,并将 filterArn 作为其值字符串。FilterArn是 CreateFilter API 调用所返回的一条惟一标识键。咱们还能够在过滤器的详细信息页面上找到过滤器的 ARN。

以下示例代码为 GetRecommendations API 的申请注释,此申请注释负责将过滤器利用于举荐后果:

{
 "campaignArn": "arn:aws:personalize:us-west-2:000000000000:campaign/test-campaign",
 "userId": "1",
 "itemId": "1",
 "numResults": 5,
 "filterArn": "arn:aws:personalize:us-west-2:000000000000:filter/test-filter"
}

通过 SDK 将过滤器利用于批量举荐

若要在应用 SDK 时将过滤器利用于批量举荐,请在申请注释中提交 filterArn 作为可选参数。应用 filterArn 作为参数键,并将 filterArn 作为其值字符串。

总结

Amazon Personalize 中的举荐过滤器可帮忙用户依据业务需要对举荐内容进行微调,且咱们无需分神设计任何后处理逻辑。对于通过 Amazon Personalize 优化用户体验的更多详细信息,请参阅 Amazon Personalize 是什么?

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理