亚马逊AWS官方博客

使用 Amazon Personalize 与 Braze 个性化推荐功能优化营销活动参与度

Original URL: https://aws.amazon.com/cn/blogs/machine-learning/optimizing-your-engagement-marketing-with-personalized-recommendations-using-amazon-personalize-and-braze/

如今的营销服务商掌握着多种客户交流渠道。然而,如何在正确的时间以正确的渠道向正确的客户发出正确的信息,仍是营销人员面临的一项重大挑战。在本文中,我们将介绍如何将Braze(一套以AWS为基础,面向即时需求且强调持续联系的客户参与平台)与Amazon Personalize结合起来,尝试解决营销活动参与度难题,进而为客户提供充满惊喜的使用体验。

Braze能够帮助营销人员轻松将客户组织为受众,并根据其行为及个人资料特征进行实时更新,进而创建消息交付宣传,通过电子邮件、短信及推送通知等渠道定位目标受众。您也可以使用Braze Canvas设计出多步骤、多渠道参与流程。Campaign与Canvas可以根据计划,甚至是客户的实际操作手动触发。当然,向客户发送个性化消息的实际效果,直接取决于客户个人资料中透露出的倾向性内容。大家需要根据每位客户在Web与移动端应用互动时表现出的偏好,据此组织产品与内容推荐,从而真正在每一条宣传消息中引入个性化元素。

Amazon Personalize是一项AWS服务,使用机器学习算法根据客户的行为数据创建推荐系统。这款推荐器为AWS账户专有,且仅根据您提供的数据进行内容生成。配合Braze Connected Content功能,您可以将Braze接入用于在Web及移动端应用中提供推荐消息的同一套Amazon Personalize推荐器,借此通过Braze发送的消息准确反映受众的当前偏好与意图。

解决方案概述

在本文中,我们将介绍两套架构:其一使用Braze加Amazon Personalize进行实时推荐,其二则是牺牲一部分实时建议新鲜度以换取为更具成本效益的批处理方法。您对于方法的具体选择,应该与受众宣传策略的目标以及消息传递的规模需求相适应。幸运的是,Braze与Amazon Personalize提供丰富的功能与集成选项,能够满足您对于运营灵活性的各种实际需求。

实时集成

我们首先从实时集成架构开始。下图所示,为电子商务应用程序中的各相关组件,大家将在其中使用Amazon Personalize提供的机器学习(ML)支持型推荐器,即本文中的解决方案。在构建这套解决方案时,主要涉及的数据为用户与各商品条目的交互历史。在电子商务应用程序中,还应包含具体事件,例如客户查看商品、将商品添加至购物车以及实际购买商品的行为。在拥有丰富的事件、条目与用户元数据可供使用时,大家即可对这些元数据加以合并,从而进一步提高推荐系统与推荐内容的相关性水平。元数据的具体内容可以涵盖多个层面,包括客户使用的设备类型、所在位置以及事件发生的时间(购物季)等;商品的类别、类型与价格区间;以及用户的年龄、性别与订阅倾向。在创建解决方案之后,只需单击几下,我们即可创建出被称为campaigns的自动扩展API端点,借此检索个性化推荐内容。

在后文中,我们还将介绍如何在AWS账户中部署这款应用程序。此应用程序还附带自助式研讨课程,您可以借此了解如何使用Braze向客户发送个性化宣传邮件。

我们的示例电子商务应用程序将从Recommendations 微服务中检索个性化建议,由此建议将Amazon Personalize提供的推荐商品ID附加至 Products微服务当中以丰富产品信息。当用户与应用程序交互,并通过查看商品、将商品添加至购物车乃至购买商品以表达自己的兴趣时,与这些操作相关的事件将通过AWS Amplify JavaScript客户端库被流式传输至Amazon Personalize,再由后者自动根据用户的实时活动做出推荐调整。

通过在应用程序当中内置个性化设置,您可以将Amazon Personalize与Braze对接起来,通过电子邮件、短信以及推送通知等出向推广渠道为客户提供个性化推荐结果。

大家还可以通过Braze创建消息模板。此类模板通过Liquid模板语言,使用客户个人资料乃至其他外部资源中的值以替换模板中的原始占位符。在实时架构中,我们使用的示例应用程序将Recommendations微服务作为外部资源,并使用Braze Connected Content功能检索个性化推荐,而后将适用的推荐内容包含在消息模板当中。在以下Connected Content Liquid标签(位于电子邮件开头部分)中,我们可以看到如何从Braze处调用Recommendations服务以为当前用户检索推荐信息。

{% connected_content http://<RecommendationsServiceHostName>/recommendations?userID={{${user_id}}}&fullyQualifyImageUrls=1&numResults=4 :save result %}

标签当中包含以下元素:

  • Liquid标签位于{% 与 %}当中,您可以借此向消息模板中添加标签、表达式,甚至是文本或HTML。
  • 标签类型将在标签开始之后立即声明。在本用例中,标签类型为connected_content。关于所支持标签的完整列表,请参阅使用Liquid标签实现个性化设置。
  • 接下来,我们需要为各用户定义一条由Connected Content进行调用的、指向对应HTTP资源的标准URL。请将其中的<RecommendationsServiceHostName> 部分替换为 Elastic Load Balancer的主机名称,用于在示例应用程序部署当中实现Recommendations服务。
  • Recommendations服务将为不同的个性化功能提供相应资源。您可以通过/recommendations 路径访问用户推荐资源。
  • 接下来是查询字符串参数。用户通过userID参数进行身份验证,而{{${user_id}}}表达式则用于指示Braze在每次服务调用中插入用户ID。
  • 最后两项查询字符串参数为fullyQualifyImageUrls=1 与 numResults=4,用于告知Recommendations服务必须保证商品图像URL正确可用,从而顺利显示在用户的电子邮件客户端当中。另外,在本示例中,应仅返回前四条推荐商品。
  • :save result 表达式用于告知Braze将来自Recommendations服务的JSON响应分配至名为result的模板变量。在响应保存完成后,您可以使用模板中其余部分的Liquid标签访问该响应中的各项元素。

以下代码所示,为来自Recommendations服务的响应格式:

为了简便起见,以上代码仅显示前两款推荐商品。您可以在Braze消息模板中使用多条商品属性以代表各项建议。要访问其中的数组或列表中的特定元素,则可在Liquid标签中使用数组下标符号。例如,以下标签会在响应当中插入第一款推荐商品的产品名称。对应之前的示例响应,标签解析后对应 “Striped Shirt”

在将来自Recommendations服务的个性化推荐响应信息与Liquid标签相结合之后,我们即可根据需求设计出无数种消息构建方式。以下代码所示,为在HTML电子邮件模板当中显示推荐商品。

批量集成

批量集成架构使用Amazon Personalize批量推荐作业代替Braze Connected Content功能,专门负责将属性更新推送至Braze。批量推荐需要在 Amazon Simple Storage Service (Amazon S3)存储桶内创建文件,其中包含作为推荐对象的用户。接下来,引用此文件以将作业提交至Amazon Personalize,由后者为文件内的各用户生成推荐,并将结果输出至您所选定的另一个Amazon S3文件处。您可以使用批量推荐作业的输出结果,将个性化推荐与Braze中的用户个人资料共同关联为自定义属性。如此一来,我们在前一种架构的消息模板中看到的Liquid标签,将在这种架构内调整为通过用户个人资料(而非Connected Content响应)访问作为自定义属性的推荐结果。

如前所述,大家在使用批处理方法时需要做出权衡,即通过牺牲实时推荐的新鲜度,以换取更具成本效益的解决方案。由于批量推荐不需要Amazon Personalize中的campaign作为支持,也就消除了各用户由Connected Content发往campaign的额外请求。对于体量庞大且包含众多细分受众类型的Braze campaign,这种方式能够大大减少请求总量。此外,如果您不需要针对其他用途使用Amazon Personalize campaigns,或者打算创建专门用于邮件个性化的Amazon Personalize解决方案,也可以完全不创建任何campaign。

下图所示,为设计这套批处理架构的一种可行方法。我们仍然可以在这里使用实时架构中的某些Web应用程序组件;但为了简洁起见,我们排除掉了所有与实时架构相重复的组件。

您可以使用 Amazon CloudWatch Events定期触发AWS Lambda函数,由此函数为Amazon Personalize批量推荐作业构建输入文件。批量推荐作业完成之后,将由另一项Lambda函数处理输出文件,使用丰富的商品信息进一步充实推荐条目,并在Amazon Kinesis Data Streams当中建立用户更新事件队列。最后,通过另一项新的Lambda函数使用流事件,并使用Braze User API更新用户个人资料。

使用Kinesis数据流将带来一系列重要助益,包括将批处理作业与事务性Braze用户更新流程解耦开来,同时提供对用户更新事件的暂停、重新启动与重放等功能。

实时集成演练

大家可以通过Retail Demo Store示例电子商务应用体验如何实现实时集成。在本文中,我们将分步引导您完成在AWS账户部署此项目的具体流程,并阐述如何启动应用程序当中绑定的自助式Braze研习课程。

具体操作步骤如下:

  • 使用其中提供的AWS CloudFormation模板,将Retail Demo Store项目部署至您的AWS账户(需要25到30分钟)。
  • 构建Amazon Personalize解决方案,以及用于提供个性化推荐的campaigns(需要2小时)。
  • 将用户导入Braze,并使用Connected Content构建一项Braze campaign,借此从Amazon Personalize中检索个性化推荐内容(需要1小时)。
  • 清理资源。

先决条件

在本演练中,大家需要满足以下先决条件:

  • 一个AWS账户
  • AWS账户中须包含一个用户,且具备部署项目所需要的各项权限
  • 一个Braze账户

如果您还没有Braze账户,请联系您的Braze客户代表。此外,您还至少需要完成Braze LAB的入门课程。

步骤1:将Retail Demo Store部署至您的AWS账户

通过下表,您应在选定的区域当中选择Launch Stack。这里提供的区域列表并不代表您一定能够在其中部署项目,仅代表示例部署中对应的各个区域。

区域 启动
美国东部(北弗吉尼亚州) Launch Stack
美国西部(俄勒冈州) Launch Stack
欧洲(爱尔兰) Launch Stack

接受模板中的各项默认参数值,而后启动模板。项目的资源部署大约需要25到30分钟。

步骤2:构建Amazon Personalize campaigns

在提供个性化产品推荐之前,大家首先需要训练ML模型并在Amazon Personalize中配置推荐内容检索所需要的推理端点。步骤1中部署的CloudFormation模板中包含一个Amazon SageMaker notebook实例,该实例为Jupyter notebook提供了详尽的分步操作说明。Notebook的构建大约需要2个小时才能完成。

  • 登录至您在步骤1中用于部署CloudFormation模板的AWS账户。
  • 在Amazon SageMaker控制台上,选择Notebook instances
  • 如果您还没有看到 RetailDemoStore notebook实例,请保证您确实处于项目部署所在的同一区域内。
  • 要访问该notebook实例,请选择 Open Jupyter 或者 Open JupyterLab
  • 在为notebook实例加载Jupyter Web界面之后,选择 workshop/1-Personalization/1.1-Personalize.ipynb

各notebooks将以目录的形式进行结构组织,因此大家可能需要选择 workshop文件夹才能查看notebook中的各子目录。

  • 在打开 1.1-Personalize notebook之后,阅读并运行各个单元以爱步完成研习流程。

您也可以从Jupyter工具栏中选择Run,以依次运行各单元中的代码。

步骤3:由Braze发出个性化消息

通过使用Amazon Personalize解决方案与campaigns生成个性化推荐。现在,您可以将各用户导入您的Braze账户,构建使用Braze Connected Content对Amazon Personalize推荐内容进行检索的消息传递模板,而后构建一项Braze campaign以将目标电子邮件发送给您的用户。

与步骤1中的个性化研习课程类似,Braze消息传递研习课程也将逐步引导您完成整个流程。此notebook大约需要1个小时才能运行完成。

  • 如有必要,请重复步骤1中的操作,通过Retail Demo Store部署中的Amazon SageMaker notebook实例打开Jupyter或者JupyterLab浏览器窗口。
  • 在notebook实例加载Jupyter Web界面之后,选择 workshop/4-Messaging/4.2-Braze.ipynb notebook。

与之前一样,您可能需要选择 workshop文件夹以查看notebook下的各子目录。

  • 当您打开 4.2-Braze notebook之后,通过阅读并运行各个单元以分步完成研习流程。

步骤4:资源清理

为了避免产生不必要的费用,请删除Retail Demo Store项目中的各类资源,具体方法为删除您在部署期间使用的CloudFormation模板。关于本文中所使用的源代码以及完整Retail Demo Store项目的更多详细信息,请参阅GitHub repo

总结

时至今日,营销人员正通过各类消息力争吸引到客户的注意力,这也意味着大家必须能够在正确的时间、以正确的渠道将正确的消息传递给明确定位的正确用户。Braze为前三项难题提供解决方案,而大家也可以将Braze Connected Content与Amazon Personalize集成起来以攻克最后一个挑战,真正整理出能够反映每一位客户当前偏好、具有高度个性化的产品与内容建议。

您如何使用消息吸引客户?又是否有计划使用相关度更高、个性化更强的内容增加与客户间的交互?期待在评论区内听到您的声音。

关于Braze

Braze是AWS高级技术合作伙伴,已经获得AWS数字客户体验与零售技能认证资质。每个月,ABC News、Urban Outfitters、Rakuten以及Gap等全球顶级品牌都会向Braze发送来自20多亿活跃用户的数百亿条消息。

本篇作者

James Jory

AWS公司应用AI解决方案架构师。他对个性化与推荐系统抱有浓厚兴趣,而且拥有电子商务、营销技术与客户数据分析等从业背景。在业余时间,他喜欢露营和驾驶模拟赛车。