灰度测试试验流量“洗牌”
理论上说,随机抽样不会出现长期偏差问题,因为每次参与试验的用户都是随机筛选的一批,通常同一个用户不会被不同的试验反复选中。但是在实践之中,也要注意实现的算法是否能支持真正的随机性。很多时候,伪随机数加上固定分支条件的代码实现会让某些用户有更大的可能被选中,这些用户还是会成为长期的“小白鼠”。 3 试验流量“洗牌”算法 意识到灰度测试的长期“小白鼠”问题,我们需要在A/B测试系统里引入“洗牌”机制,可以不断把预先分配好的试验组里的用户们重新打散,再重新分配到不同的试验组里。 ![]() “洗牌”机制有很多实现算法,针对A/B测试系统,我们可以采用的一个简单算法:对每一个用户,每过一段时间(比如30天),就给用户一个机会,可以换到其他试验组里去。 假设我们用简单的哈希算法来对用户做试验分组,那么可以用类似这样的实现: // Runs every 30 days Group ID for Client cid <= Hash(A/B Testing Client ID cid + DateTime) % #Groups 注意不同的用户加入系统的时间是不同的,所以他们的“洗牌”机会也会出现在不同的时间。但是整体来说,试验组是每过一个月完成一次比较完整的“洗牌”。 引入“洗牌”机制之后,每个试验组在长时间尺度上是不断变化的,即便是同一个编号的试验组反复参与测试,也不会总是同一批用户。我们再也不会总是逮着同一群小白鼠打针喂药了。 总之,尊重用户/客户,不仅要用灰度A/B测试来避免有问题的产品迭代影响大面积的用户,还要避免同一批用户总是被拿来做试验,确保所有用户都能享受最佳的产品体验。 来源:热云数据 (编辑:威海站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |