Fork me on GitHub

汽车之家推荐系统 AB 实验平台

作者:赵新源
智能推荐部 ,2020年加入汽车之家,在智能数据中心-智能推荐部负责推荐工程相关工作。

前言

随着之家业务不断发展壮大,业务的多样性给我们带来了更多的挑战,利用数据分析来驱动业务快速决策是重中之重。推荐系统就是通过精细化策略迭代来提升我们的服务质量和业务质量,但是策略的优化结果不是凭感觉的,需要建立在数据的基础上,得出正确的结论。A/B实验刚好可以帮助我们以数据指标来判断迭代效果。

01 A/B平台简介

A/B实验在保证线上整体流量稳定的情况下,取出一部分流量,完全随机的分给策略A和策略B,然后在相同时间维度下,收集他们的业务数据,通过一些统计方法,得到两种策略的对比效果,帮助我们作出正确的决策。这一套基于小样本的实验方法同时满足了低风险,抗干扰和量化结果的要求,因此不论在互联网产品研发还是科学研究中,都被广泛使用。

图片

如上图所示,我们的迭代过程是发现优化方向、提出假设、实验、验证假设、发布或推全,主要应用在算法、工程中。

02 架构

图片

实验平台包含:

1. 实验管理:支持各类算法、工程实验场景,制定合理实验目标,支持实 验周期规范化管理,提升迭代效率,达成目标可扩量,未达成目标则自动缩量,减少线上低质量或无用实验长期存在;

2. 分流机制降低实验之间耦合,合理有效利用线上流量;

3. 实验效果评估体系,基于实验数据科学有效进行决策。

03 实验分流

首先设备发起请求时,我们获取到用户的设备ID、设备版本、URI等信息后,需要根据分流模型匹配到对应的实验,结合我们实际需求可以对实验进行分类。

1. 水平实验: 多个实验属于同一层,实验之间是互斥的,当命中A实验的时候,不能在命中B实验,一层中只能命中一个实验。我们经常使用在功能修改需要互斥的地方。

2. 垂直实验: 实验分布在不同层,实验之间是正交的,当命中layer1中的A实验时,也可以命中layer2中的B实验,垂直实验可以使流量复用。

3. 条件实验: 当进入某层时,需要先满足一些条件,比如版本号、区域等,水平实验、垂直实验也可成为条件,例如当命中A实验的时候,才可以进入当前分层,否则,当前分层在本次请求不参与分流。

同时我们也在不断的改进优化,分层逻辑、分桶逻辑都有升级。最初的时候我们一个实验占用一层,实验中可以创建很多实验桶和对照桶,没有强制规范,这样的好处是很灵活,可以不断的在实验中添加新的桶和调整流量。但是对应的问题就是无法监管,没有明确的实验桶和对照桶对应关系,流量页不相等,无法从平台的角度去管理实验,实验的效果也是主观决定的。

图片

经过优化后,限制一个实验只能创建一个实验桶和对照桶,并且实验桶和对照桶的流量必须一致,一个分层可以创建多个实验,这样实验与实验之间有明确的界限,利于实验效果的对比。同时增加纯净域,用于每个分层未使用流量的管理,正常实验域不会超过X%,若实验域流量不足X%时,base桶为整个分层的剩余流量。

图片

在分流中决定命中某个桶时,我们采用的是hash方式,对应的hash因子由于需求不同垂直实验可以分为:固定deviceid、deviceid+day、bsdata(纯随机),水平实验为deviceid+layerid,这样可以保证不同分层都会重新计算一次不同的hash值,保证分层之间是独立的。

hash值匹配实验桶时,我们首先采取范围的匹配方式,例如当HashNum<10时,命中A实验,当10<=HashNum<20时命中B实验,当实验A扩量时原本属于B的用户变成了A实验,B更新了一批新用户,这样不利于我们统计留存数据。

对此我们使用新方案,采取预分桶的方式,提前计算每个桶对应的值并缓存下来,当扩量时从剩余的流量中申请新的流量,当缩量时,归还不使用的流量。

图片

04 科学效果评估

在检验一个策略时,如何评估一个这个实验是否正向的,指标变动是否有统计上的显著性,这些都需要通过统计学来进行解释。

原假设与备择假设:

  • 原假设H0:实验之前原有的假设,即认为A、B实验无差异;
  • 备择假设H1:实验中对立原假设,即否定原假设,这个假设可备选择。

两类错误:

  • 第一类错误:若H0实际为真时,犯拒绝H0的错误,概率用α表示,表示实际上代表新策略没有效(无显著差异),但是实验显示新策略有效(有显著差异)。
  • 第二类错误:若H0实际不为真时,犯接收H0的错误,概率用图片表示,实际上代表新策略有效(又显著差异),但是实验显示新策略无效(无显著差异)。

image.png

减少这两类错误的方法:提高置信水平,提高统计功效。

常见的检验方式有Z检验、T检验和卡方检验等,Z检验和T检验都是用来推断两个总体均值差异的显著性水平,具体选择哪个由样本量和方差是否已知决定。

图片

其中,n1为样本组1的样本量,n2为样本组2的样本量,图片为样本组1的平均值,图片为样本组2的平均值,S1、S2是样本标准差。

T检验为例,在给定的置信水平下,根据T值是否落在拒绝域来判断使否接收或拒绝原假设。

图片

P值:在观测数据下拒绝原假设的最小显著水平,当p <= α ,则在显著性水平α 下拒绝原假设,当P>α,则在显著性α下接收原假设。一般以P<=0.05为有统计学差异。

置信区间:给定显著性水平α ( 0 < α < 1), 若由来自X的样本确定两个统计量 图片图片 ,对于任意 θ 满足: 图片>=1-α

则称随机区间( 图片图片)是 θ 的置信水平为 1-α 的置信区间,1-α为置信水平。

正态分布的置信区间公式推导 :

image.png

这样得到图片的一个置信水平1-α 的置信区间:

image.png

针对两个独立样本的实验,则有置信区间:

image.png

根据上述所得到的数据,在95%置信度下,置信区间同为正或者同为负,说明实验结果是正向或负向的;置信区间为一正一负,说明实验结果是非统计显著的。当p-value<0.05时,实验结果统计显著,当p-value>=0.05时,实验结果非统计显著。

05 成果与展望

A/B测试已经是很多公司评估策略和业务的最佳方法,在之家推荐业务下,我们已经使用在大部分的场景,现有实验2000+,可配置指标50+,在未来发展中,我们还需要提高自定义指标库的丰富度,添加效应量数据维度,完善更多的场景支持。


本文地址:https://www.6aiq.com/article/1648169446197
本文版权归作者和AIQ共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出