Amp on Amazon 如何使用数据来提高客户参与度,第 2 部分:使用 Amazon SageMaker PlatoBlockchain Data Intelligence 构建个性化节目推荐平台。 垂直搜索。 哎。

Amp on Amazon 如何使用数据提高客户参与度,第 2 部分:使用 Amazon SageMaker 构建个性化节目推荐平台

放大器 是来自亚马逊的新直播电台应用程序。 使用 Amp,您可以主持自己的广播节目并播放 Amazon Music 目录中的歌曲,或者收听和收听其他 Amp 用户正在主持的节目。 在内容丰富多样的环境中,根据每个用户的个人品味定制用户体验非常重要,这样他们就可以轻松找到自己喜欢的节目并发现他们喜欢的新内容。

Amp 使用机器学习 (ML) 为应用主页上的直播和即将播出的 Amp 节目提供个性化推荐。 推荐使用随机森林模型计算,该模型使用代表节目受欢迎程度(例如收听和喜欢计数)、创作者受欢迎程度(例如播放最近节目的总次数)和用户个人亲和力的特征节目的主题和创作者。 亲和度要么隐含地从用户的行为数据中计算出来,要么显式地从用户个人资料中提供的感兴趣的主题(例如流行音乐、棒球或政治)中计算出来。

这是关于使用数据分析和 ML for Amp 以及创建个性化节目推荐列表平台的系列文章的第 2 部分。 自 3 年 2022 月推出以来,该平台跟踪的客户参与度指标(喜欢节目、关注创作者、启用即将到来的节目通知)已显示出 XNUMX% 的提升。

请参阅 部分1 了解如何使用数据和分析系统收集和处理行为数据。

解决方案概述

Amp 基于 ML 的节目推荐器有五个主要组件,如下图所示:

  1. Amp 移动应用程序。
  2. 收集行为数据的后端服务,例如喜欢和关注,以及广播与节目相关的信息,例如节目上线时的状态更新。
  3. 行为和表演数据的实时摄取,以及实时(在线)特征计算和存储。
  4. 批量(离线)特征计算和存储。
  5. 一个推荐系统,用于处理来自应用后端的传入请求以获取节目列表。 这包括基于个性化和非个性化特征对节目进行排名的实时推断。

本文重点关注第 3、4 和 5 部分,力求详细说明以下内容:

下图显示了高级架构及其组件。

在以下部分中,我们将提供有关实时特征计算、批量特征计算、实时推理、运行状况以及我们观察到的结果的更多详细信息。

实时特征计算

某些功能(例如节目的点赞和收听次数)需要连续流式传输并按原样使用,而其他功能(例如超过 5 分钟的收听会话数)也需要实时转换为原始数据对于会话是流式传输的。 需要在推理时计算值的这些类型的特征称为 时间点 (坑)特征。 PIT 功能的数据需要快速更新,并且应以低延迟(每用户 20 场演出的时间低于 1,000 毫秒)写入和读取最新版本。 数据还需要保存在持久存储中,因为丢失或部分数据可能会导致推荐质量下降和客户体验不佳。 除了读/写延迟之外,PIT 功能还需要低反射时间。 反射时间是在发出贡献事件后,某个功能可以读取所需的时间,例如,听众喜欢一个节目和 PIT LikeCount 功能被更新之间的时间。

数据源是直接为应用程序服务的后端服务。 一些数据被转换成指标,然后通过广播 亚马逊简单通知服务 (Amazon SNS) 到下游侦听器,例如 ML 功能转换管道。 内存数据库(如 MemoryDB)是持久存储和大容量超快速性能的理想服务。 将特征转换和写入 MemoryDB 的计算组件是 Lambda。 根据时间和日期,应用程序流量遵循每日和每周的高峰和低谷模式。 Lambda 允许自动扩展到传入的事件量。 每个单独的度量转换的独立性也使得 Lambda,它本身就是一个无状态服务,非常适合这个问题。 推杆 Amazon Simple Queue服务 Amazon SNS 和 Lambda 之间的 (Amazon SQS) 不仅可以防止消息丢失,还可以作为预配置 Lambda 并发限制可能不足以提供服务的意外流量突发的缓冲区。

批量特征计算

使用历史行为数据来表示用户不断变化的品味的功能计算起来更加复杂,并且无法实时计算。 这些特征是由一个经常运行的批处理计算的,例如每天一次。 批量特征的数据应该支持快速查询以过滤和聚合数据,并且可能跨越很长时间,因此体积会更大。 因为批量特征也被检索并作为实时推理的输入发送,它们仍然应该以低延迟读取。

为批量特征计算收集原始数据没有 PIT 特征所具有的亚分钟反射时间要求,这使得更长时间地缓冲事件和批量转换指标成为可能。 该解决方案利用 Kinesis Data Firehose,这是一种托管服务,可将流数据快速摄取到多个目的地,包括 亚马逊简单存储服务 (Amazon S3) 用于将指标保存到 S3 数据湖以用于离线计算。 Kinesis Data Firehose 提供了一个事件缓冲区和 Lambda 集成,可以轻松收集、批量转换并将这些指标保存到 Amazon S3,以供以后批量特征计算使用。 批量特征计算不像 PIT 特征那样具有低延迟读/写要求,这使得 Amazon S3 成为更好的选择,因为它提供了低成本、持久的存储来存储这些大量业务指标。

我们最初的 ML 模型使用过去 21 个月捕获的数据每天计算的 2 个批量特征。 此数据包括每位用户的播放和应用参与历史记录,并随着用户数量和应用使用频率而增长。 这种规模的特征工程需要一个自动化的过程来提取所需的输入数据,并行处理它,并将结果导出到持久存储。 仅在计算期间才需要处理基础设施。 SageMaker处理 提供预构建的 Docker 映像,其中包括 Apache Spark 和大规模运行分布式数据处理作业所需的其他依赖项。 处理作业的底层基础设施完全由 SageMaker 管理。 集群资源在您的作业期间进行配置,并在作业完成时清理。

批处理过程中的每个步骤——数据收集、特征工程、特征持久化——都是需要错误处理、重试和状态转换的工作流的一部分。 和 AWS步骤功能,您可以创建一个状态机并将您的工作流程拆分为预处理和后处理的几个步骤,以及将功能保存到 SageMaker Feature Store 或将其他数据保存到 Amazon S3 的步骤。 Step Functions 中的状态机可以通过以下方式触发 亚马逊EventBridge 自动化批处理计算以按设定的时间表运行,例如每天晚上 10:00 UTC 运行一次。

计算特征后,需要对其进行版本化和存储,以便在推理和模型再训练期间读取。 您可以使用 SageMaker Feature Store,而不是构建自己的特征存储和管理服务。 Feature Store 是一个完全托管的专用存储库,用于存储、共享和管理 ML 模型的功能。 它将 ML 功能的历史存储在离线商店 (Amazon S3) 中,还向在线商店提供 API,以允许以低延迟读取最新功能。 线下商店可以为进一步的模型训练和实验提供历史数据,在线商店可以通过面向客户的 API 调用来获取实时推理的功能。 随着我们不断改进服务以提供更加个性化的内容,我们预计会训练更多的 ML 模型,并在 Feature Store 的帮助下,在这些模型中搜索、发现和重用特征。

实时推断

实时推理通常需要在端点后面托管 ML 模型。 您可以使用 Web 服务器或容器来做到这一点,但这需要 ML 工程工作和基础设施来管理和维护。 SageMaker 可以轻松地将 ML 模型部署到实时端点。 SageMaker 允许您通过创建和配置 SageMaker 端点来训练和上传 ML 模型并托管它们。 实时推理满足在 Amp 主页上浏览节目时对节目进行排名的低延迟要求。

除了托管主机,SageMaker 还提供托管端点扩展。 SageMaker 推理允许您定义具有最小和最大实例计数的自动扩展策略以及触发扩展的目标利用率。 通过这种方式,您可以随着需求的变化轻松地扩大或缩小规模。

运行状况

该系统为实时特征计算处理的事件数量会随着应用程序使用的自然模式(基于一天中的时间或一周中的一天的流量增加或减少)而相应变化。 同样,它接收到的实时推理请求数量与并发应用程序用户的数量成比例。 由于受欢迎的创作者在社交媒体上进行自我宣传,这些服务也获得了意想不到的流量高峰。 尽管确保系统可以扩展和缩减以成功且节俭地服务传入流量很重要,但监控运营指标并针对任何意外的运营问题发出警报以防止丢失数据和向客户提供服务也很重要。 监控这些服务的运行状况很简单,使用 亚马逊CloudWatch. 重要的服务健康指标(例如故障和操作延迟)以及利用率指标(例如内存、磁盘和 CPU 使用率)都可以使用 CloudWatch 开箱即用。 我们的开发团队使用指标仪表板和自动监控来确保我们能够为客户提供高可用性 (99.8%) 和低延迟(端到端不到 200 毫秒即可获得每位用户推荐的节目)。

衡量结果

在这篇文章中描述的基于 ML 的节目推荐器之前,一种更简单的启发式算法根据用户在其个人资料中自我报告的个人感兴趣的主题对 Amp 节目进行排名。 我们设置了一个 A/B 测试,以使用用户过去应用交互的数据来衡量切换到基于 ML 的推荐系统的影响。 我们将收听时长和参与操作次数(喜欢节目、关注节目创建者、打开通知)等指标的改进确定为成功的指标。 A/B 测试显示,50% 的用户收到通过基于 ML 的推荐器为他们排名的节目推荐,客户参与度指标提高了 3%,播放持续时间提高了 0.5%。

结论

借助专门构建的服务,Amp 团队能够在不到 3 个月的时间内将本文所述的个性化节目推荐 API 发布到生产环境中。 该系统还可以很好地扩展由知名节目主持人或营销活动创建的不可预测的负载,这些负载可能会产生大量用户。 该解决方案使用托管服务进行处理、培训和托管,这有助于减少系统日常维护所花费的时间。 我们还能够通过 CloudWatch 监控所有这些托管服务,以确保生产中系统的持续健康。

A/B 测试 Amp 的基于 ML 的推荐器的第一个版本与基于规则的方法(仅按客户感兴趣的主题排序显示)表明,基于 ML 的推荐器向客户展示了来自更多不同主题的更高质量的内容,这会导致更多的关注和启用通知。 Amp 团队不断致力于改进模型以提供高度相关的建议。

有关功能商店的更多信息,请访问 Amazon SageMaker功能商店 并查看其他客户用例 AWS机器学习博客.


关于作者

Amp on Amazon 如何使用数据来提高客户参与度,第 2 部分:使用 Amazon SageMaker PlatoBlockchain Data Intelligence 构建个性化节目推荐平台。 垂直搜索。 哎。郁金香古普塔 是 Amazon Web Services 的解决方案架构师。 她与 Amazon 合作,在 AWS 上设计、构建和部署技术解决方案。 她协助客户在 AWS 中部署解决方案时采用最佳实践,并且是分析和机器学习爱好者。 在业余时间,她喜欢游泳、远足和玩棋盘游戏。

Amp on Amazon 如何使用数据来提高客户参与度,第 2 部分:使用 Amazon SageMaker PlatoBlockchain Data Intelligence 构建个性化节目推荐平台。 垂直搜索。 哎。郭大卫 是 Amazon Web Services 的解决方案架构师。 他与 AWS 客户合作,在 AWS 上设计、构建和部署技术解决方案。 他与媒体和娱乐客户合作,对机器学习技术感兴趣。 在他的业余时间,他想知道他应该如何利用他的业余时间。

Amp on Amazon 如何使用数据来提高客户参与度,第 2 部分:使用 Amazon SageMaker PlatoBlockchain Data Intelligence 构建个性化节目推荐平台。 垂直搜索。 哎。马诺利亚·麦考密克 是 Amp on Amazon 的高级软件开发工程师。 她使用 AWS 设计和构建分布式系统,为面向客户的应用程序提供服务。 她喜欢在业余时间阅读和烹饪新食谱。

Amp on Amazon 如何使用数据来提高客户参与度,第 2 部分:使用 Amazon SageMaker PlatoBlockchain Data Intelligence 构建个性化节目推荐平台。 垂直搜索。 哎。杰夫克里斯托弗森 是 Amp on Amazon 的高级数据工程师。 他致力于在 AWS 上设计、构建和部署大数据解决方案,以推动可行的见解。 他协助内部团队采用可扩展和自动化的解决方案,并且是分析和大数据爱好者。 在他的业余时间,当他不在滑雪板上时,您可以在他的山地自行车上找到他。

时间戳记:

更多来自 AWS机器学习