微软实验管理平台
Conference Paper · May 2018 The Anatomy of a Large-Scale Online
Experimentation Platform。
因为工作负责和ABTest相关的事情,所以对ABTest系统理论与工程落地情况一直在调研,根据上面这篇论文,我们一起来学习下微软EXP系统的工程实现。摘要及其相关工作啥的废话略过,先放一张架构图:
整个系统包含四部分:
1. experiment portal
:
portal属于一个实验管理后台系统,为实验者与实验系统之间提供交互接口,实验者可以方便的在系统中创建,配置,运行并分析实验。其中系统包含三个重要的组件:
1. experiment management
实验管理界面应具有以下功能:
- 选择实验地域群体(US CN等)
- targeting or traffic filters(浏览器,操作系统,应用版本以及更复杂的实验条件,比如刚满一个月的新用户等)
- Overall Evaluation Criteria (OEC) 综合评价标准,实验者要选择好评估指标,可以内置一些常用的CTR,PV,UV等产品优化指标
- 配置实验组和对照组流量,以及实验的开始和结束时间
- 支持
re-randomization
:使用历史数据批量做AA实验,一般通过AA实验选择最合适的hash算法,目的是为了让样本尽可能均匀,然后才能做AB实验,为了提高销量,巧妙的使用历史数据做AA,这个过程叫做SeedFinder
。 - 实验管理界面 对不同产品提供不同的实验配置模版
- isolation group 是一个变量集合,每个变量都会被打上所属的isolation group,实验里的所有变量共享同样的isolation group,如果两个变量所属的isolation group有交集,那么说明这两个变量会是相互影响的,对于这两个变量,在做实验的时候应该是互斥的
- 后端管理系统能够控制变量所对应的线上业务行为。对于server端实验,代码可以随时重新发布上线,对于client端实验,比如app发版都是周期性的,所以需要能够在管理系统配置feature的开关
- 后端管理系统还可以让用户自定义metric,微软开发了Metric Definition Language (MDL),去构造metric,如ctr等,底层会重新翻译成SQL等其它语言。对于各种metric:产品效果指标,实验的置信度,实验是否分流均匀
2. experiment execution service
这个是ABTest的核心服务,为各个接入AB的服务分配实验变量。每个变量V是一个参数集合,实验可以表示为E{V1, V2}, 如V1实验组,V2对照组。 isolation group 会切分成多个变量,如下图:
每个变量都会被关联上一个或多个 isolation group,比如存在两个实验E1{V1, V2}, E2{V3, V4},E1关联隔离组G1,G2。同时E2的变量也关联G1,G2。 会发现两个实验变量所关联的隔离组是有交集的,那么这时候说明两个实验是会相互影响的,不能同时进行。
列举了三种实验组参数配置下发方式:
总之都是从 experiment execution service
拿到实验组参数配置并缓存在本地。
- 可以通过应用程序在启动时直接通过服务接口调用,去请求实验组参数配置,这样做到用户在session内有一致的用户体验。服务端和客户端均可采�
- 原文作者:知识铺
- 原文链接:https://index.zshipu.com/geek/post/%E4%BA%92%E8%81%94%E7%BD%91/%E5%BE%AE%E8%BD%AF%E5%AE%9E%E9%AA%8C%E7%AE%A1%E7%90%86%E5%B9%B3%E5%8F%B0/
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。
- 免责声明:本页面内容均来源于站内编辑发布,部分信息来源互联网,并不意味着本站赞同其观点或者证实其内容的真实性,如涉及版权等问题,请立即联系客服进行更改或删除,保证您的合法权益。转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。也可以邮件至 sblig@126.com