导读:过去的很长一段时间内,由于电商的强运营特性,手淘 App 的 Push 消息大部分时候是作为一个活动通知的通道,对重要活动进行通投引流。然而在竞争环境更加激烈和用户渗透日趋饱和的今天,具备更加精细化的用户运营手段和智能内容投放能力被逐渐重视起来,也成为了整个系统和产品后续优化升级的重点。
从今年开始,我们开始对手淘 Push 的平台链路、技术架构和投放算法进行了大幅度的升级改造,目标是使其能够在日常和大促中承担起个性化营销、用户促活和业务导流等多种角色。
那么,经过升级改造后的整体效果如何?在这次的 618 大促中又发挥了什么样的作用?我们在背后有那些发现和思考?本文会逐一介绍。
介绍
手淘 App 作为目前用户数最多的几个 App 之一,Push 天生就是一个用户触达量非常巨大的渠道,每天将触达几亿的人群,是整个手机淘宝非常重要流量渠道之一。
但是实际上,我们希望 Push 消息不仅仅是一个触达渠道和通知方式,而是能够通过结合丰富的触达内容、深度的用户理解和个性化的运营分发,将其打造成一个具备用户心智和真正懂用户的产品,变成用户在淘宝上的一个贴身小助手。
手淘的 Push 消息可以分为营销类(细分为个性化、定投和通投),产品通知类,聊天 IM 类。可以从下面的产品介绍图中找到部分相应的示例。
背景
在流量结构上,历史上手淘 Push 投放流量经历过从通投到定投的转变,开始进入了精细化用户运营的模式。算法开始介入对人群的选择,简单说完成了一个从人找内容到内容找人的过程。
随着今年的升级改造,我们重点打造了更加强大的个性化在线计算引擎来进行内容投放,经过了大量的 AB 实验和大促的检验之后,目前的主要流量已经从定投切换到了个性化投放,完成了从时机、内容、频率上都完全个性化的改进。
可以从下面的图里直观的理解这三种投放方式的区别。其实投放模式的改进除了带来效率的提升之外,也带来了用户体验的巨大提升,除了可以减少大量没有必要的消息推送之外,推送的内容也会和用户更加相关。
整体架构
消息推送最基本的能力是进行内容投放。对于一般的 App 而已, Push 更多的可以理解为实现一个内容推荐和分发系统,通过优化点击率来提高 App 的活跃度和内容的浏览量。但是对于手淘而已,还需要承担一个对不同业务方进行内容投放的需求,需要做到流量的合理分配,兼顾平台,业务方和用户的诉求,所以手淘 Push 同时也兼具了广告投放系统的很多特点。
如下图,整体算法架构分为投放匹配 和 流量调控分别建设,同时我们还构造了第三个模块智能情景投放来决定整个投放的具体时机。
流量投放匹配:本质上解决的是用户和内容的匹配问题,我们将会从内容素材库中选择和用户最相关的内容和商品,假设 f(U,X) 是对用户 U 在投放内容 X 上的打开率预估得分,那么这个模块将会选择打开率预估最高的素材进行后续投放。
从系统视角上看,整个流程也分为了经典的召回+排序的部分,但是具体来说和传统的推荐分发系统有两个主要不同点:
1.具体的投放任务往往有一些限制和要求,比如投放量,投放目标人群和投放频率等,所以如果我们仅仅将最优的内容分配给最活跃的用户,就会发现在这些约束条件下这样做通常都不是全局最优解。于是通过加入流量调控决策来对这些约束进行考虑,最终可以从全局角度进行整体优化。
2.在不同的时刻,用户的注意力以及对内容的需要程度是不一样的。通过对时间进行合理的预估,并触发投放可以有效的提高内容利用效率,并且有效降低系统的负载。于是智能情景投放被引入来针对每个用户预估他们的最优投放时间。
流量调控决策:这个模块将会收集用户和内容本身的Push发送情况,来满足一些疲劳度和业务方流量保证等一系列的约束,同时也将这些约束也同样建模到算法模型中进行优化。
整体来看, M 表示素材, U 表示用户, MU 表示该素材对该用户的投放情况, X 表示具体的投放内容 Item 。
最终希望投放内容的优化问题和约束条件为:
函数 h 考虑预估打开率 f(U,X) 、 U 的已发送量、 MU 的已发送量的拟合关系,函数 g 考虑 M 的已发送量的业务流量分配优化,最终通过有监督优化学习这两个函数的最优解,使得整体的流量分配在业务流量,用户投放疲劳度,内容多样性和全局打开率上达到一个最优的状态。
智能情景投放:在消息推送中除了要解决推送什么内容之外,还有一个很重要的问题是解决推送时机的问题,也就是在什么时间进行推送用户最有可能打开,并且受到的打扰最小。传统的通投或定投只能选择统一的发送时间,没有充分考虑用户的使用情景。
在投放系统的上游,我们加入了智能情景模块在投放时为每个用户决定个性化的推送时间。在投放之前,智能情景模块会去预估每个用户最佳的的Push触达时机,然后在这个最佳时机上去触发内容的选择和投放系统。
具体实现上,对于某个用户而言,投放时间的优化问题可以抽象为不同时段Push消息的打开率预估,然后选择最优解的优化过程。但是实际中我们不能完全暴力的求解和遍历所有时机,并且还需要考虑不能将流量完全集中在一个时刻引发系统问题。于是最终采取的做法是结合用户当日使用情况、疲劳情况等实时特征,会先选择一些候选时机集合T,然后再训练预估模型f来选择其中的最佳时间点来作为该用户今天的投放时间。
相比于固定投放时机或者随机投放时间,基于智能情景投放时机的打开率效果分别可以提升10%和20%左右,有效的提高了消息的利用率。在合适的时机推送内容也做到了对用户打扰的降低,以及降低了整体的系统负载压力。
整体阶段成果:经过为期3个月的开发和打磨,最终整个系统在618之前成功上线,在日常的投放中带来以下几点提升:
- 效率显著提升:通过整体系统的改造,我们对手淘 DAU 的贡献占比从 3 月初到现在短短几个月时间提升了 100% ,实现了翻倍,给整个手淘的用户活跃带来了较大的增量。
- 实时链路改造:通过对离线投放的改造,所有的计算都迁移到了在线引擎,实现实时内容匹配和投放,这带来了算法效果上超过15%的提升以及实时运营的能力支持。而对实时运营的支持,是 Push 整体能在大促发挥作用的重要基础能力,我们将在下一节重点介绍大促中的工作。
- 消息打扰优化:通过算法来预测每条消息对于用户的价值,我们就可以尽可能的去过滤一些对用户价值较低的消息,在不影响整体打开效果的情况下,尽可能的降低对用户的打扰。这个工作目前已经有了初步的成果,目前可能在打开效果尽量不降低的情况下,减少 40% 的消息发送量。
大促赋能
每年的天猫 618 大促既是一个年中重要的营销节日,也是对年末天猫双十一的一个预演和检验。对于今年的 618 大促,我们成立了专门的大促专项进行了重点支持。除了上述日常的改造提升之外,针对大促的特点和对 Push 投放的需求,也进行了相关的能力改造和升级。
大促流量保证 :对于大促的赋能关键点是需要具备 2 个核心能力:实时投放 + 动态目标。
业务上需要根据大促的实时情况来决定投放目标,比如大促 GMV 和流量的供给需求等。这种情况下离线算法是很难支持这种临时的投放任务的,而经过了前期的一系列实时化改造和对大促临时需求的调研,最终在 618 之前上线了大促机动策略功能,可以针对大促当天的临时或者机动需求,进行创建任务、选择投放目标和内容、开始投放的一系列实时能力。
例如,618 当天,为了进一步释放大促潜在购买转化,在大促期间加购未购人群上实时创建了投放任务,进行了目标人群上的个性化投放。对比的投放方式是人工选择内容,随机选择内容和算法个性化选择内容。具体的实验方案如下图:
下图里给出了大促三天算法带来的投放效率提升效果。三个任务里算法投放的打开率相比大促常规的人工通投方式都有非常明显的提升,证明了算法在提效和实时干预上能够较大幅度的帮助大促完成相应的业务目标。在大促的流量争夺战中,希望通过更加有针对性和高效的方式进行触达,帮助用户找到更有效的信息,同时也降低无效信息对用户的干扰。
大促营销内容 :众所周知,大促对于电商用户来说,更像一个促销节日,所以营销的重点一定是不一样的。我们希望这种变化可以更加实时的捕捉和通过用户行为动态的进行学习。
这次大促经过全行业的投放,通过数据分析,从天猫大促会场和日常投放素材的对比可以发现,大促中的用户对高价格商品的接受度会比较高,而日常投放中的用户需求则集中在低价格商品,而这些用户需求的变化也可以通过实时的算法学习来捕捉,从而在投放上进行调整和变化,进一步的对大促的流量效率进行提升。
总结&展望
综上,用一句话概括手淘 Push 的整体目标就是:在合适的时机,为用户提供需要的内容,并且建立稳定的用户预期和反馈机制,来形成有效的产品闭环。
未来将继续沿着三个重要方向进行升级和优化。
1.用户打扰和通道健康:
应用内外的 Push 功能是一个很容易被滥用,并且健康度受损之后很难事后修复的渠道。目前手淘的 Push 应用通知关闭率低于大部分内容类应用,但在发送消息的时候仍然要对通道的健康度进行关注和优化,减少消息的发送量。
2.事件触发机制支持和端测能力结合:
除了进行营销类的通知外,从用户体验上,需要将用户真正关心的事件和用户希望得到的通知提供给他们,成为用户真正的贴身助手。所以后续将会结合事件触发和端实时计算的能力还进行能力补全。
3.算法深度的探索和应用:
如之前介绍,手淘的 Push 算法融合了推荐和广告中的算法能力,未来将进一步对更加深入的算法方向进行探索,希望能够对用户的状态和推送正负反馈进行更加精准的建模,让推送内容变得更加准确和“有用”。
原文链接
本文为云栖社区原创内容,未经允许不得转载。