写点什么

Spotify 的大规模实验

  • 2016-12-21
  • 本文字数:2196 字

    阅读完需:约 7 分钟

Spotify 的实验主管 Ben Dressler 认为,要扩大 A/B 测试的规模以便同时进行大量的实验,就需要调整流程和平台,这也可能影响企业文化。使用对照实验进行产品研究有助于审视我们对客户实际使用产品方式的设想,检查这些设想是否真的影响用户行为。

Dressler 说道,绝大多数时候,用户同时参与几个 A/B 测试是没有问题的,因为随机分配会将影响均摊到测试组中。但是,如果我们给用户造成了相互冲突的体验,这就有问题了,例如在一个测试中使用白色字体,而在另一个测试中使用白色背景。

Dressler 在 2016 年 GOTO Berlin 大会上作了关于构建Spotify 的实验文化的发言。InfoQ 对大会进行了报导,并提供了大会相关的问答、内容总结和文章。

InfoQ 在 Dressler 发言后采访了他,讨论了公司应该进行实验的原因、扩展 A/B 测试的方法以及当人们怀疑 A/B 测试时我们能做什么。

InfoQ:公司为什么应该进行实验?

Ben Dressler:多数公司和机构都努力影响某个成果。在像 Spotify 这样的产品驱动的机构中,这些成果通常就是一套业务度量标准,基于大量的发生特定动作的客户,如购买东西或者继续使用产品。通常员工会有一些关于最好实现该目的的方法的创意。收集大量高质量的关于这些顾客的数据是一个很好的方式,它能促进我们理解哪些因素促使这些关键行为更可能发生,哪些使其更不可能发生。但是不进行对照实验,我们不可能知道我们的动作,如发布新特性,是否真的引起这些行为发生改变,也不会知道它是否纯粹是一种相关性,在该特性上投入更多的资源是否有回报。

虽然 A/B 测试被公认为一个纯粹的网站优化工具,但是它本质上是用现实审视我们创意的工具,检查我们的创意是否和我们预期的一样。

InfoQ:怎样扩展 A/B 测试呢?

Dressler: 扩展 A/B 测试的数量依赖于几点:测试执行的速度、受众数量和每个用户的可运行测试数。既然受众数量通常是固定的,我们只能给每个用户运行更多的测试以及让测试执行得快一点。在这个阶段,如果我们没有足够简化流程,通常发生的问题就是团队的技术和流程负担。如果我们有一个应用需要硬编码每一次变更,我们就会遇到应用发布周期的瓶颈。工程师和设计师需要接受不完美测试的事实。一个好的办法是挑几组带头这样做,然后弄清要推广到所有组,我们需要对平台和流程做那些修改。

给每个用户运行更多测试意味着实验会发生潜在的冲突,造成糟糕的用户体验。如果一个组测试将所有字体改成白色,另一组将所有背景改为白色,参与了两组测试的人就没办法使用这个产品了。还有其它不同的解决办法,但是值得指出的是,多数时候一次参与多个测试的用户是可以的。因为用户是随机分配到测试组的,所有测试组中受影响的用户数应该是均匀的。A/B 测试只关注各组的区别,所以如果所有人都受到相同影响,结果不会被扰乱。

InfoQ:你能举一个实验的例子吗?

Dressler:不久前我们在研究中发现了一些规律,让我们意识到我们在 Spotify 浏览导航方面似乎错过了一些机会。我们形成了一个想法,通过简化我们的应用程序导航,我们可能能够让新用户更好地了解他们可以在 Spotify 做什么,从而增加他们留在平台上的机会。

按照传统思维,我们会马上进入设计冲刺,做一些用户测试,然后最终无论我们做出了什么,都会发布出去。然而,我们的设计师事实上确实领导负责了一些早期探索,我们才能迅速投入到第一轮 A/B 测试。一个测试检查改变导航 UI(并且仅仅 UI),而另一个测试改变信息架构(分类标签和结构)。这些经验并不完美,目的也绝不是要将它们推行到更广大的受众。我们关心的是使用它能否真的影响用户行为。如果根本的改变都无法带来更高的点击率,我们很可能不会在该创意上投入更多资源。然而,结果表明我们正在改变一些测试组中用户的行为,这个改变是我们想看到的。以这种方式建立了信心,我们就继续探索小样本用户测试中的不同设计原型,以排除变化,并快速收集大量相关经验。直到这时,我们才进行更传统的 A/B 优化,以达到我们最终向用户发布最好的版本。

InfoQ:你想对怀疑 A/B 测试的人说些什么?

Dressler:首先,我想说对实验怀着敬畏之心是好的。复杂的工程和高级的统计数据掺杂在一起的时候,就很容易犯错误。当构建许多版本和运行统计测试的时候,开发流程和数据收集的不足会被放大。A/B 测试是进行产品研究非常有力的工具之一,它需要专业的知识,可能需要改变流程和文化。在这过程中,我们很可能遇到一些问题。

那就是说,实验也很强大,拥有无限潜力,而不仅仅是消除几次点击。如果我们处理得当,运行一些灵活的实验,我们就能避免在错误的主意上浪费大量资源,尽早收集关键信息消除大型工程的风险,或者通过测试许多小主意,激励行之有效的主意进行自下而上的创新。至于速度,只需要想想这个:如果方向跑错了,200 英里每小时也快不到哪去。

我想鼓励所有人尝试实验。在几百年的处理错误实验和不完美测量的过程中,科学给了我们一些良好的应对机制:重新运行测试,检查结果是否能重现,成立互相检查的社区,在实践和底层工具的基础上不断迭代。最重要的是,要注意没有绝对的确定性。 基于不完全信息做出决策将始终是产品经理的工作,实验不过是有助于这项工作的有力工具。

查看英文原文: Large Scale Experimentation at Spotify


感谢薛命灯对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2016-12-21 18:001347
用户头像

发布了 33 篇内容, 共 11.5 次阅读, 收获喜欢 10 次。

关注

评论

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

大厂算法面试之leetcode精讲12.堆

全栈潇晨

算法 LeetCode

2022北京智博会AIOTE 2022第十五届北京国际AI人工智能产品展览会

InfoQ_caf7dbb9aa8a

技术分享| Sip与WebRTC互通-SRProxy开源库讲解

anyRTC开发者

音视频 WebRTC SIP 视频会议 SRProxy

详解预训练模型在信息检索第一阶段的应用

百度Geek说

后端 预训练 信息检索

2022北京智博会AIOTE 第十五届(北京)国际智慧城市、物联网、大数据博览会

InfoQ_caf7dbb9aa8a

Linux学习指南《Linux一学就会》带你玩转Linux

侠盗安全

Linux linux运维 运维工程师 云计算架构师

2022北京智博会AIOTE 第十五届(北京)国际智慧城市、物联网、大数据博览会

InfoQ_caf7dbb9aa8a

dart系列之:数学什么的就是小意思,看我dart如何玩转它

程序那些事

flutter dart 程序那些事 11月日更

Redis线程模型的前世今生

vivo互联网技术

redis reactor 多线程 io

kafka元数据信息存储在哪里,如何查看

编程江湖

kafka

文本分类:Keras+RNN vs 传统机器学习

华为云开发者联盟

机器学习 深度学习 keras RNN 文本分类

大厂算法面试之leetcode精讲11剪枝&回溯

全栈潇晨

LeetCode 算法面试

2022第十五届北京国际智慧工地展览会

InfoQ_caf7dbb9aa8a

开发好能重构的代码,都是这么干的

华为云开发者联盟

接口 重构 代码 并发 注释

Rust 元宇宙 8—— 脚本

Miracle

rust 脚本 元宇宙

使用HTML+CSS制作逼真的红色开关

海拥(haiyong.site)

CSS html 大前端 Demo 签约计划第二季

数据分析从零开始实战,Python、Pandas与各类数据库

老表

Python 数据库 数据分析 pandas 11月日更

Nocalhost 为 KubeSphere 提供更强大的云原生开发环境

CODING DevOps

Kubernetes DevOps 云原生 集群 Nocalhost

react源码解析5.jsx&核心api

buchila11

React React Hooks

Java开发之ssm三大框架的整合

@零度

Java ssm

taosAdapter正式发布:支持从OpenTSDB向TDengine无缝迁移

TDengine

tdengine 后端 时序数据库

恒源云(GPUSHARE)_云GPU服务器如何登陆Windows实例?

恒源云

人工智能 深度学习 算力

智慧城市主题展2022第十五届北京国际智慧城市展览会

InfoQ_caf7dbb9aa8a

Vue 中 $attrs 与 $listeners 的详解

编程江湖

Vue 大前端

2022北京智博会AIOTE 2022第十五届北京国际人工智能产品展览会

InfoQ_caf7dbb9aa8a

2022第十五届北京国际大数据产业博览会

InfoQ_caf7dbb9aa8a

前端开发中需要掌握的开发框架React

@零度

大前端 React

2022第十五届北京国际AI人工智能产品展览会

InfoQ_caf7dbb9aa8a

常用的5个分布式缓存框架

编程江湖

Java 开发 分布式缓存框架

基于TDengine进行睿信物联网平台的迁移改造

TDengine

tdengine 时序数据库

大数据开发hadoop入门基础之sqoop

@零度

大数据 hadoop sqoop

Spotify的大规模实验_文化 & 方法_Ben Linders_InfoQ精选文章