Tag Archives: A/B测试

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

original:http://www.cnblogs.com/bqzhao/p/3259380.html

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

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

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

定义3:按PV计算CTR,CTRPV(A)=A算法下用户点击的PV数A算法下总的PV数

定义4:按UV计算CTR,CTRUV(A)=A算法下有点击的用户数A算法下总的用户数

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

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

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

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

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

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

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

从而第i个桶按UV计算的CTR为:

E[R|bi∈B]=∑∞k=1rkP(K=k|bi∈B)=∑∞k=1rkP(bi∈B|K=k)P(K=k)P(bi∈B)=∑∞k=1rkP(bi∈B|K=k)P(K=k)∑∞k=1P(bi∈B|K=k)P(K=k)

设P(K=k)=αk,那么:

E[R|bi∈B]=∑∞k=1(1−(1−r)k)(1−(1−pi)k)αk∑∞k=1(1−(1−pi)k)αk

可以证明,pi<pj⟹E[R|bi∈B]>E[R|bj∈B]。

距离来说明这一点,设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|b1∈B]=0.0288,第2个桶按UV算的转化率为:E[R|b2∈B]=0.0251。即第1个桶比第2个桶AA测试下按UV统计到的效果好15.11%。也就是说,大桶在该场景下的测试指标比较亏。

不同分桶比例下的AA测试的对比:

小桶流量   小桶CTR   大桶CTR   小桶领先比例
0.0100    0.0292    0.0246    0.1871
0.0200    0.0292    0.0247    0.1831
0.0500    0.0291    0.0248    0.1710
0.1000    0.0288    0.0251    0.1511
0.2000    0.0284    0.0255    0.1117
0.3000    0.0279    0.0260    0.0734
0.4000    0.0275    0.0265    0.0361
0.5000    0.0270    0.0270         0

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

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

相对第1种情况,这种情况会更普遍一些,因为它看上去“更公平”,而事实上却远非如此。仍然借用第1种情况下的符号,可以得到UV转化率和PV转化率的关系如下:

E[R|bi∈B]=∑∞k=1∑kl=1(1−(1−r)l)(kl)pli(1−pi)k−lαk∑∞k=1∑kl=1(kl)pli(1−pi)k−lαk

可以证明,pi<pj⟹E[R|bi∈B]<E[R|bj∈B]。

沿用情况1的各种数据,这种情况下,第1个桶按UV算的转化率为E[R|b1∈B]=0.0157,第2个桶按UV算的转化率为E[R|b2∈B]=0.0234。即第2个桶比第1个桶AA测试下按UV统计到的效果好48.59%。也就是说,小桶在该场景下的测试指标比较亏,而且相对于第一种情况不公平更加严重。

不同分桶比例下的AA测试的对比:

小桶流量  小桶CTR    大桶CTR  大桶领先比例
0.0100    0.0151    0.0244    0.6222
0.0200    0.0151    0.0243    0.6065
0.0500    0.0154    0.0240    0.5603
0.1000    0.0157    0.0234    0.4859
0.2000    0.0165    0.0222    0.3467
0.3000    0.0173    0.0212    0.2199
0.4000    0.0182    0.0201    0.1046
0.5000    0.0192    0.0192         0

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

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

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

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

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

为什么会造成这样的问题呢?从本质上讲,这是由于AB测试中不同的桶之间的流量会存在交集,这个交集部分的流量无论怎么统计,都可能会产生影响和问题,尤其是统计指标是交集元素的ID(比如用户ID,cookie等)时,问题更严重。只有从根本上杜绝AB测试中的交集,使各个测试桶之间互不影响。

可能有人会对场景2中的流量想到一种这样的分配方案,来解决两个测试桶流量不平衡的问题。比如将其中的90%的流量分为两个部分,一个为80%的流量桶(第3个桶,A算法)不参与测试,一个为10%的流量桶(第2个桶,A算法),再加上另外一个10%的流量桶(第1个桶,B算法)。此时A、B两个算法的测试桶中的流量大小相等,是不是就公平了呢?

No!原因在于,第2个桶和第1个桶是同一个算法,给用户展示的结果更接近,因此第1个桶虽然不参与测试,但仍然会形成干扰,这种干扰在不同的效果统计方式下表现为不同的测试偏差。

[repost ]A/B测试

original:http://baike.baidu.com/view/4357479.htm

简述A/B Testing

A/B测试是一种新兴的网页优化方法,可以用于增加转化率注册率等网页指标。
使用A/B 测试首先需要建立一个测试页面(variation page),这个页面可能在标题字体,背景颜色,措辞等方面与原有页面(control page)有所不同,然后将这两个页面以随机的方式同时推送给所有浏览用户。接下来分别统计两个页面的用户转化率,即可清晰的了解到两种设计的优劣。
传统的A/B测试,是一种把各组变量随机分配到特定的单变量处理水平,把一个或多个测试组的表现与控制组相比较,进行测试的方式。

新的A / B测试,不仅仅其范围限制在web分析方面,而是为其注入新生命,即移动设备端分析。Pathmapp联合创始人兼首席执行官亚当Ceresko表示,今天,开发人员需要大大提高优化工具的性能,移动分析已成为A/B测试增长最快的一个领域。

A/B 测试  A/B 测试

编辑本段五大测试元素

标题

长标题还是短标题
疑问句还是陈述句
正式语气还是非正式语气
强调卖点 A 还是卖点 B

图片

大图片还是小图片
照片还是绘图
客户还是产品

布局

单列销售信函布局还是多列布局
3页的形式还是1 页的紧凑形式

销售切入点

质量还是便利
功能还是服务
赚钱还是省钱

转换激励

强调免费送货还是退货自由
列出所有的激励措施还是什么都不列
电话订购转换还是在线表格转换

编辑本段A/ B测试注意三点:

任何测试都只是手段而非目的

A / B测试不是要让你用最新的技术、最新的软件或者算法,大部分时候一个纸上的原型或者线框里5秒钟的测试都能帮你的网站制作找到方向。好好利用那些简单、低廉的测试方式。

客观对待网站测试过程

不要让你的直觉推翻了测试结果。在A / B测试的结果往往是令人惊讶的或直观的。在一个绿色为主题的网站,一个明显的红色按钮有可能成为赢家。即使红色按钮不容易吸引注意。您要测试的目标是一个更好的转换率,而不是美学。

版本测试应注意样本大小

还有一点需要注意的是,A/B 测试的页面必须有较高的 UV (Unique Visitor,独立访客数),因为分流带有一定的随机性,如果页面 UV 太小,分到每一个版本的人数就更少,结果很有可能被一些偶然因素影响。而 UV 较大时,根据大数定理,我们得到的结果会接近于真实数据。[1]

编辑本段A/B测试革新

Pathmapp通过结合视觉分析和A / B测试,充分解决移动设备分析需求,一旦手机应用开发者,在手机应用中嵌入新A / B测试的代码,这款应用就能收集用户使用手机进行的每个交互活动,如交流,刷卡等。然后建立这个用户的数据,提供“Heatmapps”(即视觉密度地图),记录用户在哪方面以及与哪些应用程序发生交互。
该平台还通过应用程序,提供视觉显示(最常见的路径,以及事故报告。所以,除了日志转储,Pathmapp可以显示用户点击过的应用程序。Ceresko说,Pathmapp的这个想法源于他成立APPEK的经验,这是一个租用手机应用程序代理平台,Pathmapp的总公司。
Pathmapp用了三年时间,将针对企业和独立开发人员基于Android、iOS和Facebook应用程序的设计和部署大功告成。首席执行官表示,在经历了一次次的挫折之后,A / B测试工具+视觉分析功能的移动A / B测试工具,功能很强大。[2]
参考资料