合约广告系统-在线分配问题

在线分配(Online Allocation)问题

在线分配问题

前面提到过广告是三方博弈,用户,广告主,媒体之间的博弈,而推荐系统是用户与媒体的博弈。它们之间的区别其一是广告主通媒体reach用户是有量的需求的,推荐系统是自己把内容推给用户,不见得有明显的量的需求。广告的量的需求体现在两个方面,一种是我前面提到的GD广告系统,有量的下限的需求,或者说有固定流量的需求,二是Non- Guaranteed delivery,即非合约方式,它有一种上限的限制,它受到广告预算的受限。所以在线分配问题的核心是:在量的某种类型的限制下,完成对质的优化。

我下面列出的是google的做法,可以将在线分配问题看成是二部图匹配的问题,二部图一边是广告结点,另一边是在线到达的页面和用户。

注意广告中的a, u, c三个要素都在这出现了。将context和user根据audience targeting分成不同的segment,每一个segment是要分配给不同的合约,要分配多少的比例,这就是allocation的问题。广告的分配与通用的二部图匹配有什么不同呢?因为广告是一个实时系统,不能离线地计算匹配问题。实时的在线分配问题在理论界和工程界都进行了大量的探讨,产生了大量的算法,读者没有必要把这些算法都理解清楚,重要的是深刻理解在线分配的问题,并结合自己的问题设计自己的算法。

因为有量的限制,它是一个constrained optimization(受限优化)的问题,最早google提出的是AdWords Problem。

简单解释一下,先看目标函数,bia是把一次展示(Impression,i)分给一个(Ad, a)产生的收益(bid * ctr, b,即ecpm),xia是指一次展示(impression, i)是否分给了一个广告(Ad, a),这个值只能为0或是1,因为一次展示只能或是分配给一个广告,或是没分配。sum(i, a)也就是整个系统的收益,max sum(i,a)即是优化的核心问题:如何最大化整个系统的收益。它的限制是:对每个广告商来讲,有一个budget,每个广告商所消耗的资金应该小于他的budget,即式中Ba

后来研究者把这个问题推广到display problem,display problem中有很多CPM的campaign,它希望优化的是每一个CPM的效果。

效果即是它收获到的点击量,点击量的计算方法为把所有的展示的Xia乘上点击率起来就是点击量。优化目标有两个constrain,一个是称之为Demand Constrain,它是指每一个广告商来讲,他需要Ca次展示,那么媒体提供的展示数应该小于等于Ca,注意这里是NGD的问题,广告系统提供的展示次数可以小于需求的量,另一个Constrain是Supply Constrain,是对于任何展示,xia加起来小于等于1,可以小于是因为这次广告也可以不分配给任何广告,它可以交给下游的其它变现手段。上面所讲的就是Allocation描述成Constrained Optimization的形式。需要注意的是大家不要纠结于到底是Display problem还是Adwords problem,因为这些问题在框架上看都是一样的,都是linear programming的问题。

Maximally Representative allocation(MRA)是另一个准则,它反映了定向广告的一些本质的市场需求。比如一个广告主买了加州的用户的流量,那个广告主实际有一个隐含的需求,他希望得到的是按自然分布的加州的用户流量。即比如不能全给广告主男性用户的流量。如果我们仅按上面的公式进行优化,会有一定的问题,比如一个广告主出高价买走了所有加州女性的用户,那其它广告主得到的流量就只能是男性用户的流量了,虽然流量还是符合用户的要求,这也就不符合广告主的本源商业需求了。所以MRA会在Objective上做一些加工,使它既优化量,又在一定程度上接近流量在一定程序上接近人群的真实分布。

拉格朗日方法

拉格朗日方式是在解受限优化中比较通用的一种方法。原问题是由下面几个部分组成:一个目标函数f(x),一组小于0的不等式Constrain g(x),一组等于0的Constrain h(x)。(注:大于0的,可以加负号把它变成小于0的)。

这里只对拉格朗日做简单的介绍,先用原问题构造拉格朗日函数,拉格朗日是x, lamda, mu的函数。它是把g(x)和h(x)分别加上lamda和mu系数放到原问题后面。

拉格朗日会产生一个对偶函数,对偶函数是对L求它的下确界(或者说最小值),对x求最小值,就将x消掉。

对偶问题是在lamda和mu上求它的最小值。

这个方法的几何意义是比较清楚的,下图来自于wiki

目标函数是f(x,y)的最小值,它的等高线是图中的两个圈f(x,y)=d­1和f(x,y)=d2,Constrain是g(x,y)=c。思考一下即可以得出,要满足g(x,y)=c的约束,f(x,y)最小值一定是在曲线与等高线相切的位置,找相切的问题就是找下确界,一般用导数等于0的方式找。

在凸优化情形下KKT条件是一定满足的,而非凸优化也可能会满足KKT条件。

在线随机分配算法

如前面所讲,把原问题中的Supply Constrain和Demand Constrain用拉格朗日方法得到一个对偶问题,对每一个a产生一个Betaa,对每一个i产生一个zi,去解这样一个对偶问题,Betaa和zi就对应Supply Constrain和Demand Constrain。

具体的算法步骤如下:

?      对每个a, 初始化对偶变量βa为0

?      当展示i在线到达时, 将其分配给a’以最大化μ­ia – βa

?      令xia’= 1. 如果a’已经得到Ca’次展示, 令i为使得此值最小的展示, 令xia’= 0

?      在对偶问题中, 令ziia’a’ , 并按照一定规则更新βa’ , 不同更新规则对应了不同的算法

通过这种方式,它构造出一种在线随机分配的算法,对每个at初始化对偶变量Betaa为0,我们可以认为Betaa的物理意义是这个广告a已经收获的点击量,比如要优化一个广告商的点击数,他已经收获的Impression里有多少点击。当每次展示i到达时,要分配某个广告a的物理意义是很直接的,分配的准则是这次展示i对广告a的点击率减去它收获的平均点击率Betaa,选择差值最大的a,意义就是选择这次展示会给广告最大提升的广告。问题的关键是每一步如何去更新Betaa,不同的Betaa对应了不同的在线分配算法,这些算法研究关注点是:在线分配的算法与离线分配的算法相比,在线分配的算法不要比离线分配的算法差的太远,尽可能接近,离线分配算法是指将一天的展示收集后批量分析的方式。

Betaa更新策略


策略


算法


有效性


Greedy


对每个aβa是分配给a的前Ca个高权重展示中最低的权重, 也即a接受一个新的展示需要抛弃的权重


1/2 competitive


Uniform Weighting


对每个aβa是分配给a的前Ca个高权重展示的权重的算术平均. 如果分配给a的展示少于Ca个, βa是这些展示总权重与Ca的比.


1/2 competitive


Exponential Weighting


对每个aβa是分配给a的前Ca个高权重展示的权重的指数加权。即:设μ1 ≤ μ2≤ μCa,则:


Ca对每个都充分大时为(1 ?1/e) competitive

请大家对上面算法的公式不必太认真,因为这些讨论主要是理论的讨论。它们主要是解决对流量没有任何先验知识的情况下,通过一定的策略,可以达到最优的程度,但这和真实的问题差别比较大,因为实际情况中,我们一定对流量是有一定的预知能力的,比如,流量有会有多少,男性用户比例如何等等。前面的讨论是在没有流量预测做指导的情况下的处理,而实际中是一定有流量预测做指导的。另一方面,最重要的一点,在线决策时是要避免存储xia,前面的讨论中,广告主a需要Ca次展示,哪些展示分配给了广告主a都要保存下来,这样空间复杂度很高,这种方法似乎实现不了,只是理论性的讨论。

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

下面要讲的算法是High Water Mark算法,是Yahoo!实际系统中用的方法,它分两个阶段,离线计划阶段和在线分配阶段。

离线计划:

l  令每个人群维度组合k的剩余supply(rk)等于预测量(sk):rk = sk

l  对于每个合约j,按照分配优先级对每个a:

l  解下式得到其serving rate αa:

如果无解,则令αa=1。

l  对Γ(a)中的每个k, 令rk = rk – min{rk, skαa}

在线阶段:

l  对在线到来的某个impression, A = {a1a2, …, a|A|}为按照分配优先级排序的所有满足要求的广告

l  按照A中的每个广告的serving rate随机分配其展示机会。

这种算法的好处是各个它是一个概率的算法,各个ad server之间可以没有通信,每个广告只需要保存αa,而前面的算法每一个Impression到达都要更新βa,换言之,serving是有状态的,每次impression都要改变状态。线上有很多ad server,要同步它们的状态是比较麻烦的。而HWM因为它是离线分析的,所以它需要尽快更新alphaa,在几个小时更新alphaa。HWM在算法角度上不如前面的算法完美,它是一个简化的版本,但它在工程中比较实用。

Yahoo! GD广告

Yahoo! Advertising Solutions首要运行的是GD广告,GD市场广告主数据为几千,年收入为Boillion量级。GD无法分配的流量转接到NGD(non-guaranteed delivery,即Rightmedia exchange)。

它是通过compact allocation plan完成线上决策,提供下列受众定向:地域,人口属性,行为(较为粗浅,常用的仅有几十个分类)。合约式销售中,品牌广告主对曝光往往有独占要求,这与竞价广告系统完全不同,比如京东,在投品牌广告的时候,合约里会签定不能出类似的电商广告,比如苏宁易购的广告。

时间: 2024-11-09 02:18:30

合约广告系统-在线分配问题的相关文章

合约广告系统-合约广告系统

合约广告系统 直接媒体购买 合约广告英文是Agreement-based Advertising,它是一种基于合约(Agreement)的商业模式,大家会看到它与后面的Network和Exchange有相当大的不同,我们当前最主要的是把合约广告要解决的问题理解清楚,具体的技术可以再理解. 传统的广告媒体购买方式是称之为直接媒体购买方式(Direct Media Buy),它是一种简单的购买方式,比如一个杂志可能有几个广告位,比如封二页,封底页,广告主可以直接购买这些广告位,这种方式没有任何的技术

合约广告系统-常用广告系统开源工具

常用广告系统开源工具 常用广告系统开源工具 是否可以用开源工具快速地搭建广告系统?可以肯定的说,基本是可以的.很多重要的模块,如上章所讲的architecture里的模块很多都可以借助开源工具实现. 在实际的广告系统中我们会用到很多的开源工具.下面我将分别讲述几个开源开具.基本上所有的大的广告系统公司都要使用Hadoop平台,除了google.Hadoop是广告平台中建模的基础,Hadoop有很多子项目,有的子项目与Hadoop有密切的联系,有的子项目仅是在Hadoop框架体系下深挖出来的一些I

合约广告系统-Hadoop

Hadoop Hadoop 概况 Hadoop 由 Apache Software Foundation 公司于 2005 年秋天作为Lucene的子项目 Nutch的一部分正式引入.它受到最先由 Google Lab 开发的 Map/Reduce 和 Google File System(GFS) 的启发.Yahoo! 是最主要源代码贡献者, 贡献了大约80%的代码,Powerset写的HBase, Facebook 写的Hive都是Hadoop上很重要的子项目.Hadoop的使用异常广泛,凡

广告基本知识-在线广告系统

在线广告系统 下图是广告系统的一个概念图,请大家不要误解成是实际的架构图. 搭建一个广告系统有以下几个重要组成部分: 1. 高并发的投送系统,即在线的AdServer,它通过请求中的user和context信息来决定展示哪些ads.它的特点是高并发,要做到10ms级别的实时决策,百亿次/天的广告投放系统. 2. 受众定向平台,它进行离线的数据挖掘分析,一般要用到Hadoop.比如进行点击率预测的分析. 3. 数据高速公路,它是联系在线与离线的部分,它比较简单,可以用开源工具实现,它的作用是准实时

合约广告中的流量分配算法

简介 合约广告是一种基于合约的广告模式,在线广告中的一种主流方式是担保式投放(Guaranteed Delivery,GD).GD是一种量优于质的广告投放方式,需要保证广告主能够获得在合约中约定的受众用户的流量.GD中,媒体的流量按照属性划分,媒体要给不同的广告主按照合同分配约定好的流量.Ad Server的准则是希望在每一次展现满足多个合约时,选择合适的广告主,以使得每个广告主效果最好,同时能够更有效的分配流量.如下图所示,supply为媒体方,提供流量,媒体的流量可以按照性别.年龄.地域划分

竞价广告系统-点击率预测和逻辑回归

点击率预测和逻辑回归 点击率预测 从广告索引中我们得到很多的广告候选,这些广告从逻辑上都满足广告主的定向条件,即广告主定向条件的DNF范式,在竞价广告系统中,我们要选择一个最优的方案,最优的广告投送出来,一般最优的广告是通过eCpm进行排序,用广义第二高价进行排序,进行收费的模式.在CPC环境中eCpm=bid * ctr,那么对CTR的预测就是竞价广告系统中最重要的一个部分. 每个公司都对点击率预测有不同的做法,做法也非常多,这里只描述一下人人对这个问题的理解和看法. 广告点击预测概率模型:

竞价广告系统-流量预测

流量预测 在前面合约式广告中提到过合约式广告中有三个基本技术,1. 受众定向,2. 点击预测,3. 流量预测.在这三个技术基础上才可以做Online Allocation,本节主要介绍流量预测. 在定向条件分的比较粗的情况下,流量预测是比较简单的,比如只对人群分了几十个类,那么只需要进行简单的统计就可以进行流量预测了.但在实际的Network中,一个广告投放的定向条件比较多(即前一节中的DNF),并且条件有或的关系,也可能有与的关系. 流量预测的方法有很多,也不乏一些fancy的做法,这里只介绍

互联网DSP广告系统架构及关键技术解析

互联网DSP广告系统架构及关键技术解析 宿逆 关注 1.9 2017.10.09 17:05* 字数 8206 阅读 10271评论 2喜欢 60 广告和网络游戏是互联网企业主要的盈利模式 广告是广告主通过媒体以尽可能低成本的方式与用户达成接触的商业行为.也就是说按照某种市场意图接触相应人群,影响其中潜在用户,使其选择广告主产品的几率增加,或对广告主品牌产生认同,通过长期的影响逐步形成用户对品牌的转化. 一个好的DSP系统需要满足: 拥有强大的RTB(Real-Time Bidding)的基础设

广告系统的smart pricing是什么

smart pricing这个词来源于google的Adwords系统,指的是系统能够根据流量质量对流量方的收入进行打折,为的是让广告主获得更高的ROI(投资回报率).将smart pricing的使用场景抽象化,任何一个广告系统,只要它有着各种各样不同的流量,而这些流量的效果有好有坏,那么smart pricing都有它的用武之地. 如果系统发现一个流量(网站.APP.网站或APP的某个广告位)的效果好,那么,我们不对它的收入进行打折. 如果系统发现一个流量的效果差(与大盘平均效果相比),那么