A/B 测试被更多人熟知的是持续观察并对照按一定规则分成的 A、B 两组测试样本,基于数据反馈辅助优化决策,其背后复杂的数学理论和试验基础设施却往往被人忽视。

目前,国内一线互联网公司大多采用自研的方式建设 A/B 测试平台,而中小互联网企业和传统行业的企业则会选择自采的方式建设 A/B 测试平台。在面对标准不一的多种 A/B 测试平台时,企业该如何选择?参照 Google 重叠试验框架——更多、更好、更快地试验,并结合神策 A/B 测试服务数十家客户的实践,我们从不同维度总结出评价 A/B 测试平台的标准:

  • 功能:支持丰富的试验人群定向和指标管理配置,同时进行多个试验的可扩展性、灵活性

  • 性能:A/B 测试的性能越高,对实际业务造成的延迟越小,对 C 端客户的体验越好

  • 稳定:A/B 测试平台要保证足够高的 SLA,A/B 故障不应该影响正常业务运行

  • 效率:降低试验的实施和分析成本,通过标准化的试验指标计算快速发现、终止不符合预期的试验

  • 易用:降低试验的实施门槛,帮助没有 A/B 测试基础的小白快速上手、避免踩坑

基于上述评价标准,接下来我们将重点探讨神策 A/B 测试在提升功能、性能这两个维度的技术实践。

一、功能:基于数据体系与模型算法的成功演绎

A/B 测试平台功能维度的建设核心主要表现在两方面:试验人群定向和指标的支持依赖于底层的数据体系建设;同时进行多个试验的可扩展性和灵活性取决于试验模型和分流算法的设计方案

1.数据体系

神策数据的 Event-User-Item(用户-事件-实体)数据模型能够对用户行为数据标准化抽象,从而支持丰富的用户行为指标建设,为企业提供强大、便捷的分析能力。

A/B 测试构建于神策数据体系之上,基于神策数据根基平台和神策用户画像体系,神策系统支持的全部画像标签和分析指标可以更便捷地应用到 A/B 测试中;与此同时,A/B 测试产生的结果又会遵循神策标准数据模型回流到神策数据平台中,如下图所示:

采用上述架构,能够为神策 A/B 测试带来强大的试验人群定向和指标分析能力,所具备的独特优势如下:

(1)支持公有 SaaS 化部署和私有 PaaS 化部署两种方案,满足多种场景的差异化需求,而用户核心数据则私有存储在客户环境中,保障数据安全

(2)既可以作为独立产品支持客户 A/B 测试的需求,也可以结合神策分析等明星产品为客户实现数据分析感知、目标决策、线上测试验证、试验数据反馈打通的 SDAF 闭环;

(3)结合神策分析,A/B 测试的数据回流到平台后,既能够丰富用户行为分析指标种类,又能够提供用户人群圈定功能,进一步增强试验分析能力,不断形成正向反馈。

这里值得提一下,已经购买神策产品的客户,可以将现有产品与神策 A/B 测试无缝对接,再也不用为多产品打通而苦恼。

2.模型算法

要具备同时进行多个试验的可扩展性和灵活性,本质是要解决在有限的流量(比如仅能满足 2 个试验的样本量)前提下同时进行多个试验无法保证隔离的矛盾。具体来说就是:流量在试验之间互斥可以保证隔离性,但多个试验同时运行所需要的流量规模最好同时满足;让流量同时经过多个试验,即正交,需要解决试验效果出现互相干扰的问题。而试验互斥和正交的背后则隐藏了一系列复杂的技术和业务问题。

(1)试验互斥

怎么保障试验有公平获取到流量的机会?比如存量试验消耗了全部流量导致新上线的试验无法分配到流量而出现“流量饥饿”。

怎么保障试验流量的分配使用是随机且公平的?比如某个试验消耗了全部男性用户的流量,导致其他互斥的试验流量全是女性用户。

对于一个新增流量规模为 X(X<100%)的试验,如何保证该试验得到精确定义的流量规模

(2)试验正交

同时经过两个试验之间的流量如何保证均匀打散,实现流量正交,从而保证试验之间的影响是一致的,对试验效果评估不会出现相互干扰

天然存在相互干扰的试验如何解决?比如同一个按钮,试验 1 设置背景为红色,试验 2 设置文字为红色,同时命中这两个试验的用户将会看到一个没有文字全是红色的按钮。

除此之外,我们还需要保证每个试验配置的灵活性,比如差异化的人群定向和试验流量规模等。

解决上述问题的根本方法是构建一套逻辑严谨且扩展灵活的试验模型,加上能够实现严格正交的算法。以前人为鉴,筑后世基石,参照 Google 重叠试验框架,结合业界优秀的 A/B 测试平台建设经验,我们推演出如下试验模型:

在试验域、试验层和试验的模型上,我们支持精确的流量定义、严格的流量分配归属和差异化的人群定向功能;既支持独占域的试验场景规划,又支持对效果显著的试验进行全量发布;同时我们还保留了对如下复杂重叠试验模型的扩展支持,也将会面向部分存在循环嵌套重叠试验需求的客户开放该功能。

基于上述试验模型设计,我们可以充分保证同时进行多个试验的可扩展性和灵活性,但仍有可能面临一个很关键的问题——在多个试验层重叠的场景下,如何保证试验之间的流量是均匀打散,严格正交的?这里我们对 hash 因子和 hash 算法进行了大量的调研和验证,最终得到了严格正交的流量分配结果,如下:

二、性能:基于链路拆分与治理降低 A/B 测试耗时

大多数客户在使用 A/B 测试平台之前都存在疑虑:A/B 测试的性能如何,会不会对 C 端客户的响应增加延迟?解答这个问题的关键是要先搞清楚一次 A/B 测试的过程:

如上图所示,1 次 A/B 测试请求的耗时主要包含 2 次公网传输耗时和 1 次分流服务处理耗时,而公网传输耗时是 App 使用过程中不可避免会存在的。所以降低 A/B 测试延迟的根本在于降低分流服务的处理耗时规避试验请求的公网传输耗时

针对试验分流服务,我们进行了多方面的探索和尝试。

  • 增加试验结果分布式缓存和持久化存储,降低存储查询/写入次数,提升存储读写效率

  • 前置过滤试验人群定向条件,提升试验分流效率

  • 整体服务和存储支持快速水平横向扩容,保证服务响应耗时保持在平稳状态

  • 优化试验模型和抽象,简化分流业务流程

  • 拆分强弱依赖处理逻辑,部分弱依赖操作异步化

基于上述实践,最终实现了整体分流服务单次平均处理耗时在 11-12ms。

接下来,通过对服务的重构拆分,神策 A/B 测试试验分流的单次平均处理耗时会降低到 8ms 以内,TP90<10ms。

那么,对于占比超过 80% 的公网请求耗时该如何规避呢?我们可以简单拆分为通过缓存 + 异步请求的通用场景必须首次请求的特殊场景

1.通用场景

在大多数场景中,C 端用户的试验分流结果是可以被预先获取并存储的,针对这类通用场景,我们在多个端的 SDK 集成了异步定时发起试验请求 + 本地缓存的方案,如下图所示:

通过本地缓存,在对 C 端客户分流时我们就可以绕过一次实时的远程试验请求,直接在本地进行试验分流。

2.特殊场景

在部分特殊场景中,试验分流结果只能在首次加载时获取,无法预先被加载,例如投放落地页场景中用户从流量平台跳转到 B 端平台/App,因为用户信息无法提前获取到,导致在落地页加载之前必须实时发起一次试验请求。针对这部分特殊场景,可以考虑通过前文提到的私有化部署方案来规避。

通过私有化部署方案,将公网的试验分流请求转化为内网请求(平均网络延时低于 20ms),就规避了试验请求过程中不稳定的公网传输耗时。

目前,神策数据 A/B 测试持续输出功能和易用性相关实践,例如智能化的试验配置、分层、试验问题检测和试验控制,帮助渴望踏入 A/B 测试大门的客户直接上手,自动规避试验陷阱,即便是不懂复杂理论的用户,也能轻松完成 A/B 测试。

请期待更多关于 A/B 测试在稳定和效率维度的技术实践分享

✎✎✎

【更多内容】

A/B 测试搞定超 60% 会员增长

A/B 测试业务场景实践解读

神策数据 A/B 测试五大亮点

神策数据:从技术视角看,如何更多、更好、更快地实施A/B试验相关推荐

  1. 技术视角看行业SaaS

    作者:若宾 蚂蚁数字科技线产业金融技术团队 随着人口红利的逐渐消失,进入了从消费侧转向供给侧的产业互联网方向的发展.一些通过高度数字化和智能化的手段完成产业数字化升级来提升效率和降低成本为核心的Saa ...

  2. 从难以普及的数据增强技术,看AI的性价比时代

    数据是AI训练的核心,这一点已经被确认再确认了.虽然数据驱动不是AI算法训练的唯一途径,但在产业中已经出现了很明显的趋势,那些数据丰富廉价的领域,就是会更容易孕育出AI技术.像是汉英之间的机器翻译能力 ...

  3. 从技术视角看考拉海购的云原生之路

    简介:今年双11,整个云原生升级帮助考拉减少了250台服务器,并沉淀出一套完整的 IaaS + PaaS 上云落地实践方案. 前言 考拉海购的整个云化改造是从 2019年10月份开始的,当时的唯一目标 ...

  4. 埋点 神策小程序_第9讲. 神策数据获3000万美元 C+ 轮融资,A、B、C 轮资方全部跟投!...

    5月19日,神策数据 5 周年产品暨融资线上发布会正式召开.神策数据创始人 & CEO 桑文锋在发布会上宣布重磅融资信息,即获得由襄禾资本领投,晨兴资本.DCM 资本.华平投资.红杉资本中国基 ...

  5. 神策数据丨九大行业数字化经营指南集锦,值 100% 收藏

    每一份白皮书.报告和案例的开始都有一个共同点:对各行业的数字化满心期许.我们希望为更多企业在数字化转型之路上提供可靠.可信.可落地的方法论与实践指导,为数字化时代的到来贡献绵薄之力. 2021 年末, ...

  6. 单月营收超 12 亿元,叮咚买菜如何携手神策数据造就增长神话?

    "2020 年,营收要达到 200 亿元!",是 2017 年叮咚买菜刚创立时,创始人兼 CEO 梁昌霖信心满满定下的"小目标",如今,立下的 flag 即将完 ...

  7. 环球网校签约神策数据,数据赋能教育行业创新升级

    近日,环球网校签约神策数据,未来神策将以第三方大数据服务商的形式助力环球网校进一步加快教­­­育行业的创新与突破. 环球网校于 2003 年成立,十七年来秉承"教育无域,环球共享" ...

  8. 关于数据准确性,精益求精,神策数据矢志不渝的坚持

    你是否遭遇过以下场景? 老板:"你提交的报告,怎么和我查的不一样?" 业务部:"ERP 后台显示成单 687 笔,你怎么告诉我成单 620 笔?" 运营:&qu ...

  9. 神策数据宣布与微软进行深度合作 共拓大数据生态圈

    3月28日,在神策数据B轮融资暨2017年战略发布会上,神策数据创始人&CEO桑文锋透露,公司宣布与微软进行深度合作.微软加速器北京CTO王雷现身发布会现场,分享此次合作. 发布会上,在神策数 ...

最新文章

  1. 关闭Bootstrap的modal后,重新打开还会有input里上传的file解决
  2. 浅析webrtc中音频的录制和播放流程
  3. 编程题走迷宫_C++程序算法题----迷宫(一)
  4. P、NP、NPC、NP-Hard等问题总结
  5. 求职招聘系统中的观察者模式的应用和分析
  6. Android保活实现方案梳理
  7. mac mysql read only_mac Read-Only filesystem
  8. 以前积攒的一个用Java程序生成验证码的代码
  9. Ab压力测试Http
  10. 卡斯卡迪亚社区建设者奖:2017年获胜者公布
  11. 多轮检索式对话——【ACL 2017】SMN
  12. Datastage数据装载报错:Consumed more than 1000000 bytes looking for record delimiter
  13. vb.net 图片水平翻转_太牛了!98 年后浪科学家,首次挑战图片翻转不变性假设,一作拿下 CVPR 最佳论文提名...
  14. 使用dns服务器信息的方法,保护DNS服务器十大最有效方法
  15. 艺赛旗RPA 网页处理系列(三):网页检查 / 审查小技巧
  16. 如何建立测试管理体系
  17. 第四周【项目2-长方形周长和面积】
  18. Quest 3d中Lua script中常用方法2
  19. pythonmsgbox怎么使用_python学习——EasyGui msgbox()
  20. STM32的书由三部分组成:主控,串行总线,外设传感器

热门文章

  1. 计算机lg符号,数学符号lg的意思
  2. 新华三的背景_新华三集团与飞友科技签署战略合作协议,共赢智慧机场新时代...
  3. hosts和resolv.conf区别
  4. 贪心算法区间调度问题思路代码证明
  5. oracle遇null赋默认值,使用hibernate annotation 为非空列加上默认值
  6. java jtable 监听事件_【Java】在JTable中设置鼠标监听器,点击操作对应数据
  7. post json后台处理数据_Python爬虫教程-07-post介绍(百度翻译)(上)
  8. vim 有用命令-20190217
  9. rssi室内定位算法原理_三分钟看懂蓝牙室内定位 值得分享
  10. vue axios跨域请求_axios的请求拦截和vue路由的导航守卫有什么区别