手淘促活那些事儿 | 智能投放算法框架助力用户增长

导读:本文主要介绍以手淘促活为目的的全链路智能投放算法框架,该框架目前接入以 Pagani 为核心的全链路运营平台,首先使用用户意图识别算法圈选出目标人群,然后借助物料智能推荐和权益动态面额等算法实现全链路上用户的个性化触达干预。本文以 2019 年春节期间手淘促活项目为例,具体地介绍权益智能投放框架的设计思路和实际应用。

一、背景:春节手淘促活

由于快递物流、商家打烊等因素,春节是电商的淡季。对于手淘来说,在春节期间,用户的活跃程度有明显的下滑, DAU 出现一段时间的低谷。通过算法提前预测春节期间活跃度会发生下降的预警人群,配合不同阶段的用户运营干预(在节前预热期结合春节“吃喝玩乐”的场景,算法个性化推荐相应的虚拟权益;春节期间通过 PUSH 消息每日推送提升来访率),可以有效地促进用户回访、扼制用户活跃度的降低。

如图,通过对近两年春节前后的 DAU 的变化趋势进行统计分析,我们发现,春节对 DAU 的影响持续以除夕为中心的近一个月的时间(从腊月十六到正月十五左右),而传统春节放假的 7 天是 DAU 的最低谷( 18 年除夕晚有春晚红包加持除外)。

根据以上分析结果,可定义出模型预测的关键的时间节点。在节前,通过算法预测,从腊月十六到正月十五的春节30天期间,活跃度会发生下降的“降级预警人群”,在整个活动期对“降级预警人群”进行有针对性的用户运营干预,而在进行干预时,又可以通过推荐算法,结合用户的意图识别,进行权益的个性化承接。

二、全链路智能投放算法框架

 

如图所示,权益智能投放算法框架,主要包括意图识别、权益推荐两个功能模块:

意图识别:

解决“是否发”的问题,侧重点在于“圈人”,给什么样的用户发放权益;

对于春节促活项目的具体诉求,通过用户的来访意图模型,提前预测无来访的用户,在站内通过支付成功页等场景的权益触达提前干预,站外通过PUSH消息等渠道进行权益触达和召回。

权益推荐:

解决“发什么”的问题,给用户发放什么样的权益;

拿到圈选的人群后,需要对人进行“千人千面”的权益个性化承接。

三、算法模块

3.1 意图识别

意图识别,根据用户画像和历史行为,预测用户未来某一时间段内、某种行为(如用户的来访、点击、收藏、加购、购买等)的发生的概率。

对于用户增长来说,大部分情况下,运营的干预目标往往不是单一的,而是“既要、又要、还要、也要“的。对于运营的一个干预策略,目标是多样性的,需要考虑来访率、次日留存率、浏览转化率、成交转化率、ROI等不同的目标如何权衡和综合优化。

针对不同的干预目标,构造样本数据和搭建多意图的训练体系:

LABEL选取和样本构造:

根据不同的优化目标,加工数据,选用不用的LABEL和抽取样本,如领取率LABEL对应权益是否领取,核销率LABEL对应权益是否核销,成交转化率对应用户是否有下单支付等;

用户意图体系构建:

训练用户来访、点击、收藏、加购、购买等不同的意图评分模型;

**意图模型日常评估:
**

  • 用户购买意图:AUC = 0.83,F1 score = 0.76
  • 用户来访意图:AUC = 0.86,F1 score = 0.78
  • 用户点击意图:AUC = 0.76,F1 score = 0.88
  • 用户加购意图:AUC = 0.80,F1 score = 0.64
  • 用户收藏意图:AUC = 0.88,F1 score = 0.58

具体到春节用户无来访的预测问题来说,核心就是用户来访意图的预测。以 2017 年春节期的数据作为训练集, 2018 年春节期的数据作为测试集,评估数据如下:

 

3.2 权益推荐

权益推荐,解决用户的权益个性化承接的问题,综合考虑用户的权益偏好和敏感度、各类权益的目标人群和库存量、平台的补贴成本等,实现用户、商家、平台的三方共赢。

手淘春节促活项目,是全链路智能投放框架首次应用于购后发放权益,由于初次上线且投放时间较短,算法需要快速迭代和提升效果。推荐算法经过冷启动、引入CTR模型、 Thompson Sampling 调权等 3 轮迭代,快速优化和提升了点击率和核销率。

▶ 3.2.1 冷启动策略

冷启动的策略设计主要包含两部分:

1、ε-Greedy算法

解决冷启动问题和优化系统 E&E 问题的最基础、简捷的方法。其基本思路为:在 (0, 1) 之间选择一个较小的ε值,然后以ε的概率选择流量,从权益底池中进行随机推荐,即完成勘探Exploration的功能,以 1 - ε 的概率选择流量,基于先验信息设计的决策树推送权益,即利用现在已有的先验信息完成开发Exploitation的功能。

**2、基于先验信息设计决策树
**

在上线初期,权益底池中的各类优惠券还没有曝光、点击信息时,可以根据用户的基础画像信息,以及用户在站内已有的浏览、加购、购买等行为的信息,作为设计决策树时的一部分先验信息。

▶ 3.2.2 CTR模型

权益推荐模块,相比于用户意图识别,增加了“权益”这个实体,因此在特征的设计上需要更多的考虑权益维度、用户和权益的交叉特征等。可以说用户意图识别是一个偏用户洞察理解的问题,而权益个性化则是一个典型的推荐问题。

如图所示,在特征的设计上,主要包括用户维度特征、权益维度特征,以及用户和权益的交叉特征:

用户维度特征的设计,与用户意图识别模块基本类似,可以复用用户的基础特征、行为特征。而在权益维度,则需要更多地考虑权益本身的差异,通过标题、面额、所属二方业务、权益所映射的类目 ID ,以及历史的领取率、核销率更细致地刻画不同权益的差异性。同时,将用户的特征与权益的特征进行交叉,来学习不同画像的用户在指定权益上的偏好。

点击率预估模型选取的是 XFTRL 。XFTRL 是基于阿里的 eXtreme Parameter Server 平台开发的高性能异步 ASGD FTRL 算法,能够支持千亿规模的特征和长时间连续增量训练。

2017年,阿里巴巴推荐算法团队和计算平台 PAI 团队合作打造了 eXtremeParameter Sever 机器学习平台(XPS),广泛全流量运行在手机淘宝的猜你喜欢、生活研究所、飞猪旅行和天猫推荐等大数据场景,取得了较好的效果。

FTRL 是一种 Online Learning Optimizer ,原始的 FTRL 的具体资料可以参考论文: Mcmahan, H. Brendan , et al. "Ad click prediction: a view fromthe trenches." Proceedings of the 19th ACM SIGKDD internationalconference on Knowledge discovery and data mining ACM, 2013.

XFTRL 算法是对经典线性算法 FTRL 的扩展,是为了解决大规模数据下 FTRL 的一些缺点而提出的。集团内的多数场景对于用户行为时效性要求很高,实时/准实时学习可以充分利用实时日志数据,快速更新模型来适应用户最新行为,更好地强调近期样本的重要性,可以实时快速迭代,快速反应线上变化。

利用上线初期积累的3天的样本训练模型,测试集评估 AUC 仅达 0.61 。另外,在分析时发现各个二方权益的曝光量差异较大,且长尾的二方权益的量很小,因此在短时间内优化算法, E&E 机制的设计就至关重要。

▶ 3.2.3 E&E 优化

长尾 item 在推荐系统中很少或没机会展示,导致 CTR 预估不准,需要探索性给他们创造一些机会,但不能给系统带来太大损失,这就是 E&E 问题。针对 E&E 的问题,我们选取了比较经典的 Thompson Sampling 算法进行 explore 。

汤普森采样(Thompson Sampling)基于贝叶斯思想,全部用概率分布来表达不确定性。

  • 假设每个 item 有一个产生回报的概率p,我们通过不断试验来估计一个置信度较高的概率 p 的概率分布。
  • 假设概率p的概率分布符合beta(wins,lose)分布,它有两个参数: wins, lose, 每个 item 都维护一个 beta 分布的参数。每次试验选中一个 item ,有回报则该 item 的 wins 增加 1 ,否则 lose 增加 1 。
  • 每次选择 item 的方式是:用每个 item 现有的 beta 分布产生一个随机数b,选择所有 item 产生的随机数中最大的那个 item 。

汤普森采样算法的核心在于确定 Beta 分布的参数,以表征后验的 ctr ,如下图所示,为汤普森采样拟合后验 ctr 的分布曲线:

 

汤普森采样代码实现比较简单,在 Java 中可以基于 math3.distribution.BetaDistribution 包快速实现。在计算广告和推荐领域应用的效果与 UCB(Upper Confidence Bound ,一种基于估计的置信区间设计的E&E优化策略)相比 competitive to or better ,且对于数据延迟反馈、批量数据反馈更 robust 。

四、实验效果

整个春节促活项目,包括意图识别“圈人” 和权益推荐的 “个性化承接”两部分, 因此AB实验设计上,包括圈人的干预桶与空桶的对比(衡量干预带来的活跃度提升和DAU增量),和权益个性化承接算法桶与随机桶的对比(衡量权益个性化算法的效能)。

手淘促活整体AB指标 (干预桶对比空桶)

  • 干预桶日均来访率提升1.2%
  • 干预桶人群活跃度未下降的用户比率提升1.42%

权益个性化AB指标(算法桶对比随机桶)

  • 领取率提升40%
  • 核销率提升100%

五、对未来的期望

更完备的数据链路:

  • 数据是算法的核心驱动力,完备的数据链路至关重要。目前有一部分场景的埋点和数据链路尚未打通,比如进入二方承接页的数据的回捞的问题,后续是重点推动和解决的。

引入”供需平衡“的分配机制:

  • 在多供给物料混排时,综合考虑供需关系,从博弈论和机制设计的角度考虑整个系统,设计供给与需求之间的游戏规则,进一步提升活跃用户在链路核心节点的转化率;

沉淀用户生命期有效算法干预策略:

  • 依靠现有的用户增长权益智能发放体系,沉淀各生命期用户算法干预组合策略。


原文链接
本文为云栖社区原创内容,未经允许不得转载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/518173.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python3-numpy数组切片和索引

1、切片 a np.arange(10) s slice(2,7,2) # 从索引 2 开始到索引 7 停止,间隔为2 print (a[s]) # [2 4 6]# 也可以通过冒号分隔切片参数 start:stop:step 来进行切片操作 a np.arange(10) b a[2:7:2] # 从索引 2 开始到索引 7 停止,间隔为 2 p…

天天用Redis,持久化方案你又知道哪些?

来源 |码猿技术专栏责编 | Carol头图 | CSDN 下载自视觉中国Redis目前已经成为主流的内存数据库了,但是大部分人仅仅是停留在会用的阶段,你真的了解Redis内部的工作原理吗?今天这篇文章将为大家介绍Redis持久化的两种方案,文章将会…

万万没想到,JVM内存结构的面试题可以问的这么难?

在我的博客中,之前有很多文章介绍过JVM内存结构,相信很多看多我文章的朋友对这部分知识都有一定的了解了。 那么,请大家尝试着回答一下以下问题: 1、JVM管理的内存结构是怎样的? 2、不同的虚拟机在实现运行时内存的…

Serverless 落地挑战与蚂蚁金服实践

目前 Serverless 已成为云原生社区关注的重点之一,有人说它是微服务的继承者,将会彻底改变软件研发的现状,那么真实情况如何呢?本文将介绍 Serverless 市场观察、落地挑战,以及蚂蚁金服对 Serverless 的实践。 Server…

python3-numpy数组广播 和 np.tile 扩展数组

1、数组广播 import numpy as np""" 广播(Broadcast)是 numpy 对不同形状(shape)的数组进行数值计算的方式, 对数组的算术运算通常在相应的元素上进行。 如果两个数组 a 和 b 形状相同,即满足 a.shape b.shape,那么 a*b 的结…

程序员感叹一年只能存下15万太少了……网友:潸然泪下

最近有程序员网友晒出自己的年终奖,税后高达15.7万!看到这个情形,很多网友表示自己“被打鸡血了”。他强调学习的重要性,学习仍然是在这个时代下,普通人能够逆袭,给家人更好生活的一把利器!今天…

linux 添加sftp用户

-- 创建fxq用户,指定用户家目录为/app/fis/data/fxq 指定Uid为503 useradd fxq -d /app/fis/data/fxq -g sftp -u 503-- 给指定fxq用户设置密码 passwd fxq 略cd /app/fis/data/fxq--级联创建fxq相关目录 mkdir /app/fis/data/fxq/send /app/fis/data/fxq/send/gwl …

机器学习工程师第一年的12点体会

机器学习和数据科学都是广义上的术语,它们涉及超级多的领域以及知识,一位数据科学家所做的事情可能与另一位有很大的不同,机器学习工程师也是如此。通常使用过去(数据)来理解或预测(构建模型)未…

python3-numpy np.nditer 迭代数组、np.nditer修改数组、np.nditer广播迭代

1、基本使用 import numpy as np""" NumPy 迭代器对象 numpy.nditer 提供了一种灵活访问一个或者多个数组元素的方式。 迭代器最基本的任务的可以完成对数组元素的访问。 """ a np.arange(6).reshape(2,3) print (原始数组是:) pri…

AI和机器学习如何改善用户体验?

人工智能(AI)和机器学习(ML)可以做些什么来改善客户体验?自从网上购物开始以来,AI和ML已经密切参与整个网上购物流程。如果没有获得购物建议,你可能无法享受到淘宝或任何其他购物网站的优质服务…

今天下午三点,2020深圳开放数据应用创新大赛将举行第二场线上推介会

4月27日15:00 - 16:30,网易客户端、ZAKER、华为云、南方 plus、虎牙在线直播每场线上推介会设两轮抽奖,欢迎互动。继4月20日首场线上推介会顺利举行后,4月27日下午,以"数聚粤港澳,智汇大湾区"为主题的"…

解决Another app is currently holding the yum lock; waiting for it to exit...问题

在下载安装lrzsz时出现Another app is currently holding the yum lock; waiting for it to exit...问题yum被锁定了可以使用 rm -rf /var/run/yum.pid 强制杀死进程来解决

优化 Tengine HTTPS 握手时间

背景 网络延迟是网络上的主要性能瓶颈之一。在最坏的情况下,客户端打开一个链接需要DNS查询(1个 RTT),TCP握手(1个 RTT),TLS 握手(2个RTT),以及最后的 HTTP …

python3-numpy 数组操作--修改数组形状、翻转数组、修改数组维度、连接数组、分割数组、数组元素的添加与删除

1、修改数组形状 函数描述reshape不改变数据的条件下修改形状flat数组元素迭代器flatten返回一份数组拷贝,对拷贝所做的修改不会影响原始数组ravel返回展开数组 1.1 numpy.reshape numpy.reshape 函数可以在不改变数据的条件下修改形状,格式如下&#…

十周年再发重磅新品,小米发布50倍潜望式变焦小米10青春版、MIUI 12

2020年4月27日,小米集团旗下小米品牌举办新品发布会,小米10青春版、MIUI12两款重磅新品正式发布,一同亮相的还有小米手表Color X Keith Haring联名版和小米蓝牙耳机Line Free。小米10青春版是一款从「做好年轻人最在乎的基本性能」&#xff0…

揭秘!如何用Flutter设计一个100%准确的埋点框架?

阿里妹导读:用户行为埋点是用来记录用户在操作时的一系列行为,也是业务做判断的核心数据依据,如果缺失或者不准确将会给业务带来不可恢复的损失。闲鱼将业务代码从Native迁移到Flutter上过程中,发现原先Native体系上的埋点方案无法…

安装rzsz

yum install -y lrzsz

编码规范 | Java函数优雅之道(下)

上文背景 本文总结了一套与Java函数相关的编码规则,旨在给广大Java程序员一些编码建议,有助于大家编写出更优雅、更高质、更高效的代码。 内部函数参数尽量使用基础类型 案例一:内部函数参数尽量使用基础类型 现象描述: // 调…

python3-numpy IO load()、save()、savez()、loadtxt()、savetxt()、tofile()、fromfile()

Numpy 可以读写磁盘上的文本数据或二进制数据。 NumPy 为 ndarray 对象引入了一个简单的文件格式:npy。 npy 文件用于存储重建 ndarray 所需的数据、图形、dtype 和其他信息。 常用的 IO 函数有: load() 和 save() 函数是读写文件数组数据的两个主要函数…

抽象思想解读Linux进程描述符

来源 | 嵌入式客栈责编 | Carol头图 | CSDN 下载自视觉中国内核是怎么工作的?首先要理解进程管理,进程调度,本文开始阅读进程管理部分,首先从进程的抽象描述开始。抽象是软件工程的灵魂,而对于Linux操作系统而言&#…