A/B Testing 杂谈 (1)
感谢立正建立的社区,社区的建立非常不容易啊。你看课代表在每个帖子下都邀请大家多写东西,多开直播。受到感召🫡,我打算在知乎和XHS外,在这里也开一系列的坑……
第一个坑开在哪里好呢?我想了许久,考虑到课代表的在 Statsig 工作非常辛苦,宣传 A/B testing 非常卖力,我决定直捅课代表腹地,聊聊课代表最专业的领域:A/B testing!希望能给大家带来一点点的启发。
在 A/B Testing 这个领域,我的经历还是比较特殊的,每次看特代表关于这个方向的视频,我第一反应都是:这个 training 我好像以前给 teammate 做过,太熟悉啦!
七年前,我作为 First ML Engineer 加入 Tubi TV in San Francisco。Tubi TV 是一个免费的长视频流媒体平台,可以理解为免费版的 Netflix,靠 Ads 赚钱。流媒体,长视频,是一个极端烧钱的大玩家垄断的游戏,我们作为创业公司在几年的时间里做到了跟大家平起平坐的位置,还赚钱了,是很不容易的。公司被收购几年后,我跟不少老朋友们都离开了,这才有机会跟大家分享一些故事。

插个话,因为 Tubi 在北京有办公室,我的团队也横跨中美,我给团队的日常 training 也包括中美的文化差异,涉及闲聊、沟通、职场等方方面面,是这个领域的 go to person。有机会再跟大家分享,算是另一个大坑吧。之前跟李丁老师录过一个视频:55. 中美职场沟通差异和技巧 | 用三明治沟通法表达否定 | 怎么更加高效的1 on 1
作为 first ML Engineer,直接跟 CTO 一起工作。我最在乎的问题是:你对于ML 的 Vision 和 Roadmap 是啥?他看着我说,这个得你告诉我,但我们是一个 data/ml driven 的公司,靠你了!
ML 当然重要,A/B Testing 更重要,这是我当时的一个想法。所以我基本亲自实现(或者定义核心需求)了几乎所有 A/B Testing 相关的系统,大概包括:
-
A/B testing engine and config syntax
-
Exposure events logic on the clients
-
Metrics calculation data pipeline
-
A/B testing metrics dashboard UI
-
A/B testing analytics tools for ad-hoc analysis
-
ML codebase integration with A/B testing
-
ML related data pipeline integration with A/B testing
-
Ranking server pipelines integration with A/B testing
-
ML A/B testing monitoring framework
当然还有整个 A/B Testing 的 best practice,包括如何写 Spec,如何做 post analysis,如何定义 primary metrics,action plan,如何 schedule experiment 等等等等。毕竟 ML team 就是 A/B testing 最大的用户。A/B testing 这个词也慢慢演化成了 experiments,不过这里姑且都还是称为 A/B testing 吧。
所以在很长一段时间里,我是就是公司里的 A/B Testing 的化身。一直到更多 leader 的出现,让我可以把时间花在 ML 上面。

这个大概是作为一个工程师的顶级爽点,也只有初创公司的工程师能做到。If you believe that's how things should work, you build everything according to your vision, ensuring every detail is precisely aligned. You watch as everything scales exponentially, perfectly and exactly as you intended.
当然啦,随着不同 service 的分家,慢慢都会演化成 shit,但是我们也曾经美好过啊哈哈。
第一篇帖子,我们就聊聊关于 A/B testing 比较 high level 的东西,也是比较核心的一个问题:我们为什么要 run A/B testing。
很多人的第一反应是 A/B testing 很好,BLABLABLA,其实在我看来,这些好处都不那么重要。事实上是,you have no other choices actually, A/B testing is the only option。这是一个 top down 的 decision。
先退一步说,人类作为一个高级的智能体,最大的问题是啥?是 hallucination(笑死)。
这个点说起来其实比较搞笑,但是很真实,它并不是说这个世界是个草台班子都是弱智,也不是说大家都一本正经地胡说八道而彼此不知。实际情况是:这个世界太过复杂,信息量太大,你,不管是 decision maker 还是 stakeholder,都没有办法快速 verify 任何从人口里说出的信息的正确性。而你的级别越高,就越痛苦。
在任何沟通中,大家要理解的不仅仅是一句话里面的表层信息,更有深层次的说话动机。而作为一个打工人,最核心的动机就是:证明自己的价值。而且是不管在任何事情发生的时候,不管是好事与坏事,都要证明自己的价值。级别越高的人,就越擅长在证明自己的价值。久而久之,hallucination 就会变成一个系统性的问题。你让他去扫厕所拿 $1M,他都能给你完美的理由证明他值得这个价格,甚至还值得搭建一个很大的团队来让这件事做到世界级水平。

越是打工人的老油条,级别越高,就越能 justify anything。
我在第一家公司的工作的时候是个小 IC,对于这件事情特别困惑。我们公司的核心指标明明在下降,但每个组织的 leader 都在兴高采烈地说我们做的非常棒,我们有超多的 learning,我们某些指标其实 on a good track。我们天天庆祝,导致我家里有超多的 free t-shirt。有什么用呢?没有什么用。
在 Tubi 花了这么多时间,其实都是在探索如何避免这些问题。
那 Hallucination 有办法可以解决吗?我其实想了很久很久这个问题,没有答案。
但退一步讲,真正的问题是,为什么我们需要沟通呢?
"Communication costs increase exponentially.
And to solve this problem, we added more communication.
Communication kills everything."
我们能不能彼此不说话,再也不说话了,而正确的事情依然能够美妙地发生?
这个是我认为 A/B Testing 这个框架带来最大的益处:A/B Testing Drives Action.
围绕着 Action,我当然可以列出很多它的好处,比如降低决策成本、消除责任推诿、培养数据驱动的文化、加速创新迭代、聚焦关键指标、持续学习和积累、打破直觉陷阱、提高执行力、优化资源分配、建立共识基础等等等等。这些当然都很好,但如果仅仅聚焦 A/B testing 而不聚焦 Action,我们很容易进入一个高级版的 hallucination:
A data-driven hallucination culture.
事实上,我认为绝大多数公司其实是处在这个状态。我们这里开个坑,下次再聊。
