AbTest —— 不同场景下的应用模式
文章目录
- 不同人群眼中的 AbTest
- AbTest 不同的功能倚重
- 用户关联性弱,经典场景为 Feed - 部门组织形式大多非垂直业务
- 用户关联性强,经典场景为 垂类/工具类APP;部门组织形式大多为垂直业务
- 康为定律-组织决定产品形态
- 不同应用模式下服务构建
- 开机 & 后置
- 小结
想了很久这章应该叫什么,最终还是定了 “不同场景下的应用模式”。介绍两种不同场景下的 AbTest 功能形态、及不同的形态造就原因。
注意:详细 AbTest 架构设计及实现,见文章
-
广告业务系统 之 辅助决策 —— “ AB 实验平台”
-
AB ? Angelababy ? 噢不,拒绝老板拍板决策的神器 !用数据说话的决策实验平台 —— AbTest !
-
Overlapping Experiment Infrastructure: More, Better, Faster Experimentation
不同人群眼中的 AbTest
依据我不同阶段眼中 AbTest 模式的变化,把人生状态分为 三个阶段。
- 首先是初识,初次遇到 AbTest 这种手段,但无实际的接触。只知道 AbTest 是通过“生物、化学…”做实验的方式,去决出最佳策略或方案,具体实现的见识固定在,谋篇介绍 AbTest 的架构或要点…文章;
- 再次是真实接触 AbTest 服务,生产环境中切实需要实现 AbTest 功能。这是已经确认了 AbTest 的两个核心要素,随机性 + 正交性、及三个功能粒度点,uv + pv + 自定义。这个时候,脑海里会大概形成对 功能点、及 AbTest 服务应用模式的定义,对服务端流量做不同功能粒度的实验;
- 第三个阶段是在另一个新的场景中,发现一个与已知 AbTest 应用方式有异正在运行的 AbTest。哦,其实不同场景中,AbTest 也是不一样的。
当然这是某个长度中对同一件事情的不同认知,因人而异,当然也欢迎雷同。下面就介绍两种应用模式。
AbTest 不同的功能倚重
用户关联性弱,经典场景为 Feed - 部门组织形式大多非垂直业务
在这类场景中,AbTest 的诉求是 对流量粒度越细越好。常规为,uv、pv。
在 Feed 的自然结果中,我可以通过 uid 和 pv 做实验。比如 A 部分用户做展示样式A,B 部分用户做展示样式B;也可以针对当前 C% 的流量做样式 C,D%的流量做样式 D。这样通过观察 用户的反馈数据,可以确认 A/B 样式的优缺;可以通过 相同比例流量下不同的点击/交互频次,可以确认 C/D 那种样式收益效果更好。
这个模式下,AbTest 需求方往往作为中台或者业务平行部门,对生产数据的视角更广、高,业务专业局限比较少。
用户关联性强,经典场景为 垂类/工具类APP;部门组织形式大多为垂直业务
这类场景中,AbTest 的诉求相对单一。常规为,uv。
在 地图/出行类强依赖登陆的状态下,uv 粒度的实验相对占据了全部实验的 99.9%,pv 或其他粒度 做起来及其复杂。比如 A 部分用户做展示样式A,B 部分用户做展示样式B…很常规与 Feed 类无异,但如果对 pv 做实验,显的不那么友好。因为要保证实验的正交性,就不可避免的出现 A 用户每次看到的实验效果不同,易对用户产生困扰或报 bug 的举动。当然,并不是不可以,比如一些用户关联性弱的场景,依旧可以做 pv 。
这个模式下,AbTest 需求方往往受垂类业务局限,部门方向走向为用户关联。这样状态下 AbTest 的应用模式就比较单一。
康为定律-组织决定产品形态
康威第一定律:组织设计的产品/设计等价于这个组织的沟通结构。
Conway’s law: Organizations which design systems are constrained to
produce designs which are copies of the communication structures of
these organizations.– Melvin Conway(1967)
线型系统和线型组织架构间有潜在的异质同态特性。异质同态指的是系统和组织虽然是两个东西,但是有相同的结构。
AbTest 不同的应用模式这个问题,也证实了这个定律。组织架构的不同,决定了部门前进的方向,进而确认了产品特征的趋势。
不同应用模式下服务构建
除了上文浅述的 AbTest 功能倚重不同,更深的是,功能的实现及构建方式也不同。准确的说,不同场景下,没有相同、完全一样的服务。 这里完善一下,对应上面场景的模块介入方式,希望可以给予你相关经验。
开机 & 后置
- 针对 垂类、用户关联性强的产品/部门,可以把 AbTest 放置开机阶段,开机往往具有热加载及倒计时逻辑,可以融纳较多的服务。当然,前面重了,就意味着后面服务就轻了。
- 针对 Feed 类,用户关联性弱的产品/部门,可以考虑把 AbTest 放置在 前置或后置服务,这样形成的漏斗具有两极性。
当然这样的方案并不唯一,也不全面。比如,还有 AbTest 往往具备更多的数据传输问题,是安排在 Header 还是 body、或者 特定协议…. 大家找到最适合当前场景的,才是最佳的。
小结
AbTest 只是一个例子,换做是其他模块/服务,或者是某件事情,在不同的场景下,都是有因果的、且合适、科学的。
相关文章:
AbTest —— 不同场景下的应用模式
文章目录不同人群眼中的 AbTestAbTest 不同的功能倚重用户关联性弱,经典场景为 Feed - 部门组织形式大多非垂直业务用户关联性强,经典场景为 垂类/工具类APP;部门组织形式大多为垂直业务康为定律-组织决定产品形态不同应用模式下服务构建开机…...
fast-api 一款快速将spring的bean发布成接口并生产对应swagger文档调试的轻量级工具
fast-api简介背景开发痛点:分析需求实战fast-api快速上手1. 引入依赖2. FastApiMapping标记service对象3. swagger2/knife4j 在线测试进阶使用开启调试模式支持指定类或包目录发布如何关闭fast-api自定义fast-api的前缀写在最后简介 fast-api 一款快速将spring的bean(service)发…...
以公益之名 让人类发现数学之美
目录 1.品牌理念高举高打 2.创新赛制 赋能品牌 3.全球化的品牌传播 9月26日,2022阿里巴巴全球数学竞赛获奖名单公布,4座金杯分别由平均年龄25岁,来自美国麻省理工学院、美国布朗大学、北京大学在读数学博士斩获。77位获奖者中00后超五成引热…...
JUC并发编程之HashMap(jdk1.7版本)-底层源码探究
目录 JUC并发编程之HashMap(jdk1.7版本)-底层源码探究 HashMap底层源码 - jdk1.7 基本概念 -采取层层递进,问答式 存储Key-Value的结构 常量和成员变量 构造方法 put方法 inflateTable方法 hash方法 indexFor方法 addEntry方法 resize方法 createEntry…...
QT Q_OBJECT 和 signals/slots
Q_OBJECT宏展开 #define Q_OBJECT \ public: \QT_WARNING_PUSH \Q_OBJECT_NO_OVERRIDE_WARNING \static const QMetaObject staticMetaObject; \virtual const QMetaObject *metaObject() const; \virtual void *qt_metacast(const char *); \virtual int qt_metacall(QMetaOb…...
APM新添加UAVCAN设备
简介 UAVCAN是一种轻量级协议,旨在通过CAN总线在航空航天和机器人应用中实现可靠通信。要实现通信,最基本需要data_type_ id, signature、数据结构、设备程序初始化。 添加设备数据结构文件(.uavcan格式) 1.在以下路径添加设备数据结构文件,根据设备类…...
【C++】string类基本用法
文章目录string类基本用法1. 为什么要学习string类?1.1 C语言中的字符串2. 标准库中的string类2.1 string类2.2 string类的常用接口说明小试牛刀1. 仅仅反转字母2. 字符串中第一个唯一字符3. 字符串中最后一个单词的长度string类基本用法 1. 为什么要学习string类&…...
KDZD耐电压高压击穿强度测试仪
一、技术参数 01、输入电压: 交流 220 V。 02、输出电压: 交流 0--50KV ; 直流 0—50kv 。 03、电器容量:3KVA。 04、高压分级:0—50KV,(全程可调)。 05、升压速率:0.1KV/s-…...
数组和指针面试题的补充(细的抠jio)
生命是一条艰险的峡谷,只有勇敢的人才能通过。 ——米歇潘 说明:用的vs都是x86的环境,也就是32位平台。 建议:对于难题来说,一定要配合画图来解决问题。 第一题: #include<stdio.h> int…...
Java多线程基础
文章目录Java多线程基础一、什么是进程与线程?二、线程和进程的区别【重点】三、线程的创建方式【重点】1. 继承Thread类2. 实现Runnable接口3. lambda 表达式四、Thread的常见属性线程中断自己定义一个标志位Thread类提供的静态方法线程的状态Java多线程基础 一、…...
爆品分析第5期 | 一条视频带货3700+,这款斋月不锈钢厨具套装火了!
俗话说民以食为天,吃在任何一种文化中都占据重要的位置,要做出一道美味佳肴,除了食材、烹饪者的自身厨艺之外,还少不了一口好锅。新冠疫情以来,全世界范围内的封闭让很多人养成了居家做饭的习惯,不仅为厨具…...
团队管理的七个要点
要掌握团队管理的要点和做好团队管理工作,不是一件容易的事,但也远非想象中那么难。首先,我个人比较推荐所有团队管理者都能阅读下《经理人参阅:团队管理》(注意该书仅可其官网获得)这本佳作。相信会为你带…...
Go语言容器之map、list和nil
一、map map和C中map一样,里面存放的是key-value键值对在Go中map是引用类型,声明语法:var map变量名 map[key的类型]value的类型package mainimport "fmt"func main() {var mp map[string]intmpls : map[string]int{"one&quo…...
软件测试的案例分析 - 闰年1
(这是关于博客质量分的测试 https://www.csdn.net/qc) 我们谈了不少测试的名词, 软件是人写的, 测试计划和测试用例也是人写的, 人总会犯错误。错误发生之后, 总有人问: 为什么这个bug 没有测出来啊?! 我们看看一类简单的bug是如何发生的,以及如何预防…...
【强化学习】强化学习数学基础:值函数近似
值函数近似Value Function ApproximationMotivating examples: curve fittingAlgorithm for state value estimationObjective functionOptimization algorithmsSelection of function approximatorsIllustrative examplesSummary of the storyTheoretical analysisSarsa with …...
JVM系列——Java与线程,介绍线程原理和操作系统的关系
并发不一定要依赖多线程(如PHP中很常见的多进程并发)。 但是在Java里面谈论并发,基本上都与线程脱不开关系。因此我们讲一下从Java线程在虚拟机中的实现。 线程的实现 线程是比进程更轻量级的调度执行单位。 线程的引入,可以把一个进程的资源分配和执行调…...
C++打开文件夹对话框之BROWSEINFO
头文件 #include <shlobj.h> #include <windows.h> #include <stdio.h> using namespace std; 案例 string chooseFile(void) {//用户选择的路径,可以是TCHAR szBuffer[MAX_PATH] {0};然后再使用TCHAR 转char字符串,此处可以直接使…...
Nuxt项目配置、目录结构说明-实战教程基础-Day02
Nuxt项目配置、目录结构说明-实战教程基础-Day02一、Nuxt项目结构1.1资源目录1.2 组件目录1.3 布局目录1.4 中间件目录1.5 页面目录1.6 插件目录1.7 静态文件目录1.8 Store 目录1.9 nuxt.config.js 文件1.10 package.json 文件其他:别名二、项目配置2.1 build2.2 cs…...
单链表的头插,尾插,头删,尾删等操作
前言顺序表要求是具有连续的物理空间,并且数据的话是在这些空间当中是连续的存储。但这样会带来很多问题,比如说在头部或者说中间插入的话,效率不是很高;并且申请空间可能需要扩容,并且越往后一般来说都是异地扩容&…...
Qt扫盲-QProcess理论总结
QProcess理论使用总结一、概述二、使用三、通过 Channel 通道通信四、同步进程API五、注意事项1. 平台特性2. 不能实时读取一、概述 QProcess 其实更多的是与外面进程进行交互的一个工具类,通过这个类来启动外部进程,获取这个进程的标准输出,…...
React Native 导航系统实战(React Navigation)
导航系统实战(React Navigation) React Navigation 是 React Native 应用中最常用的导航库之一,它提供了多种导航模式,如堆栈导航(Stack Navigator)、标签导航(Tab Navigator)和抽屉…...
NFT模式:数字资产确权与链游经济系统构建
NFT模式:数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新:构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议:基于LayerZero协议实现以太坊、Solana等公链资产互通,通过零知…...
【Oracle】分区表
个人主页:Guiat 归属专栏:Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...
智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制
在数字化浪潮席卷全球的今天,数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具,在大规模数据获取中发挥着关键作用。然而,传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时,常出现数据质…...
【7色560页】职场可视化逻辑图高级数据分析PPT模版
7种色调职场工作汇报PPT,橙蓝、黑红、红蓝、蓝橙灰、浅蓝、浅绿、深蓝七种色调模版 【7色560页】职场可视化逻辑图高级数据分析PPT模版:职场可视化逻辑图分析PPT模版https://pan.quark.cn/s/78aeabbd92d1...
宇树科技,改名了!
提到国内具身智能和机器人领域的代表企业,那宇树科技(Unitree)必须名列其榜。 最近,宇树科技的一项新变动消息在业界引发了不少关注和讨论,即: 宇树向其合作伙伴发布了一封公司名称变更函称,因…...
从 GreenPlum 到镜舟数据库:杭银消费金融湖仓一体转型实践
作者:吴岐诗,杭银消费金融大数据应用开发工程师 本文整理自杭银消费金融大数据应用开发工程师在StarRocks Summit Asia 2024的分享 引言:融合数据湖与数仓的创新之路 在数字金融时代,数据已成为金融机构的核心竞争力。杭银消费金…...
C语言中提供的第三方库之哈希表实现
一. 简介 前面一篇文章简单学习了C语言中第三方库(uthash库)提供对哈希表的操作,文章如下: C语言中提供的第三方库uthash常用接口-CSDN博客 本文简单学习一下第三方库 uthash库对哈希表的操作。 二. uthash库哈希表操作示例 u…...
日常一水C
多态 言简意赅:就是一个对象面对同一事件时做出的不同反应 而之前的继承中说过,当子类和父类的函数名相同时,会隐藏父类的同名函数转而调用子类的同名函数,如果要调用父类的同名函数,那么就需要对父类进行引用&#…...
mac:大模型系列测试
0 MAC 前几天经过学生优惠以及国补17K入手了mac studio,然后这两天亲自测试其模型行运用能力如何,是否支持微调、推理速度等能力。下面进入正文。 1 mac 与 unsloth 按照下面的进行安装以及测试,是可以跑通文章里面的代码。训练速度也是很快的。 注意…...
