推荐系统衡量:ABtest 框架

栏目: 编程工具 · 发布时间: 5年前

推荐系统衡量:ABtest 框架

文章作者:姚凯飞 Club Factory

编辑整理:Hoh Xil

内容来源:作者授权发布

出品社区:DataFun

注:欢迎转载,转载请注明出处

无法衡量就无法优化,对于互联网产品而言,不仅是推荐系统,整个 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 的需求是大量的

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

推荐系统衡量:ABtest 框架

规则 1. 正交、互斥

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

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

推荐系统衡量:ABtest 框架

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

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

2) 互斥,如何理解互斥?

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

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

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

Overlapping Experiment Infrastructure : More, Better, Faster Experimentation

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

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

推荐系统衡量:ABtest 框架

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负责推荐算法工作。


以上所述就是小编给大家介绍的《推荐系统衡量:ABtest 框架》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Beginning iPhone and iPad Web Apps

Beginning iPhone and iPad Web Apps

Chris Apers、Daniel Paterson / Apress / 2010-12-15 / USD 39.99

It seems that everyone and her sister has developed an iPhone App—everyone except you, the hard-working web professional. And now with the introduction of the iPad, you may even feel farther behind. B......一起来看看 《Beginning iPhone and iPad Web Apps》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

随机密码生成器
随机密码生成器

多种字符组合密码

SHA 加密
SHA 加密

SHA 加密工具