ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

通过实验迭代推荐系统

2020-05-06 13:03:03  阅读:439  来源: 互联网

标签:AB 实验组 迭代 推荐 对照组 实验 Test 变量


在上一篇《使用计算图搭建灵活的推荐系统》中介绍了推荐系统的一种灵活架构,可以方便的增减召回与重排序、替换排序算法等等操作。如此灵活的目的是为了能够快速迭代,比如单拿大家最熟悉的热门召回源举例,热门的计算方式可以迭代,可以加入时间权重,可以改变成按点击率计算,可以改变计算时的取数据范围等等。

那么,如何确定迭代的方向?这个好回答,哪个改动效果好就往哪改。划分出部分 User,让他们试用新改动,与未改动的 User 组进行对比,观察效果变化。上面的过程就是一个典型的对照实验,在互联网领域往往称为 AB Test。

如何设计 AB Test

对照实验的概念,初中生物应该就学到过,一般有一个对照组,它维持原状,不接受任何特殊处理;多个实验组,通过控制变量的方式,每个实验组只做关于一个变量的改变,以此来观察每个变量对最终实验的影响。当然你可以设计有多个变量改变的实验组,以观察多个变量对最终结果的共同影响。

AB Test 的概念简单,易于实现。比如,用上一篇中的计算图举例,大部分流量执行 A 计算图,划分出部分用户流量,执行 B 计算图,这样就是一个 AB Test。注意给流量打上标记,方便在观察效果时分标记查看。如果流量足够的情况,分出 C 图,D 图,同时做多组实验也是没有问题的。

虽然 AB Test 的概念简单,但是实验的设计并不简单。单变量的实验设计起来应该没什么难度,但多变量的实验,就有些复杂了。在这里抽象的举一个例子,现在有变量 a、b,变量 a 有值 a1、a2,变量 b 有值 b1、b2。假设对照组为 a1、b1,那么你就得设计 3 组实验,分别是 a1、b2,a2、b1,a2、b2。第一和第二实验组与初始对照组进行对照,第三实验组则是和第一、二组实验组进行对照。

当然,实际生产中变量的值可不只有 2 个。不过变量的变化方向一般只有双向,比如热门数据的计算范围,两个变化方向,范围变大或者变小。此时可以将其两个方向各取一个值,加上原值,共计三个值。在本轮实验中确定了往哪个方向变化后,可以再以新的值作为基准,再进行一组实验,以确定更加精确的值。比如当前的热门计算范围是 7 天,第一轮实验设计两个实验组,计算范围分别是 3 天和 14 天;第一轮实验完成后,确定了 14 天的效果较好,此时以 14 天为对照组,设计两个实验组分别为 10 天和 28 天,进行第二轮实验。

上面这种控制变量值数量的方式一般用于多变量的实验,防止变量与变量之间的组合导致实验组数量爆炸。如果只是单变量实验,可以适当的往变量方向多取一些值,同时做多组实验。总的原则就是不要浪费流量,尽量的做多组实验,方便快速地迭代。

实验应该观察多久

这也是一个非常有意思的问题。简单来说,当效果趋于稳定的时候,就可以认为实验已经做完了。注意,因为存在一种情况,就是对照组有波动趋势而实验组很平稳,所以,这里的效果稳定指的是,实验组和对照组的差值稳定,不是实验组本身的效果稳定。

往往新的实验上去之后,因为与老套路不太相同,可能会带给用户一种新鲜感,而这种新鲜感是会慢慢消失的。我们要确定的就是,当这个新鲜感消失的时候,效果会稳定在多少。如果用户和业务稳定的话,最终稳定的效果其实是可以通过统计机器学习的方法估算出来的,这样可以减少很多时间。这个属于屠龙之技,一般的应用场景下,前端样式一年都指不定变几次,每次这样改动,就要重新进行统计估算。

其它实验方法

Google 有一篇论文,讲了他们的重叠分层实验框架,非常牛逼,也属于屠龙之技。简单说一下,这个框架里每层的实验是一个 AB Test,而这些 AB Test 是可以重叠的,这代表着,一个用户既可以是某层的对照组,又可以是另外某层的实验组。一般来说,每个正交的业务占有一层,比如前端样式占有单独一层,推荐系统占有单独一层,两者都可以在全用户流量的基础上进行 AB Test。

我知道这可能比较难以理解,个人感觉把这个牛逼框架讲明白需要单独一篇文章。所以在这里就简单通过对比 AB Test,总结一下,它最大的优势就是,能同时做更多组的实验,并很好的管理它们。当你的业务真的需要像 Google 一样,有成百上千的算法工程师上去捣鼓实验的时候,做一套这个准没错。

实验可以一劳永逸吗

不可以。你需要持续的实验,就算已经通过不停地迭代找到了一个最优点,但业务和用户以及内容并不是一成不变的。最好能够保留一些小流量实验组,也许哪天这些实验组的效果就窜上来了呢。

结语

这次的文章写得比较仓促,有些地方可能用词比较随意,没有充分考虑阅读者的知识水平。如果有哪里不理解的,欢迎在评论区交流或者加公众号私信交流~
weixin
logo

标签:AB,实验组,迭代,推荐,对照组,实验,Test,变量
来源: https://blog.csdn.net/CodeDifferent/article/details/105929390

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有