AB测试不足

背景

AB Test时,除了保证算法不一样外,其他条件都需要保证不变。但是往往大家可能忽视了保证用户分布的不变。比如一个算法A除了可以召回付费用户外,还可以召回很多潜在付费用户,而算法B只能召回经常付费的用户,如果直接拿两个算法作用所有用户比较,此时显然用户的分布不一致,比较最终的统计指标意义不大。

两种算法比较

假设有两个算法A,B。由于算法对数据的要求不同,导致分别召回了UAUA和UBUB两批用户,所以整体用户为U=UA∪UBU=UA∪UB。两个算法的交集为I=UA∩UB≠∅I=UA∩UB≠∅。算法上线时,I中的用户不能同时被两个算法影响,所以必须在算法A和B中选择一个算法上线。此时可以等权重随机在A和B中选择一个算法,随机选取可以确保算法A和B影响的用户分布相同,并且可以保证A,B算法影响I中的用户量级相同。如果根据经验知道A的算法比B的好,可以将A的随机选取权重适调高,这样可以在确保整体线上效果的同时,仍然可以保证A,B算影响的用户分布相同,但是量级会有所不同。但是,只要I中的用户足够多,量级对最终的评估影响不会太大。

线上真实情况

上面的两种算法比较中说明了,如果我们要做AB测试,就需要AB两个分桶流量中的用户分布是一致的,但是这种情况很难得到保证,及时在实验开始之前我们能够准确的划出2个等分布的桶出来,在实验过程中也还是可能会导致用户的分布产生变化。

在线上真实的情况是可能一个召回,排序或者重排序的改动策略的效果在0.5%以内,这个时候其实就很难说清楚这个波动是分桶本身的不均匀导致的还是策略带来的正向影响,如何在实验迭代的过程中清晰的说明0.5%的正向到底是不是真实有效一直是个问题。

ps:了解到头条的做法是开AABB四个分桶进行实验,交叉进行验证。

posted @ 2019-03-30 22:02  吴烨  阅读(782)  评论(0编辑  收藏  举报