个性化推荐系统(七)--- ABTest ab测试平台
个性化推荐系统、搜索引擎、广告系统,这些系统都需要在线上不断上线,不断优化,优化之后怎么确定是好是坏。这时就需要ABTest来确定,最近想的办法、优化的算法、优化的逻辑数据是正向的,是有意义的,是提升数据效果的。
ab需求能方便测试,提供界面快速调整流量,调整流量后能够方便看效果变化,以及不同ab分支算法对比到底是a算法好、还是b算法好、还是c算法好。再有就是白名单配置上线新算法时,实现新算法上线测试,验证程序是否正确。
根据ABtest需求,系统有三个大的系统构成。一个系统是ABTest配置管理平台用于管理每个ab需求。一个是ABTest实时分流服务,根据用户设备信息、用户信息进行ab分流。一个系统是实时效果分析统计,将分流后程序点击、浏览、gmv转化通过hive、hadoop程序统计后,在统计平台上进行展示。
ABTest配置管理平台,平台设计为每一个ab测试生成唯一id,围绕id生成测试对象,对象包含各种分组配置,每一组分组配置包含生效时间。配置管理用户白名单,白名单用户会直接分配到配置分流,而不根据算法计算分配到某个分支,白名单既能对分支算法进行测试,避免找多个用户看用户是否在需要测试算法分支,当产品、运营需要看当前新算法推出文章、商品到底是什么情况也可通过白名单方便实现。
在线实时分流服务目的是提供一个通用线上服务计算分流,返回分流结果。线上服务根据ab分流选择算法路径给用户提供个性化数据。ab服务实现需要先判断用户是否在白名单中,在白名单中直接将白名单配置分流返回。
实时分流服务算法设计为接口,接口即是协议实现接口算法皆可用以线上分流,现平台用设备尾号进行hash以保证用户流量均分,避免流量未打散、均分导致线上效果受影响。这一块还可以进行分层支持,分层ab好处是可以同时进行大量ab算法。能快速同时进行多组线上实验,快速找到好的方法提升线上效果。
实时分流服务作为基础服务,线上所有业务服务都会访问,算法正确性、服务稳定性、性能都极其重要。分流算法正确性服务先在线上试运行,一段时间后基本没有问题。稳定性、性能需要极高因为线上服务均要调用它。架构设计方式配置管理平台配置信息要缓存到本地缓存中,避免每次用户请求请求mysql数据库,每分钟几百万次请求这对数据库是灾难。当配置有变化后通过zookeeper通知变化,或定时30s去拉去配置都是很好的实现。性能要好因为线上服务均依赖它,它慢会导致线上服务慢。算法实现要简单明了,避免不必要循环以及逻辑,这点可通过review来保证。
统计分析平台,有了好用的配置管理平台,方便高性能的线上服务,统计分析作为逻辑、算法、优化是否有意义最终标准。要求是实时数据、离线数据统计能通过图表方便直观查到,并且数据要正确有一定延时可以接受、准确性是更重要的指标。
通过ABTest平台方便我们不仅仅方便做搜索引擎、推荐系统持续优化,其实线上UI、文案等各种优化,均可以通过ab来科学、直观、方便分析,到底是正向效果、没有效果、还是负向效果,讲科学避免拍脑袋。ab白名单还可以用来提供服务白名单服务,结合日志服务实现线上白名单服务,既方便定位问题,又能避免大量日志导致线上服务性能差。
微信搜索:debugme123
微信扫码或长按二维码:
个性化推荐系统(七)--- ABTest ab测试平台的更多相关文章
- 网易郑栋:数据采集与分析的那些事——从数据埋点到AB测试
本文由 网易云发布. 4月8日晚,DTalk邀请到了网易互联网分析产品.可视化 BI 产品的负责人—郑栋老师,进行了一次关于<网易郑栋:数据采集与分析的那些事第一弹: 数据篇>的主题分享 ...
- Apache 的ab测试
<!-- 博主所有文章仅是作为自己的笔记 如有不足 请见谅--> Apache的ab测试 和 ab测试 不是一个东西(百度 ab测试可以了解) 网站性能压力测试是服务器网站性能调优过程 ...
- 20145209刘一阳《JAVA程序设计》第七周课堂测试
第七周课堂测试 1.命令"CREATE DATABASE "用来创建一个数据库.(A) A .true B .false 2.以下不属于驱动的四种类型的是(C) A .JDBC-O ...
- 从零开始学AB测试:躲坑篇
AB测试的原理很简单,只用到了最简单的统计假设检验,但表面的简单通常都隐藏着陷阱,这一点没有经过实践的摸爬滚打是不容易看到的,今天我就把前人已经踩过的坑,一共15个,给大家分享一下.在分享之前,大家脑 ...
- 《SystemVerilog验证-测试平台编写指南》学习 - 第1章 验证导论
<SystemVerilog验证-测试平台编写指南>学习 - 第1章 验证导论 测试平台(testbench)的功能 方法学基础 1. 受约束的随机激励 2. 功能覆盖率 3. 分层的测试 ...
- 【转载】AB测试结果分析
AB测试,200个请求,20个并发.这样的测试强度,CPU占了70-80%,w3p占用了70多M内存,本想多测几次,看看它的内存会不会涨上去,没 有测试机器没办法,开发机要干活.我估计CPU就有问题了 ...
- 微软官方网站线上兼容测试平台-Browser screenshots
前端开发时最不想做的就是在不同浏览器.平台和分辨率测试网页显示效果,通常这会浮现许多问题,尤其浏览器版本就可能让显示成效完全不同,也只好尽力维持让每一种设备都能正常浏览网页.修改到完全没有问题必须投入 ...
- Optimizely:在线网站A/B测试平台
Optimizely:在线网站A/B测试平台是一家提供 A/B 测试服务的公司.A/B 测试能够对比不同版本的设计,选取更吸引用户眼球的那一款,从而带来更为优化的个人体验.让网站所有者易于对不同版本的 ...
- Testin云测试平台初体验
这几天偶然接触到了一个叫做Testin的云测试平台,经过一番体验,感觉还是不错的,因为里面提供了大量的测试机型,可以针对Android手机的严重碎片化现象做出比较全面的测试,同时Testin的测试内容 ...
随机推荐
- Struts2第七篇【介绍拦截器、自定义拦截器、执行流程、应用】
什么是拦截器 拦截器Interceptor-..拦截器是Struts的概念,它与过滤器是类似的-可以近似于看作是过滤器 为什么我们要使用拦截器 前面在介绍Struts的时候已经讲解过了,Struts为 ...
- 短视频图像处理 OpenGL ES 实践
2017年,短视频正以其丰富的内容表现力和时间碎片化的特点,快速崛起,而短视频最具可玩性之处就在支持人脸识别的动态贴图和各种不同效果的美颜.滤镜等.那短视频动态贴纸.滤镜.美颜等功能究竟是如何实现的呢 ...
- java基础解析系列(六)---深入注解原理及使用
java基础解析系列(六)---注解原理及使用 java基础解析系列(一)---String.StringBuffer.StringBuilder java基础解析系列(二)---Integer ja ...
- 框架基础:ajax设计方案(六)--- 全局配置、请求格式拓展和优化、请求二进制类型、浏览器错误搜集以及npm打包发布
距离上一次博客大概好多好多时间了,感觉再不搞点东西出来,感觉就废了的感觉.这段时间回老家学习驾照,修养,然后7月底来上海求职(面了4家,拿了3家office),然后入职同程旅游,项目赶进度等等一系列的 ...
- MySQL_日期函数汇总
如果转载,请注明博文来源: www.cnblogs.com/xinysu/ ,版权归 博客园 苏家小萝卜 所有.望各位支持! 关于MySQL日期时间函数,每回总 ...
- 一、js的数据类型
一.数据类型 ECMAScript中有5种简单数据类型:Undefined.Null.Boolean.Number和String.还有一种复杂数据类型--Object.ECMAScript不支持任何创 ...
- bzoj4198 荷马史诗 哈夫曼编码
逐影子的人,自己就是影子. --荷马 Allison 最近迷上了文学.她喜欢在一个慵懒的午后,细细地品上一杯卡布奇诺,静静地阅读她爱不释手的<荷马史诗>.但是由<奥德赛>和&l ...
- 创建文件DSN
记录:为了将access中表格直接上传到SQL中,不用在SQL中进行再创建. 优点:不用经过系统来生成,直接手动产生.(主要是搜索到的资料不足以一下搞出来,抱着试试的心态,最后成功了!) 操作步骤: ...
- sql的存储过程使用详解--基本语法
存储过程简介 SQL语句需要先编译然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储 ...
- 【工具篇】.NET开发常用工具
1 问题概述 本篇文章主要介绍,笔者在开发工作中,常用的开发工具.见下表: 2 工具介绍 2.1 接口调试工具 —— Postman 2.1.1 推荐网站 https://www.get ...