标题翻译

This commit is contained in:
Jerry Lee
2017-04-25 17:39:58 +08:00
parent dc0d38fc56
commit a986c4636e

View File

@@ -17,16 +17,16 @@
- [5.1 工具](#51-%E5%B7%A5%E5%85%B7)
- [5.2 实验设计与样本量](#52-%E5%AE%9E%E9%AA%8C%E8%AE%BE%E8%AE%A1%E4%B8%8E%E6%A0%B7%E6%9C%AC%E9%87%8F)
- [5.2.1 样本量](#521-%E6%A0%B7%E6%9C%AC%E9%87%8F)
- [5.2.2 Trigging, Logging, & Counter-factuals](#522-trigging-logging--counter-factuals)
- [5.2.3 Pre- & Post-Periods](#523-pre---post-periods)
- [5.3 Fast Analytics](#53-fast-analytics)
- [5.4 Education](#54-education)
- [5.4.1 Experiment council](#541-experiment-council)
- [5.2.2 触发、日志与反事实](#522-%E8%A7%A6%E5%8F%91%E6%97%A5%E5%BF%97%E4%B8%8E%E5%8F%8D%E4%BA%8B%E5%AE%9E)
- [5.2.3 前期与后期](#523-%E5%89%8D%E6%9C%9F%E4%B8%8E%E5%90%8E%E6%9C%9F)
- [5.3 快速的分析(`Fast Analytics`)](#53-%E5%BF%AB%E9%80%9F%E7%9A%84%E5%88%86%E6%9E%90fast-analytics)
- [5.4 教导(`Education`)](#54-%E6%95%99%E5%AF%BCeducation)
- [5.4.1 实验委员会(`Experiment council`)](#541-%E5%AE%9E%E9%AA%8C%E5%A7%94%E5%91%98%E4%BC%9Aexperiment-council)
- [5.4.2 解读数据(`Interpreting the Data`)](#542-%E8%A7%A3%E8%AF%BB%E6%95%B0%E6%8D%AEinterpreting-the-data)
- [6. Result](#6-result)
- [6.1 More](#61-more)
- [6.2 Better](#62-better)
- [6.3 Faster](#63-faster)
- [6. 成果](#6-%E6%88%90%E6%9E%9C)
- [6.1 更多](#61-%E6%9B%B4%E5%A4%9A)
- [6.2 更好](#62-%E6%9B%B4%E5%A5%BD)
- [6.3 更快](#63-%E6%9B%B4%E5%BF%AB)
- [7. 结论与工作展望](#7-%E7%BB%93%E8%AE%BA%E4%B8%8E%E5%B7%A5%E4%BD%9C%E5%B1%95%E6%9C%9B)
- [8. 参考资料](#8-%E5%8F%82%E8%80%83%E8%B5%84%E6%96%99)
@@ -137,7 +137,7 @@
# 5. 工具与流程
虽然重叠架构是有能力运行更多的实验,更快速地进行实验,并能同步优化实验效果,但只依靠架构还是不够的。我们还需要工具,研究,和教育过程来支持更快速的实验。在本节,我们讨论几个关键的工具和过程,以及它们如何帮助我们扩展的。
虽然重叠架构是有能力运行更多的实验,更快速地进行实验,并能同步优化实验效果,但只依靠架构还是不够的。我们还需要工具、研究、和教导过程来支持更快速的实验。在本节,我们讨论几个关键的工具和过程,以及它们如何帮助我们扩展的。
## 5.1 工具
@@ -177,17 +177,17 @@ _Kohavi_ 假设实验与对照实验有相同的大小,比如 <img src="http:/
为了为我们的实验规模工具收集数据,我们一直运行一组 **同质测试**(`uniformity trial`),比如,我们运行许多 对比实验或A vs. A实验。这些实验有着不同的实验规模和分配类型,我们可以用这些结果经验地衡量我们指标的自然变化(`natural variance`),并可以测试我们计算的置信区间的正确性。
### 5.2.2 Trigging, Logging, & Counter-factuals
### 5.2.2 触发、日志与反事实
回顾一下,流量分配是指分配给实验的流量,但是一个实验可能不会对所有分配给它的流量进行新特性服务,相反,一些实验可能仅在某种请求时被 **触发器**(`trigger`),比如一个实验是测试何时应该显示天气信息,它可能会得到全部的流量 ,但只有一部分流量的查询会触发显示天气,这一部分但触发查询就称为触发集合。
通常,我们无法仅将触发集合的流量给实验,因为要确定请求是否触发,是需要运行时计算的,这种运行时的计算正是触发无法实现成分配条件的原因(这个触发条件很难构造对照实验流量),所以,重要的工作是记录事实(`factual`,当实验被触发)和反事实(`counter-factual`,当实验可被触发),反事实是在对比实验中记录的,比如在前面的例子中,事实(当天气信息展示)是记录在实验中的,反事实是记录在对照实验中的。比如当这个查询是可以展示天气信息的(因为它是在对比实验中,所以实际并没展示)。这些日志对于实验样本量和分析实验都很重要,因为流量中包括了没有实验变化的请求,这些请求会稀释实验的作用,在触发集合上衡量实验结果会更准确衡量实验的影响。另外,通过关注于触发集合的显著效果,实验流量的需求可以减少,因为实验的有效规模是依赖于我们要想检测的敏感度的倒数(<img src="http://chart.googleapis.com/chart?cht=tx&chl=1%2F%5Ctheta%5E2" style="border:none;" alt="1/\theta^2" />)。
通常,我们无法仅将触发集合的流量给实验,因为要确定请求是否触发,是需要运行时计算的,这种运行时的计算正是触发无法实现成分配条件的原因(这个触发条件很难构造对照实验流量),所以,重要的工作是记录事实(`factual`,当实验被触发)和反事实(`counter-factual`,当实验可被触发),反事实是在对比实验中记录的,比如在前面的例子中,事实(当天气信息展示)是记录在实验中的,反事实是记录在对照实验中的。比如当这个查询是可以展示天气信息的(因为它是在对比实验中,所以实际并没展示)。这些日志对于实验样本量和分析实验都很重要,因为流量中包括了没有实验变化的请求,这些请求会稀释实验的作用,在触发集合上衡量实验结果会更准确衡量实验的影响。另外,通过关注于触发集合的显著效果,实验流量的需求可以减少,因为实验的有效规模是依赖于我们要想检测的敏感度的倒数(<img src="http://chart.googleapis.com/chart?cht=tx&chl=1%2F%5Ctheta%5E2" style="border:none;" alt="1/\theta^2" />)。
### 5.2.3 Pre- & Post-Periods
### 5.2.3 前期与后期
一个预时期(`pre-period`)是指在先于开始实验的一个时期,这时期与实验有着相同的流量(比如,相同的`cookie`取模),但没有实验的效果,一个后时期(`post-period`)是类似的概念,区别是它是在实验之后的,这两个时期类似于一个对比实验与另一个对比实验比较,只是使用实验的流量,预时期是保证一个实验与它的对比实验是实际可比的,而不受其它因素影响,比如,有未捕获的垃圾流量或是爬虫,后时期判断运行实验是有学习到的效果,这些技术仅能用于用户`id`和`cookie`取模实验。
一个前期(`pre-period`)是指在先于开始实验的时期,这时期与实验有着相同的流量(比如,相同的`cookie`取模),但没有实验的效果,一个后期(`post-period`)是类似的概念,区别是它是在实验之后的,这两个时期类似于一个对比实验与另一个对比实验比较,只是使用实验的流量,前期是保证一个实验与它的对比实验是实际可比的,而不受其它因素影响,比如,有未捕获的垃圾流量或是爬虫,后期判断运行实验是有学习到的效果,这些技术仅能用于用户`id`和`cookie`取模实验。
## 5.3 Fast Analytics
## 5.3 快速的分析(`Fast Analytics`)
虽然前面提到的架构,可以同时进行许多实验,并快速地运行一个实验,但没有实验分析工具,一个真正的实验进程是无法在本质上快速进行的。对实验工具完整的讨论已经超出了本文的范围,但这里我们讨论一个重要的设计目的。
@@ -202,13 +202,13 @@ _Kohavi_ 假设实验与对照实验有相同的大小,比如 <img src="http:/
只有一个工具提供实验准确的指标意味着我们有唯一的一致性实现,它使用相同的过滤器(比如,移除潜在的爬虫流量和垃圾流量),这样,不同的团队之间就可的`CTR`值就具有了可比较性。一个唯一的工具也更高效,因为计算会一次完成后,并呈现给实验者们,而不是每个实验者进行他们自己的计算。
## 5.4 Education
## 5.4 教导(`Education`)
现在我们有了重叠架构和相关工具,实验设计已经完成了进行更多、更快、更好的技术方面的要求。我们还是要讨论一下人的因素。教育在促进健壮的实验目标中是同样重要的。在`Google`,有两个过程来保证实验是良好设计的,并且一个实验的结果是能被理解和传播的。
现在我们有了重叠架构和相关工具,实验设计已经完成了进行更多、更快、更好的技术方面的要求。我们还是要讨论一下人的因素。教导在促进健壮的实验目标中是同样重要的。在`Google`,有两个过程来保证实验是良好设计的,并且一个实验的结果是能被理解和传播的。
### 5.4.1 Experiment council
### 5.4.1 实验委员会(`Experiment council`)
第一个过程我们称之为实验委员会,它包含一组工程师,他们会审核实验者在做实验前提交的一个轻量级的checklist,checklist中问题包括:
第一个过程我们称之为实验委员会,它包含一组工程师,他们会审核实验者在做实验前提交的一个轻量级的`checklist`,`checklist`中问题包括:
* 基本的实验特性(比如,实验测试什么?它们的假设是什么?)
* 实验的建立(比如,要修改哪些参数,每个实验或实验集合分别要测试的是什么?在哪一层?)
@@ -217,7 +217,7 @@ _Kohavi_ 假设实验与对照实验有相同的大小,比如 <img src="http:/
* 实验规模和时间跨度(即保证,给定一定的流量,实验是有足够的统计量来检测指标敏感度)
* 实验设计(比如,是否要用预时期和后时期来保证,是否反事实日志正确被记录等等)
初次使用的实验者会通过这些问题学习合理的实验设计和实验样本量,并了解实施一个实验背后的技术细节。有经验的实验者仍会发现checklist仍是有用的。不止于此,这个方法可以将所产生的更好的实验实践传播出来(比如,产生了新的工具来促进实验,产生了新的评价指标,等等),这个checklist是一个`Web`应用,`Web`应用对于存档和教育都是有用的,教育作用体现在实验者可以阅读以往的checklist来理解相关信息。
初次使用的实验者会通过这些问题学习合理的实验设计和实验样本量,并了解实施一个实验背后的技术细节。有经验的实验者仍会发现`checklist`仍是有用的。不止于此,这个方法可以将所产生的更好的实验实践传播出来(比如,产生了新的工具来促进实验,产生了新的评价指标,等等),这个`checklist`是一个`Web`应用,`Web`应用对于存档和教导都是有用的,教导作用体现在实验者可以阅读以往的`checklist`来理解相关信息。
### 5.4.2 解读数据(`Interpreting the Data`)
@@ -227,20 +227,20 @@ _Kohavi_ 假设实验与对照实验有相同的大小,比如 <img src="http:/
* 有了有效的结果后,要保证对指标集合做整体的观察,以理解实验结果到底如何,其它划分数据的方法或是改变指标也许可以更进一步理解实验的影响。一些实验很复杂,需要实验者追踪地进行几次。
* 有了完整的结果集合,讨论并决定整个实验是一个正影响或负影响的用户体验,有了决定后,决策者可用这个数据(结合策略和战略信息)来决定是否要发布这个实验,或提出可能的改进建议,或是放弃。
讨论会对实验者是一个学习如何理解实验结果的有益之所,有经验的实验者通常不会犯以前犯过的错误,并可以预期要得到完全理解的实验结果,需要什么数据。讨论是开放的,将来要进行实验的人,可以参加以了解运行一个实验需要了解什么。实验都会记录,我们就有了一个知识库。
讨论会对实验者是一个学习如何解读实验结果的有益之所,有经验的实验者通常不会犯以前犯过的错误,并可以预期要得到完全理解的实验结果,需要什么数据。讨论是开放的,将来要进行实验的人,可以参加以了解运行一个实验需要了解什么。实验都会记录,我们就有了一个知识库。
# 6. Result
# 6. 成果
我们在2007年3月部署了我们的重叠实验架构(以有很多工具和处理预时期和后时期的架构发布),最终衡量我们整个系统成功的指标是我们在运行更多的实验,更好地运行,更快得到结果的能力。
## 6.1 More
## 6.1 更多
我们可以用几个标准来判断我们是否成功地运行更多的实验,在一个时期上一共运行了多少实验,这些实验中有多少发布了,有多少不同的实验在运行实验(见图5)。要说明的是实验的数目包含了对照实验的数目。对于运行实验人数,一些实验是有多个拥有者的(比如,如果某人离开城市或发生了事),或是将团队邮件列表中的成员也认为拥有者。不幸的是,我们无法轻松地知道有多少拥有者是非工程师,但有意思的是,非工程师的数据是在增加的,对分布层的数量,我们只计算了使用重叠架构的发布层的数量。在重叠实验之前,我们用其他的一些机制发布实验,但它们的频率在下降。在所有的图中,y轴上的数据出于保密的原因隐去了(它们是线性比例),但从趋势上可以明显地看出,我们系统支持了指数级增加的实验,发布,实验者。
<img src="figure-05-1.jpg" width="290"><img src="figure-05-2.jpg" width="290"><img src="figure-05-3.jpg" width="290">
**图5**:实验,拥有者,发布数量在时间上的趋势图
## 6.2 Better
## 6.2 更好
另一个衡量我们整体系统工具和系统的指标是判断是否比以前运行实验更好,于此我们仅有耳闻,没有实际的数据,但我们是实验委员会和讨论组的成员,我们见过这个系统发布前后的许多实验情况,我们观察的结论是:
@@ -251,7 +251,7 @@ _Kohavi_ 假设实验与对照实验有相同的大小,比如 <img src="http:/
显然理想的结果是上述问题都不存在,但是考虑到我们有更多的实验者,而上述问题即在下降,这已经是一个不错的结果。
## 6.3 Faster
## 6.3 更快
最后的一个衡量我们系统成功的指标是我们是否最终更快地得到数据,并更快地做出决策,对于速度,我们还是没有具体数据,但我们可以讨论对实验速度的观察,实验可以分解为下面几个阶段:
@@ -264,7 +264,7 @@ _Kohavi_ 假设实验与对照实验有相同的大小,比如 <img src="http:/
# 7. 结论与工作展望
在本文中,我们描述了重叠实验架构、相关工具和教育过程来以进行更多实验,更好且更健壮的实验,和更快的实验。我们并给出了实践中我们的工作的结果:更多实验,更多实验者,更多发布,并更快速且有更小的错误了。虽然实际的实现是针对`Google`,但关于设计的讨论对于任何想收集统计数据评估变化的公司都是适用的。
在本文中,我们描述了重叠实验架构、相关工具和教导过程来以进行更多实验,更好且更健壮的实验,和更快的实验。我们并给出了实践中我们的工作的结果:更多实验,更多实验者,更多发布,并更快速且有更小的错误了。虽然实际的实现是针对`Google`,但关于设计的讨论对于任何想收集统计数据评估变化的公司都是适用的。
下面是几个我们要继续改进我们实验架构的方向,包括: