纳米镜系列文章|闲鱼如何快速仿真运营活动效果?

简介: 纳米镜系列文章,开讲了!

作者:闲鱼技术-深宇

背景

  在互联网行业中,为了增加用户对产品的粘性,常常会针对性地开展用户运营活动。以红包活动为例介绍运营活动的一般流程。首先根据以往红包活动具有对不同活跃度的用户产生不同促活效果的经验,将用户群体划分为低活、中活、高活人群;其次为了提高用户的次日留存率,设计了预约次日领取红包的方案,红包的内容比如“现金宝箱”或者“金额范围”需要通过圈定样本人群进行AB实验,根据AB实验的显著性以及次日留存率结果选择较优的设计方案;最后将活动上线推向大盘人群,进行后续的数据总结和分析。

图片.png

痛点

  AB实验过程中分析次日留存率指标存在一个制约,即对于T+0天实验的活动,短时间内只能得到曝光率、点击率、领用率等活动相关的直接可观测或计算的指标,然而对于活动的T+1留存率只能在T+2的时候才能获取得到,导致整个实验周期变长,不利于运营对活动的快速响应。

仿真方案

  针对上文提到的响应周期长的痛点,我们希望通过数据仿真的能力来辅助运营作出及时的活动预判及调整。

  整体仿真方案为从历史相关活动日志数据中拉取小时级数据,按照人群标签进行归类,通过监督学习算法训练模型;设计相关指标,在新活动短期小时级数据上进行预测,并对比效果差异。

图片.png

  要实施仿真,需要在有限数据下尽量提高预测的准确率。有两个问题需要考虑:1)怎样组织数据 2)怎样设计预测模型。

数据组织

  历史相关活动选择一类具有共性的活动。比如增长类活动、大促类活动等。人群标签应该具有代表性和通用性,圈选的人群参与过历史相关的活动。

  小时级数据在每天整点进行数据累加,比如9点的数据统计的是0点到9点之间的结果,10点的数据统计的是0点到10点之间的结果,可以看出10点的数据包括了9点的数据。这样累加的好处是缓解了时间点较早参与活动人数较少时,统计数值出现随机误差的问题。

图片.png

  数据组织成如上的层次结果。一个特定的活动,参与人群通过特定的标签进行分类,每个标签人群又可以通过标签值进行分组,每组标签值下的人群再进行AB实验分桶,最后统计每个桶中人群的小时级数据。还是举最开始的例子,对于预约红包活动,人群可以通过标签“用户活跃度”、“是否敏感人群”、“买家最近30天成交数”等标签进行分类。在“用户活跃度”这个标签下,人群又可以根据“低活”、“中活”、“高活”进行分组,每组人群再进行基准桶和实验桶分桶,最后统计每个桶人群的小时级数据。

模型设计

  模型的设计和指标本身的类型相关。在仿真模型中,指标主要分成三类:观测指标、实时指标以及延时指标。其中观测指标为通过埋点日志可以直接得到的,比如活动曝光人数、红包使用人数、app卸载人数等等;实时指标为通过观测指标能计算得到的指标,比如红包使用率可以通过红包使用人数和领用人数计算得到;延时指标无法通过观测指标或实时指标直接获得,比如活动的次留率,需要在T+2才能获得。

图片.png

  1)实时指标的预测模型为:

图片.png

  2)延时指标的预测模型为:

图片.png

  实时指标模型设计为在T+0天实时指标X在t时刻的预测值等于从0到t-1时刻指标X在f1模型下的预测结果。

  延时指标模型设计为在T+n天延时指标Y在t时刻的预测值等于T+0天t时刻观测指标或者实时指标X1、X2……XN在f2模型下的预测结果。

模型预测

  这一小节主要介绍延时指标预测模型f2。T+n天t时刻延时指标Y与T+0天t时刻观测指标或者实时指标X1、X2……XN之间存在较高的非线性性。主要尝试的模型为CART、GBDT、NN。

  1)CART:分类回归树。可用于分类或者回归,是一种二叉树,根据是否满足条件将特征不断二分,在回归问题中用平方误差最小作为特征切分的准则,最后将特征划分成N个不相交的区域,后续进行回归时,根据输入样本的特征,一步一步往下,使得样本落入N个区域中的其中一个,使用这个区域训练样本的平均值作为样本预测的结果。下图中假设延时指标Y包括X1,X2,X3三个特征,回归树在构建时基于切分前后平方误差最小的准则,得到a1,a2,a3三个切分值,整个回归树划分成Y1,Y2,Y3,Y4四个区域。预测时新的样本数据根据X1,X2,X3特征值一步一步往下落入Y1,Y2,Y3,Y4四个区域其中的一个,用这个区域的平均值作为预测的结果。CART 算法比较简单,结果可靠,虽然有剪枝操作,但模型仍然会存在过拟合的问题。

图片.png

  2)GBDT:梯度提升决策树。GBDT采用CART树结合boosting集成学习的思路来提高回归的精度。GBDT每一轮CART树的训练是在上一轮训练的残差基础之上进行,这里的残差就是上一轮CART树模型的负梯度值。下图中延时指标Y仍然包括X1,X2,X3三个特征,CART1基于切分前后平方误差最小的准则将回归树划分成Y1,Y2,Y3,Y4四个区域,计算每个训练样本的负梯度残差,送入CART2中进行拟合,CART2基于切分前后平方误差最小的准则将回归树划分成Y5,Y6,Y7,Y8四个区域。依次迭代下去,每轮CART树都是拟合前一轮CART树的残差。举个简单的例子,假设有个样本次留率为0.8,第一轮CART预测的结果为0.6,第二轮CART会对0.2进行拟合得到0.15,第三轮CART会对0.05进行拟合得到0.03,依次下去直到达到最大迭代次数。预测时新的样本数据根据X1,X2,X3特征值依次运行每棵CART树得到最终的累加结果。

图片.png

  3)NN:神经网络。不管是CART还是GBDT,都是通过模型驱动的方式来进行学习,即需要选择合理的切分准则。神经网络则是通过数据驱动的方式来进行学习,通过不同的网络连接方式来学习输入数据和输出结果之间的映射关系。一般的,神经网络通过将输入层、激活层、全连接层、正则化层以及输出层组织成不同的网络拓扑结构。下图中延时指标Y仍然包括X1,X2,X3三个特征,首先对每个特征进行减均值除方差的预处理,然后分别经过全连接层、RELU激活层、Dropout正则化层,最后通过sigmoid函数输出Y的预测结果。

图片.png

结果

  快速仿真功能已经应用在闲鱼的增长以及冲高活动中,以闲鱼的222冲高活动为例,包括八个活动会场:水果会场、优惠卡券、日用百货、水果、服饰会场、珠宝文玩、游戏礼包以及畅销图书。每个活动主要的实时指标为人均ipv、跳转点击率、购买率以及发布率等。使用所有的观测指标以及实时指标,建立次留率的预测模型。

  以2月21日11点的数据做验证,表1展示的是八个活动在所有人群标签下的结果(只对曝光人数大于100的数据进行处理)。从表1中可以看出整体上NN和GBDT的均方误差要小于CART。

图片.png

  下边左图展示了八个活动在所有人群下三个模型次留率的比较结果,可以看到服饰会场活动中,NN预测的次留率要明显差于GBDT和CART预测的次留率,游戏礼包活动中,NN预测的次留率要明显好于GBDT和CART预测的次留率。右图随机选择了服饰会场在标签"最近180天闲置买到笔数"下人群不同模型次留率的比较结果,可以看出预测的次留率和真实值比较接近。

图片.png

  表2展示的是八个活动在所有人群标签下的结果(只对曝光人数大于50的数据进行处理)。从表2中可以看出整体上NN和GBDT的均方误差要小于CART。与表1相比,当曝光人数限制从100降到50时,均方误差明显变大。说明当人数较少时,实时指标存在一定的随机误差。

图片.png

展望

  上述介绍了如何快速进行活动仿真,包活仿真方案中如何进行数据组织,如何根据指标类型设计模型,然后选择合适的模型进行预测。未来更进一步可以继续研究在曝光人数较少时如何得到更准确的预测结果、如何将相邻小时级数据的影响加入到预测模型以及怎样通过预测结果给出进一步的运营建议。

相关文章
|
算法 计算机视觉
【MATLAB 】 VMD 信号分解+希尔伯特黄变换+边际谱算法
【MATLAB 】 VMD 信号分解+希尔伯特黄变换+边际谱算法
1287 0
|
canal 编解码 人工智能
Google Earth Engine(GEE)——OSM水图层 OpenStreetMap中的全球地表水数据集(90m分辨率)
Google Earth Engine(GEE)——OSM水图层 OpenStreetMap中的全球地表水数据集(90m分辨率)
351 0
|
存储 Prometheus 运维
[10.14 workshop] 自定义 Prometheus 监控指标并通过 Grafana 展示
阿里云Prometheus监控全面对接开源Prometheus生态,支持类型丰富的组件监控,提供多种开箱即用的预置监控大盘,且提供全面托管的Prometheus服务。借助阿里云Prometheus监控,您无需自行搭建Prometheus监控系统,因而无需关心底层数据存储、数据展示、系统运维等问题。
[10.14 workshop] 自定义 Prometheus 监控指标并通过 Grafana 展示
|
机器学习/深度学习 人工智能 监控
高质量人体检测与行人识别数据集-千张标注图片全解析已标注(目标检测任务数据集)分享
在计算机视觉和人工智能的发展浪潮中,人体检测与行人识别 是一个极具应用价值和研究意义的方向。从智能监控到自动驾驶,从智慧城市到公共安全,人体检测数据集的质量与规模往往直接决定了算法模型的性能。本文将围绕一个包含 上千张图片、已完成划分与标注 的 人体检测、行人识别数据集 展开介绍,帮助研究者和开发者快速了解该数据集的特点、优势及其适用场景。
|
存储 机器学习/深度学习 SQL
【Prompt Engineering:自我反思(Reflexion)】
自我反思(Reflexion)是一种通过语言反馈强化基于语言的智能体的新范式,无需微调模型即可提升其在决策、推理和编程等任务中的表现。该框架包括参与者(生成动作)、评估者(评分)和自我反思(生成反馈)三个部分,利用大语言模型生成具体反馈,帮助智能体从错误中快速学习,显著提高了多种任务的性能。
1823 2
【Prompt Engineering:自我反思(Reflexion)】
|
负载均衡 安全 Linux
为何一个网卡需要配置多个IP地址?🌐
在Linux环境中,一个网卡配置多个IP地址是一个常见且强大的网络管理策略🛠️。这种策略不仅增加了网络的灵活性和效率,还能满足特定的网络需求和应用场景🎯。让我们一探究竟,看看在哪些情况下,为什么一个网卡会需要配置多个IP地址,并探讨不配置多个IP地址的后果。
为何一个网卡需要配置多个IP地址?🌐
|
iOS开发 MacOS
macOS开机自启动执行脚本
【8月更文挑战第23天】在macOS上设置开机自动执行脚本可通过三种方式:一是利用“系统偏好设置”中的“用户与群组”功能直接添加脚本或应用;二是通过创建`.plist`文件并放置于`LaunchAgents`目录,这种方式能更精细地控制脚本运行;三是使用cron任务,在系统启动时执行脚本,但该方法不太适用于图形界面程序且可能受限于启动顺序。每种方法各有优缺点,需根据实际情况选择。
3109 0
|
消息中间件 SQL JSON
3、数仓之采集工具MaxWell(MaxWell简介、MaxWell原理、MaxWell部署、MaxWell使用)
3、数仓之采集工具MaxWell(MaxWell简介、MaxWell原理、MaxWell部署、MaxWell使用)
|
机器学习/深度学习 存储 人工智能
基于Windows下Anaconda创建python虚拟环境教程(一)
基于Windows下Anaconda创建python虚拟环境教程
4135 0
基于Windows下Anaconda创建python虚拟环境教程(一)
|
算法 搜索推荐 Serverless
打散算法的三种解决方案及其选型场景
打散算法优缺点及选型场景
7030 1
打散算法的三种解决方案及其选型场景