初识机器学习:使用 epsilon 递减策略优化A/B测试

850 阅读4分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第17天,点击查看活动详情

A/B 测试

A/B 测试(A/B Test)也被称为拆分测试。通常适用于测试因某一个变量而产生的两个不同版本。通过收集受众所反馈的数据差异,以结果判断A和B方案的优劣来进行决策,从而提高转化率。

A/B 测试常常被用在广告展示场景中,通过两种,或者更多种展示方式展示同一个广告,通过统计它们的点击率,在后续投放中调整展示方式。

这是最传统的 A/B 测试方案,它存在很多问题,比如:

  • 测试结果具有偶然性,比如,用户对广告的点击行为,受到很多因素的影响,这种情况下,只能通过提高测试次数来提高准确度。
  • 提高测试次数的情况下,会导致收益变小。以广告投放为例,在投入预算有限的情况下,只能活的固定的投放次数,如果前期为了测试哪个广告形式更好使用了过多的投放次数,那么,后面能采用测试结果优化的投放次数就会变少,使得广告投放的收益降低。

这体现了 A/B 测试中,探索利用之间的权衡。探索是指前期测试的部分,利用是指优化投放后的部分。

A/B 测试的优化思路

其实在 A/B 测试过程中,没有必要等待探索阶段完整走完得到结果之后才进入利用阶段。我们可以在广告投放的过程中,先根据一小部分样本的测试结果,调整多种广告展示形式的投放比例,然后在不断探索,再根据每次探索的结果调整投放比例,从而在平衡探索和利用的情况下,提升广告投放的收益。

这种策略叫做 epsilon 递减策略,epsilon 指的是探索阶段占整体的比例。在广告投放的测试中,随着一次一次地探索,更优的广告展现形式会不断被印证,从而可以让 epsilon 的值不断减少。

相较于传统的 A/B 测试,先进行完整的测试后进入利用阶段,在 epsilon 递减策略中,探索阶段是分散的,越接近整个过程的结尾,探索阶段所占的比例就更低。

可以通过计算证明采用 epsilon 递减策略的最终收益是优于最原始的 A/B 测试的。

不过,如何调整 epsilon 的具体数值,对最终效果影响也不小。

如果 epsilon 递减过快,很可能会导致得到错误的结果;而如果 epsilon 调整过慢,就难以发挥它的优势。

还是以广告投放为例,调整 epsilon 递减的速度,需要参考投放中的几种广告展现形式之间,点击率相差是否明显。如果相差明显,那么可以很容易测试出它们之间孰优孰劣,否则,就需要 epsilon 缓慢下降。

总结

采用 epsilon 递减策略可以优化 A/B 测试的资源利用效率,大多数情况下,采用 epsilon 递减策略能比传统的 A/B 测试获得更高的收益,但是如何调整 epsilon 非常关键。

另外,在测试广告投放的效果时,还需要考虑更多因素,如果能有效控制这些因素,则可以获得更准确的测试结果:

  1. 影响广告点击率的不仅仅是广告展现形式,还包括非常多偶然因素,比如用户的心情、颜色便好、看到广告的时机等等。
  2. 类似的测试需要假设每一次广告展示都是一个独立事件,然而真实场景下,用户可能因为一个广告频繁出现而点击。
  3. 需要考虑广告展示、被用户看到、被用户点击之间的时间间隔,如果是网页浏览器见展示的广告,那么,这个时间几乎可以忽略,但是如果是短信、邮件等形式的广告,这个时间会比较长。
  4. 有一些容易让用户因为操作失误而点击的广告,会提供错误的反馈,这些广告会提供点击率,但是并不会带来收益,甚至会起到反向作用。