其他分享
首页 > 其他分享> > 美团点评效果广告实验配置平台的设计与实现

美团点评效果广告实验配置平台的设计与实现

作者:互联网

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

总第373篇

2019年 第51篇

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

广告系统中,一个好的实验平台可以令算法、工程、业务的迭代更多、更快、更好。本文详细介绍了美团点评效果广告引擎团队结合自身业务实际,在广告实验配置平台上的实践。目前该平台已经在搜索广告中全面上线,支持线上所有实验需求。

一. 背景

效果广告的主要特点之一是可量化,即广告系统的所有业务指标都是可以计算并通过数字进行展示的。因此,可以通过业务指标来表示广告系统的迭代效果。那如何在全量上线前确认迭代的结果呢?通用的方法是采用AB实验(如图1)。所谓AB实验,是指单个变量具有两个版本A和B的随机实验。在实际应用中,是一种比较单个(或多个)变量多个版本的方法,通常是通过测试受试者对多个版本的反应,并确定多个版本中的哪个更有效。Google工程师在2000年进行了首次AB实验,试图确定在其搜索引擎结果页上显示的最佳结果数。到了2011年,Google进行了7000多次不同的AB实验。现在很多公司使用“设计实验”的方法来制定营销决策,期望在实验样本上可以得到积极的转化结果,并且随着工具和专业知识在实验领域的发展,AB实验已成为越来越普遍的一种做法。

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

图1 什么是AB实验

我们都知道,机器学习在广告投放中的作用是举足轻重的,广告收入的提升离不开算法模型的优化迭代,因此算法模型的迭代也需要进行AB实验。除了算法模型的迭代之外,工程中较大规模的重构和优化也需要AB实验来验证效果的有效性和正确性。此外,目前在大部分应用中,应用参数配置采用最多是单键值的配置方式,这种配置方式的确满足了大部分配置的需要,但是在结合业务需求的情况下,使用起来可能会很乏力。

因此,我们需要搭建一个平台(Wedge),来满足算法、工程在迭代过程中的实验需求,并且满足在不同流量下应用参数配置的需求。

二. 方案设计

目标

Wedge平台的目标如下:

  1. 支持各类算法实验场景,可灵活支持后续的功能扩展。

  2. 实验配置、使用、效果回收等全链路对使用者透明,降低解释成本。

  3. 提供不同流量下应用参数的配置,降低参数解析成本。

  4. 支持版本控制,可快速回滚。

  5. 提供简洁、易用的操作界面。

设计思路

在《Overlapping Experiment Infrastructure: More, Better, Faster Experimentation》中,Google给出了一套通用的分层实验解决方案。我们以此为蓝本,结合美团点评效果广告的LBS特性,针对不同的业务场景,实现了更适合日常迭代的实验配置框架。目前,该框架已在搜索广告投放系统上全量上线。

实验分类

基于Google分层实验平台,结合实际需求进行了以下实验分类。

根据实验种类分类

根据流量类别分类

这种分类主要了为了用户体验,使平台在操作上更加的简单、易用:

架构图

图2为整体架构图,比较便于大家理解,我们可以看到整体架构分为四层:

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

图2 架构图

三. 模型设计

1. 分流模型

实验模型

如图3所示,整体模型分为以下几个部分:

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

图3 实验模型

水平、垂直分流模型

如图4所示,水平、垂直分流模型分为以下两个部分:

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

图4 水平、垂直分流模型

2. 实验命中模型

实验命中模型是指,当一个请求过来时,返回全局统一的实验参数。所有的请求都会平均地落入每一个分桶中,并且不同的Layer之间能够保证流量的正交。

名词解释

Bucket

分桶

流量正交

流量在不同Layer之间的分桶是完全相互独立的

Hash优先级

表示计算Hash值的先后顺序,用于垂直和水平实验切分

Hash因子

分桶的唯一标识

Hash串

计算Hash的字符串

取模数

Hash值计算之后的除数

实例解析

以最复杂的流量分配为例,如图5,水平、垂直流量各占全局50%流量。

水平流量上包含两个实验:Exp_1、Exp_2各占全局20%流量,还有10%流量未分配实验,垂直流量与水平流量相同。

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

图5 流量分配示例

典型实验命中如图6所示:

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

图6 实验命中流程

应用参数模型

应用参数模型如图7所示,分为两层结构:

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

图7 应用参数模型

值得注意的是,应用参数的两个层级以及之前提到的实验参数可能出现重复的情况,在出现重复的情况下参数的优先级为:实验参数>同类型流量参数>全局参数。

3. 回滚模型

很明显,平台的分流模型是层次结构的,所以在数据设计上也是每一层一个table。这样就会出现一个问题,一般的参数配置回滚都是单值的回滚,但是存在多个表的情况下没有办法这么简单地去回滚。

因此,我们设计了如下的回滚模型:

  1. 首先在配置发布时,会将所有修改的表名、列名、列类型、列新旧值、修改类型存入表中。

  2. 回滚时获取上次发布的所有修改的表名、列名、列类型、列新旧值、修改类型,反向操作数据库,达到回滚的目的。

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

图8 回滚模型

数据库表的设计如下:

列名

数据类型

说明

operation_id

BIGINT

表示配置发布的ID

table_name

VARCHAR

修改的数据表名

operation_step

INT

修改的数据表的顺序

operation_type

INT

修改类型,包括增加、修改、删除

column_name

VARCHAR

列名

old_value

TEXT

旧值

new_value

TEXT

新值

value_type

INT

值类型

四. AB实验实时效果

实时效果指标包含实际CTR、预估CTR、请求PV、广告密度、有效曝光、RPS等,由于很多数据分布在不同的日志中,所以需要实时处理。

广告的打点一般分为请求(PV)打点、SPV(Server PV)打点、CPV(Client PV)曝光打点和CPV点击打点,在所有打点中都会包含一个流量的requestId和命中的实验路径。根据requestId和命中的实验路径可以将所有的日志进行join,得到一个request中需要的所有数据,然后将数据存入Durid中。

计算各项效果指标,就是在日志join后带有实验路径的数据上做OLAP。为了支持高效的实时查询,平台采用时序数据库Druid作为底层存储。Druid作为分布式时序数据库,提供了丰富的OLAP能力和强悍的性能。Druid将数据分为时间戳、维度和指标三个部分,其中维度多用于过滤,指标用于聚合和计算等。平台将数据中的实验路径同其他用于过滤的字段一同作为维度,结合时间戳和指标字段,完成指定标签的广告效果指标计算。

五. 总结

目前Wedge平台已经完全上线,除了满足目标之外,还带来了以下的成果:

  1. 配合完成算法工程架构调整、更新流大版本升级。

  2. 算法各方向之间可以任意做垂直实验,满足算法灵活、快速迭代。

  3. 具备配置审核功能,保证配置发布的正确性。

六. 作者简介

哲琪、仓魁、刘铮,美团点评效果广告引擎团队工程师。

欢迎加入美团计算广告技术交流群,跟作者零距离交流。如想进群,请加美美同学的微信(微信号:MTDPtech03),回复:Wedge,美美会自动拉你进群。

----------  END  ----------

招聘信息

美团点评效果广告引擎团队,招募出色的后端开发工程师。我们希望您:具有扎实的后端服务开发功底,能够熟练使用Java或C++开发语言,致力于互联网技术领域。

有兴趣的同学,欢迎投递简历至:tech@meituan.com(邮件标题注明:美团点评效果广告引擎团队)

也许你还想看

美团点评广告实时索引的设计与实现

美团DSP广告策略实践

美团点评联盟广告的场景化定向排序机制

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

标签:Layer,Hash,美团,点评,流量,实验,广告,命中,参数
来源: https://blog.51cto.com/u_15197658/2769371