算法效果AB测试中的PV-UV不对称性

 

算法效果AB测试中的PV-UV不对称性

分类: Machine Learning   40人阅读  评论(0)  收藏  举报

算法效果的AB测试,是指在相同的应用场景下,对比不同算法的效果。通常的做法是,按照PV或UV随机分配流量到算法上,计算算法的CTR或转化率进行对比。为了表述简单,我们假设参与对比的算法有两个,比较的指标是CTR。这里面的关键细节有两个:1. 如何划分浏览?2. 如何计算CTR。下面从这两个角度讨论可能出现的问题。

定义1:按PV划分流量,是指对任意一个访问,按照预先设定的比例,随机分配到一个算法中。需要注意的是,在这种情况下,每个用户会被随机分配到一个算法中。

定义2:按UV划分流量,是指对任意一个访问,按照预先设定的比例,对用户ID进行哈希和取模等操作,将流量划分到一个算法中。在这种情况下,每个用户有一个确定的算法与之对应。

定义3:按PV计算CTR, CTRPV(A)=APVAPV

定义4:按UV计算CTR, CTRUV(A)=AA

场景1:按PV划分流量,按PV计算CTR。

这种情况比较简单,在忽略用户对算法疲劳度(通常是合理的)的情况下,这种测量对比方案比较合理。

场景2:按PV划分流量,按UV计算CTR。

这个方案可能一些有经验的同学会觉得不行,另一些同学会觉得问题也不大。事实上,这会导致严重的测量误差,我们用AA测试的效果来分析一下。假定流量分成两个桶,第1个桶占比是 p1 ,第2个桶占比为 p2 ,且 p1+p2=1 。设该算法的PV的转化率(CTR)为 r

这里需要分为两种情况来讨论:

第1种情况:假设产生无论实际的转化在哪个桶中产生,将转化率计算到该用户到达的每个桶中。

对一个访问次数为 K=k 的用户,其整体转化率为 rk=1(1r)k ,而他出现在第i个桶的概率为 P(biB|K=k)=1(1pi)k,i=1,2 。其中 biB 表示用户出现在第 i 个桶中。

从而第i个桶按UV计算的CTR为: E[R|biB]=k=1rkP(K=k|biB)=k=1rkP(biB|K=k)P(K=k)P(biB)=k=1rkP(biB|K=k)P(K=k)k=1P(biB|K=k)P(K=k)

P(K=k)=αk ,那么 E[R|biB]=k=1(1(1r)k)(1(1pi)k)αkk=1(1(1pi)k)αk

由于 f(x,k)=1(1x)k 0<x<11k< 上关于 x k 单调递增,那么对于较大的 pi , 其转化率为 1(1r)k 的用户的份额 (1(1pi)k)αk 随着 k 的增大,转化率升高,且小 pi 的份额 (1(1pi)k)αk 相对大桶也增大。因此, pi>pjE[R|biB]<E[R|bjB]

距离来说明这一点,设 p1=0.1,p2=0.9 α1=0.5,α2=0.35,α3=0.15 r=0.015 ,即流量比为1:9,访问次数分别为1,2,3的人比例为10:7:3,按PV算的CTR是0.015。

这种情况下,第1个桶按UV算的转化率为

E[R|b1B]=0.0288

第2个桶按UV算的转化率为:

E[R|b2B]=0.0251

即第1个桶比第2个桶AA测试下按UV统计到的效果好15.11%。也就是说,大桶在该场景下的测试指标比较亏。

由AA测试的结果对比不难得到AB测试的结论:如果按PV划分流量,按UV计算转化率,无论交易发生在哪个桶中,将转化率计算入该用户到达的每个桶中,大桶在该场景下的测试指标比较亏。直观的理解是,这种情况下,小桶从大桶的推荐效果中“沾光”要大于大桶从小桶的推荐效果中“沾光”。

第2种情况:转化发生在哪个桶,就将转化率算入该桶中。

相对第1种情况,这种情况会更普遍一些。仍然借用第1种情况下的符号:

E[R|biB]=k=1kl=1(1(1r)l)(kl)pli(1pi)klαkk=1kl=1(kl)pli(1pi)klαk

沿用情况1的各种数据,这种情况下,第1个桶按UV算的转化率为

 

E[R|b1B]=0.0157

 

第2个桶按UV算的转化率为:

 

E[R|b2B]=0.0234

即第2个桶比第1个桶AA测试下按UV统计到的效果好48.59%。也就是说,小桶在该场景下的测试指标比较亏。

结论是,如果按PV划分流量,按UV计算转化率,交易发生在哪个桶中,就将转化率计算入该桶中,小桶在该场景下的测试指标比较亏。直观的理解是,这种情况下,小桶中用户行为次数比大桶中少,因此转化率低。

 

场景3:按UV划分流量,按PV计算CTR。

这种情况下每个用户会被划分到确定的算法处理,如果算法分配到的用户比较少,而用户行为差异比较大的情况下,小流量算法的指标会受到一定干扰。但对于大多数情况下也可以合理的忽略这种因素,方案比较合理。

场景4:按UV划分流量,按UV计算CTR。

这种情况下每个用户被划分到确定的算法处理,参考场景3的结论,方案比较合理。

算法效果的AB测试,是指在相同的应用场景下,对比不同算法的效果。通常的做法是,按照PV或UV随机分配流量到算法上,计算算法的CTR或转化率进行对比。为了表述简单,我们假设参与对比的算法有两个,比较的指标是CTR。这里面的关键细节有两个:1. 如何划分浏览?2. 如何计算CTR。下面从这两个角度讨论可能出现的问题。

定义1:按PV划分流量,是指对任意一个访问,按照预先设定的比例,随机分配到一个算法中。需要注意的是,在这种情况下,每个用户会被随机分配到一个算法中。

定义2:按UV划分流量,是指对任意一个访问,按照预先设定的比例,对用户ID进行哈希和取模等操作,将流量划分到一个算法中。在这种情况下,每个用户有一个确定的算法与之对应。

定义3:按PV计算CTR, CTRPV(A)=APVAPV

定义4:按UV计算CTR, CTRUV(A)=AA

场景1:按PV划分流量,按PV计算CTR。

这种情况比较简单,在忽略用户对算法疲劳度(通常是合理的)的情况下,这种测量对比方案比较合理。

场景2:按PV划分流量,按UV计算CTR。

这个方案可能一些有经验的同学会觉得不行,另一些同学会觉得问题也不大。事实上,这会导致严重的测量误差,我们用AA测试的效果来分析一下。假定流量分成两个桶,第1个桶占比是 p1 ,第2个桶占比为 p2 ,且 p1+p2=1 。设该算法的PV的转化率(CTR)为 r

这里需要分为两种情况来讨论:

第1种情况:假设产生无论实际的转化在哪个桶中产生,将转化率计算到该用户到达的每个桶中。

对一个访问次数为 K=k 的用户,其整体转化率为 rk=1(1r)k ,而他出现在第i个桶的概率为 P(biB|K=k)=1(1pi)k,i=1,2 。其中 biB 表示用户出现在第 i 个桶中。

从而第i个桶按UV计算的CTR为: E[R|biB]=k=1rkP(K=k|biB)=k=1rkP(biB|K=k)P(K=k)P(biB)=k=1rkP(biB|K=k)P(K=k)k=1P(biB|K=k)P(K=k)

P(K=k)=αk ,那么 E[R|biB]=k=1(1(1r)k)(1(1pi)k)αkk=1(1(1pi)k)αk

由于 f(x,k)=1(1x)k 0<x<11k< 上关于 x k 单调递增,那么对于较大的 pi , 其转化率为 1(1r)k 的用户的份额 (1(1pi)k)αk 随着 k 的增大,转化率升高,且小 pi 的份额 (1(1pi)k)αk 相对大桶也增大。因此, pi>pjE[R|biB]<E[R|bjB]

距离来说明这一点,设 p1=0.1,p2=0.9 α1=0.5,α2=0.35,α3=0.15 r=0.015 ,即流量比为1:9,访问次数分别为1,2,3的人比例为10:7:3,按PV算的CTR是0.015。

这种情况下,第1个桶按UV算的转化率为

E[R|b1B]=0.0288

第2个桶按UV算的转化率为:

E[R|b2B]=0.0251

即第1个桶比第2个桶AA测试下按UV统计到的效果好15.11%。也就是说,大桶在该场景下的测试指标比较亏。

由AA测试的结果对比不难得到AB测试的结论:如果按PV划分流量,按UV计算转化率,无论交易发生在哪个桶中,将转化率计算入该用户到达的每个桶中,大桶在该场景下的测试指标比较亏。直观的理解是,这种情况下,小桶从大桶的推荐效果中“沾光”要大于大桶从小桶的推荐效果中“沾光”。

第2种情况:转化发生在哪个桶,就将转化率算入该桶中。

相对第1种情况,这种情况会更普遍一些。仍然借用第1种情况下的符号:

E[R|biB]=k=1kl=1(1(1r)l)(kl)pli(1pi)klαkk=1kl=1(kl)pli(1pi)klαk

沿用情况1的各种数据,这种情况下,第1个桶按UV算的转化率为

 

E[R|b1B]=0.0157

 

第2个桶按UV算的转化率为:

 

E[R|b2B]=0.0234

即第2个桶比第1个桶AA测试下按UV统计到的效果好48.59%。也就是说,小桶在该场景下的测试指标比较亏。

结论是,如果按PV划分流量,按UV计算转化率,交易发生在哪个桶中,就将转化率计算入该桶中,小桶在该场景下的测试指标比较亏。直观的理解是,这种情况下,小桶中用户行为次数比大桶中少,因此转化率低。

 

场景3:按UV划分流量,按PV计算CTR。

这种情况下每个用户会被划分到确定的算法处理,如果算法分配到的用户比较少,而用户行为差异比较大的情况下,小流量算法的指标会受到一定干扰。但对于大多数情况下也可以合理的忽略这种因素,方案比较合理。

场景4:按UV划分流量,按UV计算CTR。

这种情况下每个用户被划分到确定的算法处理,参考场景3的结论,方案比较合理。


Author:潘多拉盒子

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值