飞天发布时刻:2024年 Forrester 公有云平台Wave™评估报告解读 了解详情
写点什么

推荐系统衡量:ABtest 框架

  • 2019-06-24
  • 本文字数:4581 字

    阅读完需:约 15 分钟

推荐系统衡量:ABtest 框架

无法衡量就无法优化,对于互联网产品而言,不仅是推荐系统,整个 app 系统的更新迭代必然需要建立一套度量衡,来把控整个流程优化的方向。而 abtest 系统就是一个很好的进行变量控制和优化方向选取的工具,循环:衡量-发现-迭代-验证。所谓精细化迭代是一种建立在数据基础上的思维方式——用较少的成本获得较好的效果。无数据,不优化, 线上分流实验是进行推荐算法优化的必由之路。并且 abtest 不仅是推荐迭代的利器,他还可服务于所有需要逐步完善的产品迭代。有人说为什么需要 abtest ,为什么不能够前后进行实验比较;因为同时期测试的 abtest 非常有必要的原因是不同时间的测试无法说明 b 比 a 好,通常时间也是一个变量,比如电商的双十一等。


在网络分析中,A / B 测试(桶测试或分流测试)是一个随机实验,通常有两个变体,A 和 B 。利用控制变量法保持有单一变量的前提下,将 A 、B 数据进行对比,得出实验结论。AB 是一种科学的利用数据证明方案可行性的手段,一般在网站中广泛使用。 通过 abtest 系统对迭代方案进行实验, 并结合数据进行分析,反向再验证和驱动方案,是一个发现问题、提出假设、印证猜想、不断优化的过程。合适的推荐方法是要经过不断的实验去验证,验证的过程也是在校验数据,从而优化推荐系统策略,最终提升用户新增和留存。

1. 指标定义

在 abtest 前,我们需要梳理出我们关心的若干指标,并选择某个指标作为北极星指标,如点击率、转化率、浏览时长、gmv 、客单价等,未来讨论的推荐系统的相关优化也将围绕若干个目标进行。也有人将核心的指标成为北极星指标,北极星指标经常在增长黑客中被使用。来自微软 Bing 的例子:Bing 希望优化长期查询份额 ( 市场中的查询百分比 ) 和长期收入。短期内,通过展示更多广告很容易赚钱,但它可能会损害用户体验。所以其实短期和长期指标的定义也很重要,如何通过 abtest 平衡和评估长短期收益。

2. 了解几个事实

不是每个想法都是好的、大部分想法都是不好的;Many times, we have to tell people that their new beautiful baby is actually…ugly 。


根据微软官方发布的上万次 abtest 实验数据来看:


  1. 1/3 of ideas were positive ideas and statistically significant

  2. 1/3 of ideas were flat:no statistically significant difference

  3. 1/3 of ideas were negative and statistically significant

3. 实验管理平台

3.1 实验报告

实验报告需要对脏数据进行过滤,并做一定的效果平滑,效果波动告警。异常值会产生明显的偏差: 足以导致错误的统计结果。例:亚马逊上有围绕 100,000 名用户进行的 abtest 实验,其中 2% 的用户的客单价为 30 美元, 2% 的用户客单价是 1200 美元,有时 ( 很少 ) “用户”购买足以显着扭曲结果。

3.2 分流 & 分层策略

如果流量不进行分层、分流可能会导致流量饥饿,即实验一在进行中占用了全站的 80% 的流量,实验二就只能使用 20% 的流量。因此良好的分层、分流规则可以充分使用网站的流量。常见的分流策略有:Random – 随机分流,用于可变结果集,Partition By User – 按用户切分,同一用户永远看到同样结果,Partition By Category – 按分类切分,针对不同分类测试算法针对性。在分流的上层则会考虑分层,并且在互联网公司中应用广泛。


通常网站会利用分层和分流的机制保证本站的流量高可用,原因有以下几点:


1)网站的流量是有限的


2)实验的对象是多层的或同一层内互不干扰的。多层:例如网站不仅仅有 UI 层 ( 界面 ) ,通常还有算法层等;同一层内互不干扰:例如网站的推荐位有多个 ( 首页推荐位、商详页推荐位 ) 。


3)AB tests 的需求是大量的


注意点:幂等-均匀化-并行-互斥; 分层实验,促进流量的最大化利用。



规则 1. 正交、互斥


在介绍分层规则之前,先介绍一下正交和互斥的概念。


1)正交,如何理解正交?



例如:我们有 100 个兵乓球,随机拿出来 50 个染成蓝色,50 个染成白色,则我们有蓝色、白色兵乓球各 50 个,现在我们把这 100 个兵乓球重新放在袋子中摇匀,随机拿出 50 个兵乓球,那么这 50 个兵乓球颜色蓝色和白色各 25 。当然举这个例子并不是非常的恰当,因为样本太少了,此处举例只为说明正交的意义。


正交实验:每个独立实验为一层,层与层之间流量是正交的,一份流量穿越每层实验时,都会再次随机打散,且随机效果离散。


  1. 互斥,如何理解互斥?


例如:我们有 100 个兵乓球,每 25 个为一组,分别染成蓝、白、橘、绿。若 X 实验拿的是蓝色、白色则 Y 实验只能拿橘色和绿色,我们说 X 实验的和 Y 实验是互斥的。


互斥实验:实验在同一层拆分流量,且不论如何拆分,不同组的流量是不重叠的。


其中,分流及分层实验设计基于 Goolge 论文:


Overlapping Experiment Infrastructure : More, Better, Faster Experimentation


https://dl.acm.org/citation.cfm?id=1835810


流量从上往下流过分流模型:



1)规则详述:


域 1 和域 2 拆分流量,此时域 1 和域 2 是互斥的。


流量流过域 2 中的 B1 层、B2 层、B3 层时,B1 层、B2 层、B3 层的流量都是与域 2 的流量相等。此时 B1 层、B2 层、B3 层的流量是正交的。


扩展:流量流过域 2 中的 B1 层时,又把 B1 层分为了 B1-1 ,B1-2 ,B1-3 ,此时 B1-1 ,B1-2 ,B1-3 之间又是互斥的。


根据以上规则我们可以不断的在此模型中增加域、层,并且可以互相嵌套。这要与实际的业务相匹配,拆分过多的结构可能会把简单的业务复杂化,拆分过少的结构又可能不满足实际业务。


2)使用场景


例 1:B1 层、B2 层、B3 层可能分别为:UI 层、搜索结果层、广告结果层,这几层基本上是没有任何的业务关联度的,即使共用相同的流量 ( 流量正交 ) 也不会对实际的业务造成结果。但是如果不同层之间所进行的试验互相关联,如 B1 层是修改的一个页面的按钮文字颜色,B2 层是修改的按钮的颜色,当按钮文字颜色和按钮颜色一样时,该按钮已经是不可用的了。因此建议同一类型的实验在同一层内进行,并且需要考虑到不同实验互相的依赖。


例 2:域 1 的此种分流的意义在于,当我们做一个实验,并且希望其他任何实验都不能对我实验进行干扰,保证最后实验的可信度。

3.3 AA/AB 测试要点

1)候选策略+预测模型作为最小的考察单元


2)通过规则配置 ABtest:配置流量切分,候选策略及预测模型


3)重视抽样误差


4)关注时间周期效应

3.4 流程

1)随机分组 ( ABCDE… ) :A - 控制组,与线上一致;B - 测试组;C …


2)收集相关数据 ( 对决策有用的数据 )


3)数据分析,必须通过假设检验来确定差异不是来自于偶然,通过因果关系证明变化由测试桶的变化带来。

4. abtest 的那些技术

4.1 为什么灵敏度 ( p-value ) 很重要

p-value 即概率,反映某一事件发生的可能性大小,主要在 abest 中说明实验的提升的显著性,并且往往与假设检验相挂钩。统计学根据显著性检验方法所得到的 P 值,一般以 P < 0.05 为有统计学差异, P<0.01 为有显著统计学差异,P<0.001 为有极其显著的统计学差异。其含义是样本间的差异由抽样误差所致的概率小于 0.05 、0.01 、0.001 。实际上,P 值不能赋予数据任何重要性,只能说明某事件发生的几率。在实践中建议,运行 A / A 测试,并同时也关注相关指标及 p-value 。 A / A 测试中度量的 P-value 分布应该是统一的,进行 1,000 次 A / A 测试,并检查分布是否均匀,当我们得到异常信息时,则需要纠正一些事情。

4.2 假设检验

假设检验是推论统计中用于检验统计假设的一种方法。而“统计假设”是可通过观察一组随机变量的模型进行检验的科学假说。一旦能估计未知参数,就会希望根据结果对未知的真正参数值做出适当的推论。 统计上对参数的假设,就是对一个或多个参数的论述。而其中欲检验其正确性的为零假设 ( null hypothesis ) ,零假设通常由研究者决定,反映研究者对未知参数的看法。相对于零假设的其他有关参数之论述是备择假设 ( alternative hypothesis ),它通常反映了执行检定的研究者对参数可能数值的另一种 ( 对立的 ) 看法 ( 换句话说,备择假设通常才是研究者最想知道的 ) 。


常见假设检验的种类包括:t 检验,Z 检验,卡方检验,F 检验等等。

4.3 t-test、z-test、p-value、ci ( confidence interval )

1)T 检验,亦称 student t 检验 ( Student’s t test ) ,主要用于样本含量较小 ( 例如 n<30 ) ,总体标准差 σ 未知的正态分布数据。T 检验是用 t 分布理论来推论差异发生的概率,从而比较两个平均数的差异是否显著。


适用条件: 已知一个总体均数;可得到一个样本均数及该样本标准误; 样本来自正态或近似正态总体。


T 的公式:


T=(T-μ)/S/n 的平方根


若 T 值大于临界值,则拒绝原假设,否则不拒绝。


2)Z 检验是一般用于大样本 ( 即样本容量大于 30 ) 平均值差异性检验的方法。它是用标准正态分布的理论来推断差异发生的概率,从而比较两个平均数平均数的差异是否显著。 当已知标准差时,验证一组数的均值是否与某一期望值相等时,用 Z 检验。


Z 检验的步骤 适用条件:已知一个总体均数;可得到一个样本均数及该样本标准误; 样本来自正态或近似正态总体。


第一步:建立虚无假设,即先假定两个平均数之间没有显著差异,


第二步:计算统计量 Z 值,对于不同类型的问题选用不同的统计量计算方法.


如果检验一个样本平均数 ( x ) 与一个已知的总体平均数 ( μ0 ) 的差异是否显著。其 Z 值计算公式为:


Z=(X-μ)/S/n 的平方根


若 Z 值大于临界值,则认为为二者有差异,否则认为没差异。


注:事实上由于总体参数标准差未知,因此一般使用 T 检验。


3)p-value ,就是当原假设为真时,所得到的样本观察结果或更极端结果出现的概率。如果 p-value 很小,说明原假设情况的发生的概率很小,而如果出现了,根据小概率原理,我们就有理由拒绝原假设,p-value 越小,我们拒绝原假设的理由越充分。p-value 代表的是不接受原假设的最小的显著性水平,可以与选定的显著性水平直接比较。例如取 5% 的显著性水平,如果 p-value 大于 5% ,就接受原假设,否则不接受原假设。这样不用计算 t 值,不用查表。p-value 能直接跟显著性水平比较;而 t 值想要跟显著性水平比较,就得换算成 p-value ,或者将显著性水平换算成 t 值。在相同自由度下,查 t 表所得 t 统计量值越大,其尾端概率 p 越小,两者是此消彼长的关系,但不是直线型负相关。

作者介绍

姚凯飞,Club Factory 推荐算法负责人。硕士毕业于上海交通大学,前阿里推荐算法工程师,多年电商及视频推荐经验,目前在出海电商 Club Factory 负责推荐算法工作。


对作者感兴趣的小伙伴,欢迎点击文末阅读原文,与作者交流。

内推职位

算法 &开发工程师


工作地址:杭州市西湖区华星时代广场 B 座


内推邮箱:kaifeiyao@clubfactory.com

公司介绍

杭州嘉云数据科技有限公司成立于 2014 年,业务已覆盖欧美、中东、印度、东南亚 等地区。产品 Club Factory 在购物类 APP 应用下载量印度与阿联酋排名第一、菲律宾排名第二。核心技术团队来自 Facebook、阿里、网易、美 团、迅雷等大中型互联网公司,拥有斯坦福、卡耐基梅隆(CMU)、清华、浙大等院校的 计算机专业背景。2018 年 3 月完成 1 亿美金 C 轮融资,即将 D 轮,欢迎有意向的小伙伴赶紧上车。


本文来自 DataFun 社区


原文链接


https://mp.weixin.qq.com/s?__biz=MzU1NTMyOTI4Mw==&mid=2247491453&idx=1&sn=b42d2b3637c4c9cec0b9ff8ebd4a95e8&chksm=fbd4ad11cca32407ca43c4575fedf8359521305d8defd04c3c5445e9fc88929303e9590545ab&scene=27#wechat_redirect


2019-06-24 08:0016464

评论

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

淘宝商品评论API返回值中的用户等级与信誉

技术冰糖葫芦

API 接口 API 文档 API 测试 API 策略

Apache Flink 2.0-preview released

Apache Flink

大数据 Apache Flink Apache Paimon

16年后,“双11”被推翻重来

趣解商业

淘宝 电商 京东 双十一

“2024,我想和 TDengine 谈谈”征文活动获奖名单揭晓!

TDengine

数据库 tdengine 时序数据库

RTE 2024 隐藏攻略

声网

全域重复数据资产的自动识别与治理策略

Aloudata

数据治理 数据资产 元数据 数据血缘

关于RAG

AIGC.TWang

大模型 AIGC rag

高级程序员的7大特征,你占了几条?

秃头小帅oi

Springboot异步事件配置和使用

不在线第一只蜗牛

Java spring 1024程序员节

Linux运行时动态库搜索路径优先级

不在线第一只蜗牛

Linux 运维 1024程序员节

Zabbix 数据对接观测云最佳实践

观测云

zabbix

如何衡量研发效能度量的价值?

思码逸研发效能

DevOps 研发效能 效能度量 研发效能度量 思码逸

LeetCode题解:89.格雷编码,归纳法,详细注释

Lee Chen

软件测试学习笔记丨Selenium键盘鼠标事件ActionChains

测试人

软件测试

抖音的API有什么应用?

科普小能手

API 接口 API 测试 抖音商品详情API接口 抖音数据采集 抖音API接口

提升数据管理效率:ETLCloud与达梦数据库的数据集成

RestCloud

数据库 数据同步 ETL 数据集成 达梦数据库

鸿蒙应用示例:仿钉钉日历新建日程

zhongcx

基于CRISPRCas9技术开发的用于肿瘤突变负荷(TMB)测量的新型FFPE

INSVAST

数据分析 基因数据分析 生信服务

LeetCode题解:2357. 使数组中所有元素都等于零,排序,详细注释

Lee Chen

Linux内存泄露案例分析和内存管理分享

京东科技开发者

软件测试学习笔记丨Selenium屏幕操作事件TouchActions

测试人

软件测试

淘宝1688跨境电商官方接口接入全攻略,跨境卖家必知

tbapi

淘宝数据采集 1688代采系统 1688数据采集 淘宝官方接口 1688官方接口

点赞!我的同事入选福布斯了

望繁信科技

数字化转型 流程挖掘 流程资产 流程智能 望繁信科技

推荐系统衡量:ABtest 框架_软件工程_DataFunTalk_InfoQ精选文章