计算广告笔记-计算广告技术概览

个性化系统框架

计算广告是根据个体用户信息投送个性化内容的典型系统之一。在介绍计算广告系统的架构之前,先看看一般的个性化系统是如何构成的。

个性化系统的一般框架

由4个主题部分构成:

  1. 用于实时响应请求,完成决策的在线投放引擎
  2. 离线的分布式计算数据处理平台;
  3. 用于在线实时反馈的流计算平台
  4. 连接和运转以上3部分数据流的数据高速公路

协作流程是:在线投放系统的日志接入数据高速公路,再由数据高速公路快速转运到离线数据处理平台和在线流计算平台;离线数据处理平台周期性地以批处理方式加工过去一段时间的数据,得到人群标签和其他模型参数,存放在缓存中,供在线投放系统决策时使用;与此相对应,在线流计算平台则负责处理最近一小段时间的数据,得到准实时的用户标签和其他模型参数,也放到缓存中,供在线投放系统决策时使用,这些是对离线处理结果的即时补充和调整

各种个性化系统之间有共性,但由于其数据来源、产品形态、优化目标的不同,系统架构的细节也会呈现很大的区别。在Web规模问题上的区别是决定系统架构不同的关键原因。

Web规模问题比较

各类广告系统优化目标

广告系统的优化目标是提高广告产品的利润

任何一个具体的计算广告系统,都是为了优化上面的目标而设计的。对应于个性化系统一般框架,在广告系统中,每次展示的r是由在线的投放引擎来决策的,离线数据处理平台和流计算平台所做的,都是为了准备

a_i,u_i,c_i

这3个变量或其组合的一些特征

不同的广告产品,优化目标有不同的表现形式,有时会有额外的约束。

主要广告产品优化目标分解

在展示量合约的GD系统中,只要各合约达成,系统的收益就是确定的,主要优化目标是在满足各合约带来的约束,成本是媒体静态产生,与广告优化过程无关,认为是常数;ADN需要估计点击率

\mu(a,u,c)

,并与广告主出的点击单价

bid_{CPC}(a)

相乘得到期望收入,成本是与收入成正比的媒体分成;ADX直接用广告主出的展示单价

bid_{CPM}(a)

作为期望收入,成本也是与收入成正比的媒体分成;在DSP中,点击率、点击价值和成本q都可能是需要预估和优化的,算法挑战较大。

计算广告系统架构

在一个完整的广告系统架构中数据的记录、交易、流转、建模和使用,这些是广澳系统最核心的驱动力,也从本质上决定了广告产品的变现能力和利润空间

img

广告投放引擎

一般来说,广告系统的投放引擎采用类搜索的架构,即检索加排序的两阶段决策过程。广告投放引擎还有一个独特模块–从全局优化的角度对整体收益进行管理。广告投放引擎的主要模块有以下几个:

  1. 广告投放机。接受广告前端Web服务器发来的请求,完成广告投放决策并返回最后页面片段的主逻辑。最重要的指标是每秒数(QPS)以及广告决策的延迟(latency);
  2. 广告检索。在线时根据用户标签与页面标签从广告索引中查找符合条件的广告候选。广告检索的候选将被送入广告排序模块。
  3. 广告排序。在线高效地计算广告的eCPM,并进行排序的模块。eCPM的计算主要依赖于点击率估计,需要用到离线计算得到的CTR模型和特征,可能用到实时点击率特征。
  4. 收益管理。代表那些在各种广告系统中将局部广告排序的广告进行进一步调整,以全局收益最优为目的做调整的功能。
  5. 广告请求接口。
  6. 定制化用户划分。

数据高速公路

将在线投放的数据准实时传输到离线分布式计算平台与流式计算平台,供后续处理和建模使用。由于在进行受众定向建模时需要用到广告系统以外的其他用户产品日志,或者第三方提供的数据,数据高速公路也担负着收集这些数据源的任务。

离线数据处理

离线数据处理有两个输出目标:一是统计日志得到报表、仪表盘等,供人进行决策时作为参考;二是利用数据挖掘、机器学习技术进行受众定向、点击率预估、分配策略规划等,为在线的机器决策提供支持。离线数据处理的主要模块有下面几个:

  1. 用户会话日志生成。从各个渠道收集来的日志,先整理成以用户ID为键的统一存储格式,把这样的日志称为用户会话日志。
  2. 行为定向。完成挖掘用户日志,根据日志中的行为给用户打上结构化标签库中的某些标签,并将结果存储在用户标签的在线缓存中,供广告投放机使用。
  3. 上下文定向。这部分包括半在线页面抓取和页面标签的缓存,这部分与行为定向互相配合,负责给上下文页面打上标签,用于在线的广告投放中。
  4. 点击率建模。在分布式计算平台上训练得到点击率的模型参数和相应特征,加载到缓存中供线上投放系统决策时使用
  5. 分配规划。为在线的收益管理模块提供服务,它根据广告系统全局优化的具体需求,利用离线日志数据进行规划,得到适合线上执行的分配方案。
  6. 商业智能系统。包括ETL过程、仪表盘和Cube。这些是所有以人为最终接口的数据处理和分析流程额总括,担负着对外信息交流的任务。
  7. 广告管理系统。广告操作者,即客户执行(AE)与广告系统的接口。AE通过广告管理系统定制和调整广告投放,并且与数据仓库交互,获得投放统计数据以支持决策。

在线数据处理

在线数据处理可以认为是离线数据处理的镜像功能,它是为了满足广告系统对实时数据反馈的要求,解决那些离线分布式计算平台无法快速响应的计算问题。包含的主要模块有:

  1. 在线反作弊。实时判断流量来源中是否有作弊流量,并将这部分流量从后续的计价和统计中去除掉,是广告业务非常重要的部分,是所有后续在线数据处理必须经过的前置模块
  2. 计费。
  3. 在线行为反馈。包括实时受众定向和实时点击反馈等部分。这部分是将短时内发生的用户行为和广告日志及时地加工成用户标签,以及实时的点击率模型特征
  4. 实时索引。实时接受广告投放数据,建立倒排索引。

计算广告系统主要技术

  1. 受众定向问题:特征提取,即对a,u,c打标签以方便后续建模和市场售卖的问题;
  2. 如果不考虑全局最优,计算广告系统主要靠eCPM估计,特别是点击率预测来完成每一次展示时的局部优化。
  3. 如果考虑到量的约束和投放时即使决策的要求,则产生了在线分配问题;
  4. 为了在多方博弈的市场中达到动态平衡时的收益最大化,需要对市场的机制设计做深入研究,进而确定合理的定价策略。
  5. 为了更全面地采样整个(a,u,c)的空间以便更准确地估计点击率,需要用到强化学习中的探索与利用方法
  6. 个性化推荐技术也被广泛使用在效果类DSP的个性化重定向中。