互联网广告算法和系统实践
书籍简介
作者:王勇睿
第一部分:互联网广告简介
广告是由已确定的出资人通过各种媒介进行的有关产品(商品、服务和观点)的、有偿的、有组织的、综合的、劝服性的非人员的信息传播活动。
三方角色
广告主(Advertiser),媒体(Media),普通受众(Audience)
1.2 互联网广告简史
合约广告(Agreement-based Advertising):采用合同约束的方式,让某一广告位在某一时间被特定广告位独占。
担保式投放(Guaranteed delivery):网站作为媒体方,需要跟广告主保证一定的投放量(页面展示或者时长),主要以CPM(cost per mile,千次展示付费)。
上下文广告(Contextual Advertising):假定用户的兴趣点跟当前的广告内容是相关的,根据网页的上下文内容进行定向。
广告交易平台(Ad Exchange):类似股票交易平台,一方面接入流量,一方面接入竞价的广告主。
计费方式:
三种方式无法相互取代,因为广告主的诉求不一样。
- CPC (Cost Per Click):按照点击付费;适用于广告主希望把流量引入自己的网站。
- CPS(Cost Per Sale):只有发生销售,广告主才会付费,不用担心投资回报率
- CPM:广告主要求大面积、稳定的曝光
1.3 互联网广告的类型
条幅广告、邮件直接营销广告、富媒体广告、视频广告、文字链广告、社交广告、移动端广告
1.4 有效性模型
曝光:位置很重要
关注:广告创意本身吸引人,做到定向精准投放
理解:广告本身所传递的信息能否被浏览者理解,优秀的广告不仅让人关注,还要让浏览者一下子知道是什么品牌、什么活动、什么噱头
信息接受:很难,很难让所有人都接受创意内容
保持:广告主关注中长期转化,让潜在用户关注品牌核心价值,牢记心中
一个好的创意,不仅要吸引人(提升CTR),并且能够抓住人(提升ROI)。
1.5 计费模式
(一)CPM
按千次展示计费,广告平台只需要把广告投放出去,获得足够的曝光,适用于品牌广告
(二)CPT
按照单位时间计费,大广告主为了增加曝光度
(三)CPC
广告系统需要对点击率进行预估,给出尽可能准确的预估分数。
广告主可以参与竞价,变相的控制推广流量。
广告主关注点击率,仍然不关注广告的实际成交情况,成交风险广告主自己承担。
(四)CPS
广告系统要预估ROI指标,完全站在广告主一方。
CPM/CPT | CPC | CPS |
---|---|---|
大的品牌广告主 | 同时照顾广告主和流量提供方的控制权,被广泛接受 | 特殊的推广渠道(阿里巴巴的淘客) |
1.6 机制设计
机制设计讨论的问题是:
在给定一个社会目标或者经济目标,以及自由选择、自愿消散的分散化决策下,能否并且怎样设计一个经济机制(包括制约条件,资源配置等),使得参与者的个人利益与设计者既定的目标一致。
广告机制设计:如何将广告平台上有限的广告位置分配给不同的广告,以达到某种既定的利益目标。目标在不同的公司甚至不同的业务线不尽相同,有可能是实现广告平台利益的最大化,有可能是实现广告主,广告平台,广告受众三赢。
纳什均衡:
本地无嫉妒均衡:locally envy-free equilibria
占优策略:
激励相容:
如果竞拍方按照真实股价出价,能够保证其获得最大利益,该竞价策略称为激励相容。
1.6.1 广告位拍卖
n个广告:
A
=
{
a
1
,
a
2
,
⋯
 
,
a
n
}
A=\{a_1,a_2,\cdots,a_n\}
A={a1,a2,⋯,an}
m个广告位:
S
=
{
s
1
,
s
2
,
⋯
 
,
s
m
}
S=\{s_1,s_2,\cdots,s_m\}
S={s1,s2,⋯,sm}
广告拍卖目标:从A中选取m条广告,依次放置到S中,如果广告
a
i
a_i
ai被点击了,广告系统需要向广告主收取一定的费用。
对于广告主而言,每次关键字拍卖竞争的不仅是是否获得展示机会,还包括在S中的排序位置。
广告位拍卖分为两个步骤:
- 广告排序:关键字命中后,展示哪些广告
- 广告扣费:广告被点击后,向广告主收取多少费用
1.6.2 广义一阶价格
一阶价格:广告主本身的出价
广告排序方式按照竞价降序排列,然后选取排序较高的前几个广告位用于展现。如果广告发生点击,就会按照广告主的竞拍出价,进行扣费。
导致竞价机器人出现,频繁改价,降低成本。
1.6.3 广义二阶价格
对于第 i i i位的广告,如果发生点击,收取第i位广告主,第i+1位广告竞价上加上一个货币最小值。
对于
A
=
{
a
1
,
a
2
,
⋯
 
,
a
n
}
A=\{a_1,a_2,\cdots,a_n\}
A={a1,a2,⋯,an},n条广告,每条广告的点击价值为
V
=
{
v
1
,
v
2
,
⋯
 
,
v
n
}
V=\{v_1,v_2,\cdots,v_n\}
V={v1,v2,⋯,vn},广告平台提供
S
=
{
s
1
,
s
2
,
⋯
 
,
s
m
}
S=\{s_1,s_2,\cdots,s_m\}
S={s1,s2,⋯,sm},每个位置当前竞价为
P
=
{
p
1
,
p
2
,
⋯
 
,
p
m
}
P=\{p_1,p_2,\cdots,p_m\}
P={p1,p2,⋯,pm},点击率为
X
=
{
x
1
,
x
2
,
⋯
 
,
x
m
}
X=\{x_1,x_2,\cdots,x_m\}
X={x1,x2,⋯,xm},对于任意广告位i上获得位置的广告j,有
(
v
j
−
p
i
)
x
i
≥
(
v
j
−
p
i
−
1
)
x
i
−
1
(v_j-p_i)x_i\geq(v_j-p_{i-1})x_{i-1}
(vj−pi)xi≥(vj−pi−1)xi−1
则称当前状况为纳什均衡,即任意一方如果加价使得排名升高,都会使得利益降低。
α
i
+
1
b
i
+
1
α
i
+
最
小
货
币
单
位
\frac{\alpha_{i+1}b_{i+1}}{\alpha_{i}}+最小货币单位
αiαi+1bi+1+最小货币单位
i+1表示排名在i后一位的广告。
广告点击率越高,每一次被点击时,从广告主扣除的费用越少,激励广告主优化广告质量提高点击率,从而提升整个广告系统的用户体验。
不是激励相容的。
1.6.3 VCG机制
目标是最大化社会价值
Vickrey-Clarke-Groves
对于
A
=
{
a
1
,
a
2
,
⋯
 
,
a
n
}
A=\{a_1,a_2,\cdots,a_n\}
A={a1,a2,⋯,an},n条广告,
每条广告的点击价值为
V
=
{
v
1
,
v
2
,
⋯
 
,
v
n
}
V=\{v_1,v_2,\cdots,v_n\}
V={v1,v2,⋯,vn},
广告平台提供
S
=
{
s
1
,
s
2
,
⋯
 
,
s
m
}
S=\{s_1,s_2,\cdots,s_m\}
S={s1,s2,⋯,sm},
每个位置当前竞价为
P
=
{
p
1
,
p
2
,
⋯
 
,
p
m
}
P=\{p_1,p_2,\cdots,p_m\}
P={p1,p2,⋯,pm},
点击率为
X
=
{
x
1
,
x
2
,
⋯
 
,
x
m
}
X=\{x_1,x_2,\cdots,x_m\}
X={x1,x2,⋯,xm}
VCG优点:
- 激励相容
- 最大化社会价值
- 存在纳什均衡,且均衡点唯一
缺点:
- 计算困难,难以向广告主解释
- 相同竞价条件下VCG扣费低于GSP,鲜有广告系统愿意降低收入使用VCG
1.7 技术课题
1.7.1 优化目标
“找到用户、上下文和合适的广告之间的最佳匹配。”
互联网广告算法的核心问题,是根据用户、环境、广告的全部有效信息,找到最合适的投放策略和模型,兼顾浏览者、广告主、广告平台的最大利益,并不断调整。
目标函数可以表示为:
F
(
U
,
C
,
A
)
F(U,C,A)
F(U,C,A)
其中,U表示User,C表示Context,A表示Advertisement。
对于广告主:
F
=
∑
i
=
1
N
R
e
t
u
r
n
i
∑
i
=
1
N
I
n
v
e
s
t
i
F=\frac{\sum_{i=1}^{N}Return_i}{\sum_{i=1}^{N}Invest_i}
F=∑i=1NInvesti∑i=1NReturni
对于浏览者,注重广告产品有没有用,创意好不好看,定向准不准,即广告对自己吸引大不大,这种吸引可以体现在CTR上:
F
=
∑
i
=
1
N
C
l
i
c
k
i
∑
i
=
1
N
I
m
p
r
e
s
s
i
o
n
i
F=\frac{\sum_{i=1}^{N}Click_i}{\sum_{i=1}^NImpression_i}
F=∑i=1NImpressioni∑i=1NClicki
对于广告系统:
F
=
C
T
R
×
P
P
C
×
D
i
s
c
o
u
n
t
F=CTR\times PPC \times Discount
F=CTR×PPC×Discount
PPC: Pay per Click 点击收费
搜索引擎技术
存储技术和实时计算技术
推荐技术
点击率预估
1.8 系统架构
- 前端引擎:接收网页广告请求
- 检索引擎
- 实时点击率预估
- 广告主操作消息更新服务:广告主有权利随时更改广告竞价,保证更新消息的及时性,完整性和安全性。
- 用户行为数据收集和更新系统
- 特征提取与行为分析
- 反作弊系统:发现和处理作弊模块,包括异常的访问、无效的点击
- 广告主后台
- 存储系统
- 计算系统
第二部分:搜索广告
2.1 搜索广告架构
搜索广告从收到查询,到最后展出广告,经历:
广告检索、广告排序、流量分配
2.2 广告检索
2.3 广告排序
通常,广告系统会按照ECPM排序:
E
C
P
M
=
P
P
C
∗
C
T
R
∗
1000
ECPM=PPC*CTR*1000
ECPM=PPC∗CTR∗1000
2.3.3 算法评估
在工业环境下,一个CTR预估模型效果是否好,最终的检验方法是看其应用于广告系统时,能否带来稳定的收入提升。
大型互联网企业,会建立一套分流机制,从生产系统中且分出一部分小流量,用于实验算法,只有在小流量上,CTR,RPM,RPC能符合要求,才会将算法发布到全流量上。
2.4 广告主推荐工具
2.4.1 投放要素
投放层级关系:
一个group完整的投放需求与策略:
给广告主提供的投放基本要素:
2.4.2 竞价词推荐方式
2.5 在线学习
在线学习模型被广泛应用于CTR预估模型中,所谓在线模型,是指模型每获得一个新的训练实例<x,y>,可以立即根据这个新的训练实例对权重向量进行调整。
海量数据的情况下,模型存储量过大,往往会给并发查询的时效性带来很大挑战。
降低模型存储空间的方法:
1、降低模型特征维度:L1正则化;泊松选择法
2、降低每一维特征权重需要的存储量
第三部分:定向广告
3.1 上下文定向
上下文定向:根据投放页面的内容,推送相关的广告。
在上下文定向中,对页面内容的刻画是关键的问题。
3.2 受众定向
受众定向:给当前的用户流量打标签,用于区分用户的兴趣点
3.2.1 监督行为定向
将点击事件和浏览事件看作是两种不同的泊松分布,其概率密度为:
P
(
y
)
=
λ
y
e
−
λ
y
!
P(y)=\frac{\lambda^ye^{-\lambda}}{y!}
P(y)=y!λye−λ
泊松分布的均值
λ
=
w
t
x
\lambda=w^tx
λ=wtx,
w
w
w为需要估计的参数。
3.2.2 非监督行为定向
3.3 行为定向
3.4 推荐系统
3.6 定向广告算法架构
定向广告解决的是当前场景下人与广告的关系:即“这样一个人”应该配“什么样的广告”。
定向广告要素图
定向算法逻辑图:先圈定候选集,然后排序
1、根据“人的历史信息”和“场景信息”,找到一个“适合这个人的广告候选集”;
2、在候选集里进行排序,找到最好的若干个广告,返回。
3.7 定向广告的平衡之道
3.7.1 关于用户疲劳
疲劳指的是浏览者连续看到相同或者类似的广告后,产生兴趣下降的现象。
3.7.2 关于多样性
多样性的问题首先要保证召回率,然后再根据候选集进行进一步的选择,也就是保证一个多样性的底线。
3.7.3 关于多目标
3.7.4 关于E&E
- Exploration: 搜寻
在广告创意全集中去找到合适的一批候选集 - Exploitation: 探索
在一批候选集里,独具慧眼的找到最适合的那一批少部分创意
第四部分:实时广告竞价
4.1 基本概念
广告交易市场、需求方平台和供应方平台是实时广告竞价最基本的三个参与者。
实时广告竞价实质上是定向展示广告的一种更高效的实现方式,其最终目标是通过对数据的挖掘和利用,在最合适的时间将最合适的广告展示给最合适的用户,达到三方的共赢。
实时广告系统的竞价路径:
4.2 广告交易市场
4.2.2 实时广告竞价
第五部分:广告系统架构及挑战
5.1 广告系统的特点
高性能
海量数据存储与处理
可运维性