计算广告总结

最近在看《计算广告》,也在看相关的视频课程,所以做一个总结

广告的基本知识

广告的目的

  • 品牌广告

Brand Aeareness

创造品牌形象,提升“离线转化率”

  • 效果广告

Direct Response

短期内明确用户转化诉求的广告。

(购买,注册,投票,捐款)

广告的有效性模型

选择(曝光1、关注2) -> 解释 (理解3、信息接受4)-> 态度(保持5、购买6)

1广告位、2用户是否关注、3用户是否理解广告、4广告认可度、5艺术性带来的记忆效果、6价格

广告与营销的区别

广告 -> 挖掘潜在用户

销售 -> 针对目标人群

在线广告的特点

  • 技术和计算导向

  • 可衡量性

转化率

  • 标准化

  • “媒体”概念的差异化

计算广告核心问题和挑战

广告中的计算问题

Find the best match between a given user u, in a given context c, and a suitable ad a.

max a1…T ∑T,i=1 ROI(ai, ui, ci)

ROI(投资回报)

从优化角度看

-特征提取:受众定向
-微观优化:CTR预测
-宏观优化:竞价市场机制
-受限优化:在线分配
-强化学习:探索与利用
-个性化重定向:推荐技术

从系统角度看

-候选查询:实时索引
-特征存储:No-sql技术
-离线学习:Hadoop
-在线学习:流计算
-交易市场:实时竞价

在线广告计算的主要挑战

  • 大规模(Scale)

  • 动态性(Dynamics)

  • 丰富的查询信息(Rich query)

  • 探索与发现(Explore exploit)

广告、搜索与推荐的比较

投资回报(ROI)分析

ROI的分解

在线广告系统的ROI

-投入Investment = #X CPX
-回报Return = ∑T,i=1 u(ai, ui, ci) -> 点击率(CTR)
v(ai, ui) -> 点击价值 = ∑T,i=1 e(ai, ui, ci) -> eCPM(预期每次展示带来的价值)

不同的分解对应不同的市场形态

-CPM市场:固定eCPM
-CPC市场:动态CTR,固定click value
-CPA/CPS/ROI市场:动态CTR与click value

在线广告系统

受众定向平台 + 高并发投送系统 + 数据高速公路 + 流式计算平台

合约广告系统

常用广告系统开源工具

  • 跨语言服务搭建工具 - Thrift

Avro、ProtoBuf

合约广告系统

  • 直接媒体购买

  • 担保式投送与广告投放

-点击预测
-流量预测
-受众定向

在线分配问题

Online Allocation

受限优化问题

  • Display ad prblem

优化每一个收获到的点击量(CPM)

max ∑i,a Uia * Xia
s.t. ∑i Xia <= Ca
∑a Xia <= 1

  • Adwords problem

把具体某一个inprison产生的点击量

max ∑i,a Bia Xia
s.t. ∑i Bia
Xia <= Ba (Va)

其他问题

Maximally Representative allocation

拉格朗日方法

1.原问题 min f(x)
s.t. g(x) <= 0, h(x) = 0
2.拉格朗日 L(x, j, v) = f(x) + jg(x) + vh(x)
3.对偶函数 g(j, v) = infx∈D L(x, j, v)
4.对偶问题 max j, v g(j, v)
s.t. j >= 0

在线随机分配算法

Ba更新策略

流量预测指导下的GD在线分配

Hadoop

Hadoop核心功能

-可靠性,高效率的分布式文件系统
一个海量数据处理的编程框架

Hadoop目标

-可扩展性
-经济性
-可靠性

HDFS架构

Map/Reduce

  • 用调度计算代替调度数据

  • 类似于Unix pipe

-Pipe: cat input | grep | sort | uniq -c > output
-M/R: Input | map | shuffle & sort | reduce | output

  • 多样的编程接口

-Java native map/reduce
-Streaming (模拟pipeline)
-Pig 只关注数据逻辑,无须考虑M/R实现

Input -> map (combine) -> shuffle & sort (partition) -> reduce -> Output

  • 例子:生成大量文本上的字典
  • map: awk ‘{for(i=1; i<=NF; i++) {print $i}}’
    -reduce: uniq

常用统计模型

  • 指数族分布
  • Canonical form: p(x|θ) = h(x)g(θ)exp{θ^T * u(x)}
  • 举例:高斯(正态)分布、最大商模型
  • 最大似然(ML)估计可以通过充分统计量连接到数据
  • ▽ln g(θ) = < u(x)>
  • 指数族混合分布
  • 举例:多个高斯
  • ML估计可以通过EM算法迭代得到,每个迭代中,我们使用上一个迭代的统计量更新模型

Hadoop上的工作流引擎 - Oozie

  • 连接多个M/R Job,完成复杂的数据处理

  • 处理各个Job以及数据之间的依赖关系

  • 使用hPDL(一种XML流程语言)来定义DAG工作流

受众定向