写点什么

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

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

    阅读完需:约 9 分钟

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


导读:过去的很长一段时间内,由于电商的强运营特性,手淘 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% 的消息发送量。


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


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


2019-12-18 16:081585

评论

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

配置引起事故复盘

风翱

3月日更

数据库备份真的很重要!很重要!很重要!

xiezhr

oracle sql MySQL 运维 数据备份

苹果笔记本充不进电的解决方案

石云升

电脑故障 28天写作 3月日更

好想做个女孩子,编程第一步,女装身上穿

GitHub指北

正则表达式的使用与匹配原理解析

Guanngxu

正则表达式

新年上班第一天生产环境分布式文件系统崩了!!

冰河

高可用 分布式存储 fastdfs 可扩展 无限扩容

一口气面了腾讯两个部门!

我是程序员小贱

3月日更

Wireshark数据包分析学习笔记Day17

穿过生命散发芬芳

Wireshark 数据包分析 3月日更

uni-app跨端开发H5、小程序、IOS、Android(四):了解uni-app项目结构

黑马腾云

html5 微信小程序 uni-app android iOS Developer

领域驱动设计101 - 通用语言

luojiahu

领域驱动设计 DDD

蚂蚁二面:MQ消费端遇到瓶颈除了横向扩容外还有其他解决办法?

中间件兴趣圈

面试 RocketMQ 消息中间件

GitOps | 一种云原生的持续交付模型

xcbeyond

CI/CD gitops 3月日更

初识Golang之调用方法

Kylin

3月日更 Go 语言

避免失控:谈谈人与人交往中的恶

boshi

职场 心理 七日更

FISCO BCOS 开发环境节点搭建 | 联盟链开发(一)

李大狗

区块链 联盟链 FISCO BCOS 狗哥

我在阿里实习做开源

apache/dubbo-go

微服务 程序人生 云原生 dubbo dubbogo

在离开新手村后,你该如何的走出呢?打造属于你的快与慢的能力。

叶小鍵

所谓生产力

ES_her0

3月日更

JVM - 类加载器

insight

3月日更

分享18个常用的ECMAScript 6代码片段

devpoint

reduce URL参数解析 Form表单数据解析

(继续码字) 因果有顺序吗?是一种必要充分条件吗?

mtfelix

28天写作 bewriting 胡思乱想

Seldon使用(一):简介及入门

托内多

tensorflow kubeflow Kubernetes PyTorch seldon

【LeetCode】矩阵置零Java题解

Albert

算法 LeetCode 28天写作 3月日更

《Redis 核心技术与实战》学习笔记 05

escray

redis 学习 28天写作 3月日更 Redis 核心技术与实战

远程协助软件向日葵分析

lenka

3月日更

源码分析-Netty: 高性能之道

程序员架构进阶

Netty RPC 源码剖析 28天写作 3月日更

还有高仿项目吗

GitHub指北

一些人的某些目标

sadhu

生涯规划 职业规划 个人提升

《码农歌》

臧萌

加班

Python PyAutoGUI 库

HoneyMoose

MongoDB中的null类型查询

Kylin

mongodb 3月日更 21天挑战 数据库查询 NoSql查询语法

大促背后的流量利器|手淘push升级 比你更懂你_文化 & 方法_淘系技术_InfoQ精选文章