写点什么

大促背后的流量利器|手淘 push 升级 比你更懂你 (二)

  • 2019-12-18
  • 本文字数:3032 字

    阅读完需:约 10 分钟

大促背后的流量利器|手淘push升级 比你更懂你(二)

整体架构

消息推送最基本的能力是进行内容投放。对于一般的 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 算法融合了推荐和广告中的算法能力,未来将进一步对更加深入的算法方向进行探索,希望能够对用户的状态和推送正负反馈进行更加精准的建模,让推送内容变得更加准确和“有用”。


本文转载自淘系技术公众号。


原文链接:https://mp.weixin.qq.com/s/A36Oa81eku0vIX16OIMLOA


2019-12-18 16:091564

评论

发布
暂无评论
发现更多内容

语法糖甜不甜?巧用枚举实现“状态”转换限制

阿Q说代码

枚举 签约计划第二季 语法糖 订单状态转换

后端开发实战总结 | 签约计划第二季|后端

阿Q说代码

内容合集 签约计划第二季 技术专题合集

ZEGO 即构科技首发适配鸿蒙系统的 Express SDK 1.0 版本,并正式启动公测!(内附源码)

ZEGO即构

音视频 HarmonyOS 鸿蒙开发 即构科技

年末冲刺!坚持就是胜利,12月日更来啦~

InfoQ写作社区官方

12月日更 热门活动

恒源云(GPUSHARE)_GPU白嫖大法来袭!

恒源云

深度学习 gpu 算力加速

看了同事写的代码,我竟然开始默默的模仿了。。。

阿Q说代码

策略模式 多态 签约计划第二季 自定义参数解析器 统一验签

用户登录设计之双token设计

CRMEB

高校企业双向赋能,首届飞桨启航菁英计划圆满结束

百度大脑

人工智能 百度 飞桨

「Spark从精通到重新入门(一)」Spark 中不可不知的动态优化

尔达Erda

云计算 大数据 spark 开发者 感悟

【量化】股市技术分析利器之TA-Lib(一)

恒生LIGHT云社区

量化投资 量化

实战篇:断点续传?文件秒传?手撸大文件上传

阿Q说代码

断点续传 签约计划第二季 文件秒传 文件分块 文件合并

如果还不懂如何使用 Consumer 接口,来公司我当面给你讲!

阿Q说代码

函数式接口 签约计划第二季 consumer 实战讲解 supplier

Spark从入门到精通

冇先生

博文推荐|使用 Pulsar IO 打造流数据管道

Apache Pulsar

Java 开源 架构 云原生 Apache Pulsar

还在用BeanUtils拷贝对象?MapStruct才是王者!【附源码】

阿Q说代码

Java MapStruct 签约计划第二季 深拷贝与浅拷贝

长连接网关技术专题(六):石墨文档单机50万WebSocket长连接架构实践

JackJiang

websocket 即时通讯 IM 网关

科技热点周刊|PHP 基金会成立、Rust 内讧、Amazon Linux 2022 预览版发布

青云技术社区

云计算

四步做好Code Review

百度开发者中心

Code Review

如何更快上手使用 OceanBase 社区版?

OceanBase 数据库

数据库 直播 课程 OceanBase 开源

Linux学习方法《Linux一学就会》Linux系统进程管理

侠盗安全

Linux linux运维 运维工程师 云计算架构师

PackML从会到不会——标签(3)

陈的错题集

标准化 PackML

IoT Stack 2.0升级物模型及数据交互协议, 大幅提升物联网方案交付速度

百度大脑

人工智能 百度 物联网

WeTest小程序质量专项方案推出,小程序异常监控内测招募中

WeTest

【量化】股市技术分析利器之TA-Lib(二)

恒生LIGHT云社区

量化投资 量化

如何设置Activity背景颜色与ProgressBar进度条颜色

Changing Lin

12月日更

看了这么多年西游记,你可知道孙悟空是如何召唤土地公公的吗?

阿Q说代码

Java 观察者模式 签约计划第二季 事件通知机制

实战篇:Security+JWT组合拳 | 附源码

阿Q说代码

spring security JWT 签约计划第二季 权限验证

『上线』OpenSEC SIGs 终于成立了!

SphereEx

开源社区 ShardingSphere SphereEx 中文开源 OpenSEC

秒过!度目智慧通行让常态化防疫更高效

百度开发者中心

人工智能

秒过!度目智慧通行让常态化防疫更高效

百度大脑

人工智能 人脸识别

大规模 K8s 集群管理经验分享 · 上篇

尔达Erda

程序员 云原生 k8s K8s 多集群管理 经验分享、

大促背后的流量利器|手淘push升级 比你更懂你(二)_语言 & 开发_淘系技术_InfoQ精选文章