艺友网站建设/网站seo优化方案
在数据驱动业务的大环境下,AB实验是对策略效果进行评估的重要指南针,并广泛应用在用增/推荐/搜索/内容/商业化等多个领域,尤其是综合评估多个策略对于大盘影响的对比效果,AB增量的计算就尤为重要。
背景
现在普遍常见的泛社交裂变业务模式会使实验桶和对照桶互相影响,对AB增量的计算会产生一定的污染性,导致增量计算有所偏差,那么如何处理这种污染来还原真实的AB增量,需要一个科学的评估方案。
什么是AB增量?
▐ AB实验简介
AB实验本质是通过流量分流的形式进行策略实验,实验组和对照桶保证同质的前提下,实施不同策略来验证策略带来的影响。常见的流量切分方法有域、层、桶,其中域是流量的集合,层是流量的子集,桶是流量切分的最小单位。AB增量可以在域/层/桶的维度上进行计算,并基于此计算策略效果的显著性。
▐ AB增量计算
AB增量计算公式:
以DAU增量为例:
分别计算实验组和对照组的DAU人均值(即手淘来访率):实验组DAU/实验组UV
然后计算实验组和对照组DAU人均值的差值,得到淘宝来访率增量
最后用实验组UV*淘宝来访率增量得到实验的DAU增量
根据上述计算逻辑可知,淘宝来访率增量直接反映了策略的人均效率;DAU增量反映了策略的总收益,受人均淘宝来访率和策略规模的综合影响。
裂变污染及科学评估方案
▐ 裂变污染原理
AB实验方案设计
理想情况下,AB实验中,实验组是能够参与策略玩法的用户群,对照组是不能参与策略玩法的用户群。
但是有社交裂变玩法的情况下,AB实验设计常见分为:完全策略实验、非完全策略实验。
完全策略实验中,对照组的用户感知不到策略,即使通过分享路径进入产品,也提示没有玩法;如业务有无实验/新财年策略实验等
非完全策略实验中,受舆情/技术成本等客观业务因素限制,对照组没有入口,但通过分享路径可以参与或部分参与玩法
裂变污染原理与方向性
之所以称为“污染”,是因为按照策略理想效果,对照组本不该受该策略的影响,但现实中受社交裂变不可控因素,实验桶用户在进行分享裂变时对对照组用户的来访/时长/交易带来影响,导致对照组的指标水平上涨,影响到AB增量计算的现象。
根据AB实验设计的方案不同,实验组和对照组受社交裂变污染的程度不同。
在完全策略实验中,污染是单向的,仅对照组受污染,在这种情况下,仅对照组受污染影响指标水位上涨导致AB增量计算偏低;
在非完全策略实验中,由于对照组在一定程度上可以参与策略玩法,在受实验组裂变影响后,可以反过来继续影响实验组/对照组自身。在这种实验设计方案中,污染是双向的,实验组和对照组的指标水位均受污染影响变高,理论上AB增量的计算可能偏高、也可能偏低,实际应用中大多实验桶受反向污染程度低,结果往往偏低。
以DAU为例:
▐ 污染科学评估方案
增量目标确立
根据业务北极星目标确定增量处理指标,是日指标还是周期性指标,常见的有手淘增量DAU/增量DAC/增量主动DAU/增量主动LT7/增量LTV等,前两者属于日指标,后两者为周期性指标,日指标的评估方案相对灵活。
污染用户定义
进行污染处理的第二步,需要首先明确哪些用户是被污染的用户,再决定对于污染用户的指标处理方式。污染用户的追踪分为以下几个步骤:
污染方向性:根据AB实验设计方案确立是否为单向/双向污染,其中单向污染用户为参与策略的所有空桶用户,双向污染为参与策略的所有对照组用户(含实验组裂变召回/对照组裂变召回/主动搜索/历史分享链接进入等)+被对照组裂变召回的实验组用户,具体根据各个业务实际情况而定
污染口径:
窄口径:独占用户:被污染召回,且是实验策略的手淘独占用户;首触用户:被污染召回,且是实验策略的手淘首触用户
宽口径:按照实验设计本不该参与策略,但实际参与策略的所有用户
窄口径与宽口径区别:窄口径相对严格,对于独占口径,非独占用户也有可能因为该场景访问并被路由到其他场景;对于首触口径,非首次触达的用户首次可能也是非主动来访,首次触达来自该策略。具体业务采用的污染口径可根据业务实际情况而定,大部分情况下会采用宽口径去定义
污染周期定义
一般根据业务的情况,有两种污染周期定义方法:
当天被污染的用户:适用于社交裂变行为不对后续来访有长期影响的裂变形式,如一次性助力、助力链接时效性短等场景
历史累计被污染过,即纳入污染用户范围:适用于社交裂变行为大概率会影响后续来访,如分享组队、分享退出后有强引导的回访教育策略等
注:长期存在的常态业务往往不适合用历史累计口径,涉及污染用户量过大会加入过多稀疏行为用户进而影响后续评估的准确性和稳定性,可根据业务形式评估影响周期,取近期累计污染周期等折中口径,如近7天等
增量概率估计
污染对于增量的影响本质在于,因为裂变影响导致用户不确定性的行为转化为一种确定性的行为。以DAU增量为例(下同)说明:
自然访问概率:本身在裂变当日有一定的自然访问淘宝概率,这里用条件概率P(来访淘宝|不受裂变影响)来代替
真实访问概率:受社交裂变影响,将来访这一概率事件转化为确定性事件 P(来访手淘|受裂变影响)=1(确实访问了淘宝)
裂变增量uplift:所以污染的增量uplift来源为P(来访淘宝|受裂变影响)-P(来访淘宝|不受裂变影响)=1-P(来访淘宝|不受裂变影响)
那么增量污染评估的核心在于评估用户不受社交裂变影响时的条件访问概率P(来访淘宝|不受裂变影响)。
注:对于个体的条件概率估计具有较大的有偏性,但群体估计可以一定程度解决有偏的问题。
因此在上述AB增量计算公式的基础上,裂变污染评估AB增量为:
接下来介绍已经在互动业务上验证的4种增量概率估计方案。
指数平滑估计
当时间数列无明显的趋势变化,可用一次指数平滑估计,其公式为:
可见,本期估计值是上期估计值与以a为折扣的上期实际值与估计值误差之和,按照污染用户群体近期t-n日(合理的n值可根据具体业务进行平稳性测算决定)日均访问概率作为平滑估计当日不受裂变影响的手淘来访条件概率,该方法适用于长期存在的常态业务,污染用户的淘宝访问概率相对稳定,因此可用来作为对于P(来访手淘|不受裂变影响)的估计。
同比膨胀系数估计
对于非常态业务,i.e.大促主互动,短期大量的DAU规模且大促期的节点性非常突出,平滑趋势估计方法不再适用。
这种场景可尝试在指数平滑的基础上,使用同比膨胀系数来模拟估计:
以t-7为例,膨胀系数t=去年t日DAU/去年(t-1~t-7日)日均DAU
并以该膨胀系数作为今年同期的膨胀系数
今年t日DAU=今年(t-1~t-7日)日均DAU x 膨胀系数t
对于节点趋势爆发性业务,可采用分段爆发系数来做平滑归一,每个分段内采用相同的膨胀系数,以提升稳定性。
但这种方法未考虑年同比影响,且多个指标膨胀系数不一致,滚动计算成本相对较高。
大盘膨胀系数估计
与同比膨胀系数估计方法类似,在无往年数据可借鉴的情况下,可以采用今年的大盘膨胀系数来进行估计,其中实验桶采用淘宝大盘进行膨胀系数的计算,对照组采用未参与策略的淘宝大盘用户进行膨胀系数的计算。
同质人群抽样
上述三种方法均是根据污染用户自身历史水平来估计当日淘宝访问的条件概率,另一种思路是根据污染用户的估计目标(treatment)来进行桶内同质人群抽样,以同质人群的当天淘宝访问作为污染用户的手淘访问概率,这种方案可根据具体用户计算增量处理后的p值及显著性。一般的同质抽样有以下两种:
确定性目标抽样:以淘宝DAU增量目标为例,在污染用户所在的桶内,根据污染用户规模,抽取和污染用户在[t-n]抽样周期内,在多个维度上具有相同分布的同质人群,指标选取以【与增量评估指标相关性高】为标准来进行选取。
若估计手淘DAU指标,可选取“淘宝活跃度”标签作为抽样标准(在抽样规模充足的条件下可加入一下用户基础标签/频道访问标签等);
其中数值型字段如成交金额需要进行分层抽样,同时需要重点关注分层粒度,分层过粗会导致抽样不精准、过细会导致可抽样用户不足。
但这种方法也存在一定的局限性,如可抽样人群较少、数值型字段取值区间较大数据分布稀疏,对于同质抽样的准确性有较大的影响。
PSM抽样估计:采用PSM方法进行同质人群抽样,该方法在策略评估域有广泛的应用,相对确定性目标抽样较为黑盒,具体不再赘述~
同质性校验:同质性抽样后需要对污染用户和同质用户做treatment同质性校验:对于污染用户和抽样的同质用户,在类别型(左图)/数值型(右图)treatment的抽样周期内,需要具有高度的分布重合度(通常认为在diff在5%内符合同质性校验)。
▐ AB增量科学评估总结
根据各业务实验方案设计、裂变模式设计、策略规模及特点选取合适的评估方案。
参考文献
《AB实验:科学归因与增长的利器》
《关键迭代》
《时间序列分析》
团队介绍
我们是淘天集团用户技术团队,致力于基于淘宝天猫全域数据,建立多领域的用户全生命周期数据和价值体系,通过主动的数据分析来挖掘和发现电商业务各场景的增长机会。团队成员具备丰富的数据分析和算法解决方案设计经验,能够利用运筹优化、博弈论、因果推断、机器学习建模等方法对手淘内各场景的权益效率提升、用户留存等问题进行建模分析,实现用户规模及用户粘性的增长。还专注于数据产品建设,负责科学分析能力产品的落地,包括多维分析、归因分析、智能tips等多种数据科学组件。
¤ 拓展阅读 ¤
3DXR技术 | 终端技术 | 音视频技术
服务端技术 | 技术质量 | 数据算法
相关文章:

泛社交裂变场景下AB增量科学评估方案
在数据驱动业务的大环境下,AB实验是对策略效果进行评估的重要指南针,并广泛应用在用增/推荐/搜索/内容/商业化等多个领域,尤其是综合评估多个策略对于大盘影响的对比效果,AB增量的计算就尤为重要。 背景 现在普遍常见的泛社交裂变…...

【无标题】json报错
操作失败,JSON parse error: Cannot deserialize value of type com.alibaba.fastjson.JSONArray from String value (token JsonToken.VALUE_STRING); nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize valu…...

MyBatis中延迟加载,全局和局部的开启使用与关闭
文章目录 MyBatis中延迟加载,全局和局部的开启使用与关闭1、问题提出2、延迟加载和立即加载延迟加载立即加载 3、三种对应的表关系中的加载4、打开全局延迟加载(实现一对一的延迟加载)5、实现一对多的延迟加载(将上面设置的全局延…...

MyBatis增删改查基础及其xml文件
目录 一.增删改查基础 1.增 增Insert 获取自增ID 对insert参数进行重命名 2.删 3.改 4.查 1)对MySQL查询结果进行重命名 从MySQL层面--as 从mybatis层面--Results注解 复用Results的定义 2)配置自动转换驼峰命名(推荐) 二.Mybatis xml配置…...

视觉学习(1)—— 理论
一、提问 初入视觉的几个问题: 1、视觉是怎么被控制的 2、怎么让视觉启动 3、视觉需要完成什么东西 4、视觉启动如何将完成的东西反馈给我 二、回答 1、视觉都是通过通讯协议控制,如串口、Modbus TCP等协议 2、视觉中的所有功能块都在流程中&…...

pip 常用指令 pip list 命令用法介绍
📑pip 常用命令归类整理 pip list 是一个用于列出已安装的 Python 包的命令。这个命令会显示出所有已安装的包,以及它们的版本号。 pip list 命令有以下参数 -o, --outdated:列出所有过时的包,即有新版本可用的包。-u, --uptod…...

【DP】62.不同路径
题目 法1:二维DP 必须掌握! class Solution {public int uniquePaths(int m, int n) {int[][] matrix new int[m][n];Arrays.fill(matrix[0], 1);for (int i 0; i < m; i) {matrix[i][0] 1;}for (int i 1; i < m; i) {for (int j 1; j <…...

大数据、知识图谱和强化学习的综合应用
大数据、知识图谱和强化学习各自在不同的方面都发挥了重要作用,它们分别涉及了大规模数据的处理和挖掘、基于图的数据结构和信息提取,以及基于奖励反馈的决策制定。将它们结合使用,可以构建出更加强大和智能的系统。以下是一些可能的应用场景…...

MFC使用高速绘图控件high-speed Charting Control绘制柱形图
1. 创建MFC单文档工程BarChartDemo。 2. 在工程文件夹下新建文件夹ChartCtrl,将ChartCtrl源码放入,如下图所示。在工程中添加这些项,项目——添加——现有项,全部添加。 3. 添加一个对话框,ID为IDD_DLG_BAR,类名为CBarDlg。 4. 在对话框中添加Custom Control控件,将控…...

vue3 H5项目中实现PDF预览
是需要npm i vue-pdf-embed 安装这个插件的,可兼容ios/Android,下面是本人的使用实例 <template><div class"conten_box"><vue-pdf-embed v-if"pdfSource.url" :source"pdfSource" /></div> <…...

【WebRTC---源码篇】(十一:一)采集编码发送期间使用时间戳的详细解读
一、时间戳定义 1、 NTP时间 NtpTime RealTimeClock::CurrentNtpTime() //获取从1900-01-01 00:00.00到当前时刻经过的时间 int64_t RealTimeClock::CurrentNtpInMilliseconds() //获取从1900-01-01 00:00.00到当前时刻经过的毫秒数,ms int64_t rtc::TimeUTCMicros() //获取…...

Python学习路线 - Python语言基础入门 - Python异常、模块与包
Python学习路线 - Python语言基础入门 - Python异常、模块与包 了解异常什么是异常bug单词的诞生异常演示 异常的捕获方法为什么要捕获异常捕获常规异常捕获指定异常捕获多个异常捕获异常并输出描述信息捕获所有异常异常 else异常的finally 异常的传递Python模块什么是模块模块…...

eventbus,在this.$on监听事件时无法在获取数据
问题:vue中eventbus被多次触发,在this.$on监听事件时,内部的this发生改变导致,无法在vue实例中添加数据。 项目场景 一开始的需求是这样的,为了实现两个组件(A.vue ,B.vue)之间的数据传递。 页面A,点击页面…...

【Python必做100题】之第二十五题(统计字符)
题目:输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数 代码如下: string input("请输入字符串:")char 0 number 0 space 0 other 0for i in string:if i.isalpha():char 1elif i.isdigit():number 1eli…...

开发语言:ArkTS
简介 ArkTS是华为为鸿蒙操作系统(HarmonyOS)开发的一种应用开发语言。这种语言在TypeScript(简称TS)的基础上进行了扩展,以更好地适应鸿蒙系统的特点和开发需求。ArkTS不仅继承了TS的所有特性,而且还对TS的…...

Qt中字符串转换为JS的函数执行
简介 在 QML 中,将 JavaScript 字符串转换为函数通常涉及使用 Function 构造函数或 eval() 函数。但是,QML 的环境对 JavaScript 的支持有一定的限制,因此不是所有的 JavaScript 功能都可以在 QML 中直接使用。 以下介绍都是在Qt5.12.1…...

TCP/IP:从数据包到网络的演变
引言 TCP/IP协议的起源可以追溯到20世纪60年代末和70年代初,美国国防部高级研究计划局(ARPA)研究开发一种可靠的通信协议,用于连接分散在不同地点的计算机和资源。 在当时,计算机之间的连接并不像现在这样普遍和便捷…...

闪存驱动器与机械硬盘与固态硬盘
目录 U盘(闪存驱动器) 固态硬盘(SSD) 机械硬盘(HDD) 目前主流 U盘(闪存驱动器) U盘是便携式存储设备,内部采用闪存芯片作为存储介质。它们通常具有小巧轻便的外形&am…...

java String转asc码,然后ascII再转四位的16进制数。
理论知识补充: char是Java中的保留字,表示一种数据类型。与别的语言不同的是,char在Java中是16位的,因为Java用的是Unicode编码。不过8位的ASCII码包含在Unicode编码中,其值对应十进制的表示范围是0~127。 char是Java八…...

零基础制作宠物用品小程序
随着人们对宠物用品的需求不断增长,越来越多的人开始探索如何制作一个专业的宠物用品小程序。而乔拓云作为一款功能强大的在线商城制作工具,成为了许多商家的首选。本文将详细介绍如何使用乔拓云制作宠物用品小程序,让你轻松上手,…...

【SpringBoot篇】解决缓存击穿问题① — 基于互斥锁方式
文章目录 🌹什么是缓存击穿🌺基于互斥锁解决问题🛸思路 🏳️🌈代码实现 🌹什么是缓存击穿 缓存击穿是指在使用缓存系统时,对一个热点数据的高并发请求导致缓存失效,多个请求同时访…...

系列一、GitHub搜索技巧
一、GitHub搜索技巧 1.1、概述 作为程序员,GitHub大家应该都再熟悉不过了,很多时候当我们需要使用某一项技能而又无从下手时,通常会在百度(面向百度编程)或者在GitHub上通过关键字寻找相关案例,比如我想学…...

35.java后端面试宝典
一、自我介绍。 我叫什么,这次是应聘什么岗位,会什么技术,会什么框架,熟练掌握框架之间的整合技术,做过什么项目并且介绍主要做了什么,并且可以为公司带来什么价值。 总的来说,初级Java工程师岗…...

Linux 磁盘空间占满故障解决方法
故障排查: 使用命令查看磁盘使用量 # 使用人类可读的格式(预设值是不加这个选项的...) df -h # --inodes 列出 inode 资讯,不列出已使用 block df -i # 查看当前目录下各个文件及目录占用空间大小 du -sh / 情况一:一般磁盘空间满了&a…...

让生活更智能,P1600边缘智能网关带你进入智能家居新时代
一、什么是P1600边缘智能网关? 在科技日新月异的今天,我们的生活已经被各种智能产品所包围。而在这个智能化的浪潮中,P1600边缘智能网关以其独特的优势,成为了智能家居的重要组成部分。那么,什么是P1600边缘智能网关呢…...

Java与前端:2023年的真实状况与焦虑解读
一、引言 在2023年,IT圈中流传着一些关于Java和前端的言论,这些言论引起了广泛的关注。有些人认为“Java已死、前端已凉”,而另一些人则持不同观点。那么,这些言论背后的真相是什么?它们是在贩卖焦虑吗?本…...

adb 基本命令合集
1.获取所有的包信息: adb shell pm list packages com.yu.weskul 2.清除APP缓存 adb shell pm clear <package-name> 3.查看当前应用及Activity adb shell dumpsys window | findstr "mCurrentFocus" 4.查看应用详细信息 adb shell dumpsys pack…...

[RK-Linux] RK3399支持M.2 NVMe SSD启动
延续《[RK-Linux] 从主线U-Boot移植PCIe及其PHY驱动到RK3399 U-Boot》 启动流程: maskrom -> loader(从 eMMC 存储器加载) -> u-boot(从 eMMC 存储器加载)-> kernel (从 M.2 NVMe SSD 加载)-> rootfs (从 M.2 NVMe SSD 挂载)配置从 M.2 NVMe SSD 启动: …...

LTO-3 磁带机种草终于是用上了
跑来跑去,买了不少配件,终于是把这磁带机给用上了,已经备份好了300 多 GB 的数据。 我们用了 NAS 的数据压缩功能,把需要备份的文件用 NAS 压缩成一个 Zip 文件,如果你可以 tar 的话也行。 这样传输速度更快…...

【全网首发】洛谷P1020 [NOIP1999 提高组] 导弹拦截
P1020 导弹拦截 の 题目传送门。 解题思路 显然,第一问求的是最长不上升子序列。 于是接下来直接抛开第一问不谈,也不考虑优化,直接考虑第二问。待会就知道原因了。 引理:Dilworth 定理 狄尔沃斯定理亦称偏序集分解定理&#…...