26 | 在线测试:如何在推荐服务器内部实现A/B测试?
该思维导图由 AI 生成,仅供参考
如何理解 A/B 测试?
- 深入了解
- 翻译
- 解释
- 总结
推荐系统的线上A/B测试是验证新模型、新功能、新产品是否能够提升效果的主要测试方法。文章首先介绍了A/B测试的基本原理,即通过将用户随机分成实验组和对照组,对比新旧模型的效果差异来选择更好的推荐模型。然后详细讨论了A/B测试的分桶和分层原则,包括样本的独立性和分桶过程的无偏性,以及层与层之间的流量“正交”,同层之间的流量“互斥”等概念。这些原则保证了A/B测试指标的客观性,充分利用了流量资源。最后,文章提到了选取线上A/B测试的指标的问题。整体来说,本文深入浅出地介绍了推荐系统的线上A/B测试的原理和方法,对于推荐系统领域的技术人员具有很高的参考价值。 文章还介绍了在线A/B测试的评估指标的选择原则,强调了与线上业务核心指标保持一致的重要性。此外,文章还在SparrowRecSys中实现了A/B测试的模块,详细介绍了模块的基本框架和实现步骤。通过代码示例和具体操作,读者可以了解如何在推荐服务器内部实现A/B测试模块,并对用户进行实验设置和分配实验组。 总的来说,本文通过介绍A/B测试的基本原理、评估指标的选择原则以及在SparrowRecSys中的实现方法,为读者提供了全面的A/B测试知识和实践经验。这对于推荐系统领域的技术人员来说具有很高的参考价值,有助于他们更好地理解和应用A/B测试方法。
《深度学习推荐系统实战》,新⼈⾸单¥68
全部留言(16)
- 最新
- 精选
- fsc2016对于问题,我认为应该放在同一层,因为首页推荐可能会把一些有兴趣偏好的用户导入到对应的内容页,比如首页推荐球鞋,对于想购买球鞋的就会进入到球鞋内容页,这样对于内容页推荐来说 ,用户不是随机,是有偏的。
作者回复: 是这样的,和我的理解是一致。
2020-12-14421 - 那时刻我觉得对于首页与内容页做测试应该放在不同层,因为首页和内容页是正交的。
作者回复: 这取决于你对首页实验和内容页实验是不是相关的认识。 如果你认为首页实验和内容页实验是完全独立的,不相关,不互相影响的,那么他们可以放在不同层,加快实验速度。 如果你认为首页实验和内容页实验是相互影响的,那么他们应该放在同一层,保证流量互斥。 实际的应用中,首页模型很大可能会影响内容页模型,所以放在同一层的做法更保险一些。
2020-12-1413 - 浣熊当家请问老师,在业界AB测试流量分配是不是有专门的team用专门的系统来automate, 不太需要算法工程师们操心, 一般用什么软件或者技术进行自动流量分配呢?
作者回复: 一般稍大的公司都会自己搭建AB测试平台,AB测试的过程其实跟业务结合的很紧密,一般不会依赖开源的工具进行实现。 刚工作的同学熟悉AB test的原理就可以了,但senior的同学其实不存在什么操心不操心的问题,理论上推荐系统的每个模块你都应该很熟悉才行,这样才能有越来越强的定位问题的能力。
2020-12-145 - haydenlo老师好,实际工作中我们遇到了一些排序模型需要与特定召回策略配套的需求,所以目前召回层和排序层流量不是正交。比如说召回走桶号1-10的流量,排序层也会走1-10,也就是说每一层不会重新打散,请问这样会有问题吗?
作者回复: 这要看你怎么上线,你说的是召回层模型和排序层模型是绑定测试的,那么上线的时候就要一起上线,不能单独上线召回层或者排序层。 测试方法和上线方法是要对应的。
2020-12-204 - 浣熊当家最近开始了一个新的工作,职责之一是建立一个统一中心化标准化的AB测试系统,来自动化的完成公司内所有的AB测试。 我对系统一无所知觉得很无助,之前和现在的公司,都是用sitepect和split.io这种服务来分流,然后各个组自己手动做自己的测试, 我只能在网上搜相关的资料,王喆老师如果有推荐如何从0开始搭建AB测试系统的论文,大厂案例,将会对我有莫大的帮助,很想听听您的指导和建议,如果下手,先谢谢您了!!
作者回复: 我记得极客时间上是不是有一门讲AB test的课程?也许可以试一下。大厂案例资料的话最好自己去检索一下吧,知乎,或者infoq等blog,看看有没有好的解决方案。
2021-04-192 - Alan答:我认为首页推荐与内容页推荐模型应放在同一层。 1、从用户行为体验的业务结构上来说,先点击首页推荐,后内容页推荐,二者不建议分层,但可以分桶。 2、从推荐系统架构设计来说,老师所说的:层与层之间的正交!首页推荐更多目的为了收集用户感兴趣的数据标签,内容页推荐的数据来源大部分来自于首页推荐(标签数据、标签数据、ctr、点击次数、热门话题等),进而影响内容推荐的呈现内容(改变)甚至呈现方式(音乐类APP:车载蓝牙模式、跑步模式、正常模式)。
作者回复: 说的很好,赞同
2021-04-062 - Geek_3c29c3老师,想问一下,一个成熟的A/B测试框架,分桶、分流、投放等一些操作是交给产品、运营来做还是应该是数据中台来做呢?一些大厂都是怎样做的,如何做到充分解耦,还能提高测试效率?
作者回复: 必然是交给工程部门来做,因为数据中台的改变本身不明确,所以只能说是交给数据+工程部门来做这个事情。 但是运营和测试工程师一定要清楚AB测试平台的原理,因为测试终归是他们来创建的,不清楚原理只能让自己的结果没有说服力。
2021-01-201 - 浣熊当家对于最后的问题,我觉得应该放在不同层, 因为首页不同的推荐会影响接下进入哪些内容页, 为了使内容页的AB测试结果公平,需要对首页的进行正交在进行Test和Control的分配
作者回复: 恰恰是因为首页的推荐结果会影响内容页,所以两个实验才需要放在同一层进行,你再思考一下。
2020-12-1431 - 浣熊当家请问老师一下,我对正交这个词的意思总会似懂非懂,是不是就是在第一层的test和control下,分别平均分配第二层的test和control的意思么?可以直白的说成random sampling the next layer of variants, under each variant of the first layer 这样吗? 然后上面例子中,您是把第一层的两个variants拼凑, 组成第二层变量的两组, 这里我有两个问题: 1. 可以对X1的population,在细分成Y1和Y2吗, 还是一定要像例子里一样反方向 2. traffic的顺序很重要吗,比如一定要一个一个x1, 一个x2这样交替着来(如果是这样我就可以理解第一点,不能反过来了)
作者回复: 正交的理解没问题。 例子中只是一个示意图,不用过多纠结。只要各层之间的流量确实是随机打散的就可以。
2021-04-12 - 浩浩思考题,应该放在同层,不然点击的进入本身就是一种有偏操作和带入
作者回复: 是这样,一般采用这样的做法,结果比较清晰。
2020-12-22