抽样技术#
1.基本#
抽样技术,简单说就是从统计调查总体中抽取样本进行调查,然后对总体数量特征进行推断。
非随机抽样#
- 随意抽样
- 判断抽样/有目的抽样,
- 定额抽样
- 流动总体抽样:捕获-标记-再捕获
随机抽样#
- 简单随机抽样
- 分层抽样
- 系统抽样
- 整群抽样
- 多阶段抽样
小流量实验抽样机制#
流量切分#
大搜抽样将线上流量划分成0~9999的1万份, 手段是通过一个hash算法, 对baiduid、登陆用户uid, query或者qid做hash后对10000取模。 如果hash算法足够随机,那么大搜流量都能均匀的按照抽取的key划分为10000等分, 这样,如果要抽取线上1%的流量, 只需要挑选出10000等分中的100个等分就行。
选择hash key的方式决定了流量抽取的效果, 解释如下:
- 选择baiduid作为hash key, 在baiduid未清除的时候, 用户会被稳定的抽取到或者不抽取到
- 选择登陆uid作为hash key, 一旦某个uid被选中抽样,只要用户处理登陆状态,就一直会中抽样
- 选择query作为hash key, 中不中抽样只和query有关
- 选择qid作为hash key, 由于qid是每次pv都会随机生成一个数, 所以这种方式中抽样完全是随机的,用户当前请求中抽样,刷一下就可能会不中抽样,对于用户来说,就是大搜的产品表现得不稳定。
流量分层#
流量不够的问题
- 假设一个实验抽样1%,理论上可以做100组实验。实际上有些影响面小,或者只在特定query下生效的,抽样流量都会比较高,比如50% vs 50%。
- 其他一些维度,比如客户端等限制。
所以实际上线上可用于做小流量实验的流量是有限的
方案
将线上流量划分成N*100%的流量层,基本原则:
- 同层中的实验不会同时命中,不同层中的实验可能会同时命中