15.2 实验框架
无论是广告系统调整算法、架构,还是投放时调整创意、定向策略,都需要依赖线上的实际流量测试来确定其真实效果如何。切分部分流量用于测试并非难事,但是一个实用的实验框架需要尽可能多地同时容纳多组实验,以提高流量利用效率和产品进化速度。
设计这样一个实验系统的关键,是利用系统模块之间的相对独立性,用分层的结构来扩展实验容量。在参考文献 [69] 中,作者给出了比较典型的一种分层实验框架的架构,如图15-5所示。在这一架构中,不同的实验参数被分置于不同的实验层中,一般来说,可以按模块划分这些实验层,例如在广告系统中,按检索、排序和展现将相应的参数划分成三层,每层都可以将流量切分成不同的测试子集或域。显然,在这种分层结构下,不同层上的实验是可以共享流量的,这样就大大提升了同时进行的实验数目。另外,系统还预留了一个非重叠测试域(domain),目的是方便有时需要进行的、联合调整各层参数的一些特殊实验。除了实验层以外,此实验框架还涉及了专门的发布层,用于将实验通过的参数逐渐灰度发布到全流量上。同一个参数,只能出现在一个实验层和一个发布层中,而优先级关系是优先采用实验层参数,其次是发布层参数,最后是默认参数。这样的一个兼顾流量实验和灰度发布的实验框架在实践中能够满足大部分情形下的需求。
图15-5 分层实验框架架构示意
那么在每一层中,流量是如何随机被分到各个域中的呢?对于广告系统而言,按照每次展示做随机分配是不合适的,这是因为多次广告展示之间的相关性会对测试的结果产生影响。正确的做法是按用户划分,即每个用户的广告展示请求都被固定地发送到同一个域中。这样做的目的是使得一个广告策略的高阶或长期影响能够真实地表现出来。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论