Netflix技术博文:如何提高实验效率?
原创:MarTechApe
不管是东京的通勤路上,还是洛杉矶的海滩上,还是柏林的宿舍里,都能看到Netflix活跃在大家的生活里,并为全球超过1.39亿会员带来欢乐。最近这几个月,Netflix最受期待的原创剧《Emily in Paris》更是受到万众瞩目。
除了剧目制作上让用户感受到耳目一新之外,Netflix对用户体验的精细把控其实是从用户注册这一步就开始了的。通过不断地从数据中学习和完善产品,Netflix通过实验为客户带来最佳体验。
不过,大规模实验面临着许多挑战,即使是Netflix这样的一流企业也不例外。即使他们已经搭建了异常先进的A/B测试基础架构,但他们仍然在不断地提高实验的效率,也就是,如何可以合理地缩短实验时间?这是因为,提高实验效率能带来很多好处:
在相同的时间内就可以运行更多的测试了,从而增加了为用户找到更好的体验的机会。
可以快速测试各个领域,以找出最佳的投资领域,为未来的创新作准备。
更早地结束实验,就可以更快地为用户带来更多的乐趣。
当然,不可否认的是,进行一个短期的实验也有风险👇
通常,真正的测试时间要比根据功效分析(power analysis)所确定的最短时间长得多,这是为了缓解潜在的季节性波动(例如,一天中的时间,一周中的某天,不同周之间等等)、识别到新奇效应的影响,或考虑到某些实验效果可能需要更长时间才能够显现出来。
假期和某些特殊事件的发生,例如新标题的发布,可能会吸引一些不具有代表性的观众。使得测试结果难以推广。
过早地将实验运用到实战中(例如发生HARKing或p-hacking)可能会增加误报率,导致努力白费。
因此,为了通过实验开发出科学的框架,以加快产品创新的速度,我们要回答两个关键问题:
1)季节性对我们的实验有多大影响?
2)如果季节性不是一个大问题,我们如何以科学的原则尽早结束实验?
以下就是Netflix对上面两个问题的回答:
1. 使用元分析(meta-analysis) 测试季节性的影响
尽管季节性迫使大多数测试都无法缩短测试时间,但也不是所有测试都同样脆弱不堪。比如,如果我们测试“Continue”这个按钮的不同外观是否对访问者继续访问有所影响,那么周一访问者与周五访问者在审美偏好上不应该呈现出太大差异,所以这类测试就不太会收到时间的影响。
另一方面,在新的原创剧刚刚发布时把它作为背景通常有更大的吸引力,因为访客更容易注意到新剧,从而更可能产生加入会员的想法。因此,关键是要识别那些不受时间影响的测试,并使其更有效率地运行。这对技术和经验的有效结合具有很高的要求。
我们的秘密武器是元分析(meta-analysis),这是一种简单而有效的用来分析相关的测试的方法。我们采用这种方法来确定随时间变化的实验效果。这种方法在医药行业中的一个常见的运用就是将多个独立研究的结果相结合,以加强实验功效并改善对实验结果的估计。
大致上的意思,可以用下面这幅图的例子来说明。在下面的两幅图中,分别有五项独立的测试(test1到test5):
如果这五项独立研究的结果一致,就像上图(左侧)显示的那样,那我们就可以将数据与固定效应模型拟合,产生更可信的估计。虽然已知这五项单独测试的治疗效果在统计学上都没有统计学意义,但他们的实验结果的方向性均为负(如图所示从test1到test5,他们的区间基本都在0值左侧,也就是小于0),当我们将它们汇总在一起后,汇总后的模型就会产生更准确的估算值(见上左图中fixed effect)。
反之,如果五项独立研究的结果不一致(如上图右侧所示),也就是说,它们中既有负的结果又有正的结果,则元分析将默认它们的异质性较高,并调整为随机效应模型以适应更宽的置信区间(见上面右图中future perd.interval)。
总而言之,可以利用模型拟合过程(即固定效应模型与随机效应模型)来测试跨时间维度(例如,一天中的时间,一周中的某天,周与周之间,事前/事后)的异质性实验效果是否存在。
我们在A/B测试中对注册流程进行了全面的回顾性研究。结果发现,大多数测试并未随时间显示出明显的异质实验效果。因此,我们就可以早日结束一些测试,进行更多创新,尽早为我们的潜在客户带来更好的体验。
2. 确定最佳实验结束时间
假设说某个实验处理,既跟时间没有关系(通过使用元分析评估出此结论)而且样本也足够大,那我们就可以应用多种不同的策略来尽早且合理的结束实验。
简单地说,我们可以不断地偷看实验结果,但是有时这样的做法会造成假阳性,这时即使实验并没有效果,我们可能会误以为它有效果。此时则可以使用一些方法来防止这种偷窥中(或者用更正式的说法是:中期分析)假阳性的发生(I型错误)。
我们用回顾性研究评估了几种方法,例如序贯概率比检验(SPRT),序贯三角检验,以及组序贯实验(GST)。在我们的研究中,GST表现最好且最具实用价值。它通常被广泛的应用到临床实验中,样本随着时间逐渐积累增多,这非常适用于我们的案例。
它的思路大致是这样的:
在测试开始之前,我们先确定所需的最短运行时间和中期分析的次数。
然后,GST将所有可容许的I型错误总数(例如0.05)分配到所有中期分析中,以使I型错误加和起来为I型错误总数。这样,每个中期测试都比定期的偷看更为保守。
一旦统计学上足够显著,我们就可以立即停止实验。当观察到效果明显大于预期时,通常就是这种情况。
下图展示了五次中期分析下,GST的临界值以及单独和累积的Alpha消耗。通过这样的策略,我们可以节省大量的实验时间,同时能够更早且更准确的估计出效果的临界点。尽管说,获得的置信区间略宽,而且效果有些许的夸大。当我们想要快速测试某个想法,而且对效果的准确性要求不高,或者当我们发现一个很严重的负面影响而需要提前结束测试时,这种方法最有效。
下图展示了功效分析固定样本大小情况下,一个成功的GST提前停止案例(FSS完全停止)。由于观察到的效果足够大,我们可以使用相似点估计更早地停止测试。
整合决策支持的实验平台
现在,我们的初步研究已经完成,我们正在积极地拓展元分析,优化最佳停止时间,异质性效果检测,以及将更多内容扩展到更大的Netflix实验和因果推理平台中。
A/B测试是解决一些列产品问题的重要实验方法,在大型企业以及科技大厂的中都非常常见,在面试考察中也十分关键。深入了解A/B测试,能让你快速适应万变不离其宗的大厂数据分析团队工作模式。想要上手企业级项目,获得关于数据产品的实操经验,培养科技公司必备的商业思维,加入科技大厂数据分析团队?MarTechApe的《A/B测试企业级实战训练营》以真实商业场景中的复杂A/B测试问题为项目背景,让学员在两个月的时间里,使用百万量级原始数据,搭建完整的A/B测试流程!
在过去开办的四期《训练营》中,我们为顶尖科技公司输送数据能力强、实验经验丰富、统计基础扎实的数据人才。不论你本来是什么背景,都能通过这门课程,打开盛行“测试文化”的互联网高科技公司的大门!
以下为往期学员的战绩榜:
🔥目前,MarTechApe《A/B测试企业级实战训练营》正式火热报名第5期!🔥
每一期训练营,我们只招收20名学生。
👇点击下方按钮,了解项目详情!👇