合约广告中的流量分配问题

在合约广告中媒体要给不同的广告主按照合同分配约定好的流量,媒体的流量按照属性划分,分配给不同的广告主。下图引自参考文献1,如图所示,supply为媒体方,提供流量,在下图中,媒体的流量可以按照性别、年龄、地域划分;demand为广告主,不同的广告主需要不同细分的流量(或者说流量背后的用户),比如第一个广告主需要200K的男性流量。广告分配问题就是把不同细分的流量分配给不同的广告主,尽可能满足所有广告主的需求。比如下图中的问题,怎样把六部分流量分配给三个广告主才能满足所有广告主要的需求了?我们可以先分配CA的流量都给第二个广告主,然后就比较容易分配流量给另外两个广告主了。

实际上,我们可以把这个问题用数学形式表示,如果媒体的流量足够分给所有的广告主,那么可行的分配方式一定满足如下的约束:

其中x_ij表示i个量分配给第j个广告主的比例,s_i表示第i个流大小,d_j表示第j个广告主的需求。Γ(j)为满足广告主j的流量集合,Γ(i)流量i可以分配的广告主集合。

上述约束条件是为凸约束条件,所有符合此约束条件的解都是可行解。在实际中,为了能够求一个可行解,往往加一个目标函数,求此目标函数的最优解,并且要求即使在没有可行解的情况下,仍然可以给一个合理的解。

一个可能的目标函数是转化为最小成本问题,最小成本问题可以用参考文献2提供的软件包求解,具体的方法是保持约束条件不变,增加一个虚拟的流量单元,可以向所有的广告主提供流量,并且其流量无穷大。问题转化为如下目标函数的求解:

其中x_ij为第i个流量单元分配给第j个广告主的流量占比,x_(virtual_j)为虚拟流量单元分配给第j个广告主的流量,c_common和c_virtual分别是广告主从正常的流量单元和虚拟流量单元获取流量的成本。为了使得广告主尽可能从正常的流量单元获取流量,应该保证c_virtual远大于c_common

最小成本问题有很多方法能够求解,不同的方法有不同的复杂度(最小成本问题也是线性规划问题,线性规划问题可以在内求解,其中n为参数个数,m为约束个数),如果问题规模很大,那么这个问题并不能够快速的求解。有一些方法可以减小问题的规模(比如对连接到相同广告主的流量单元合并),使得问题可以求解。

除了求解效率外,上述方法还有一些缺陷:

  1. 问题的解不是稳定的,在这广告投放中会使得广告主的广告投放并不是一个平稳的过程
  2. 在线投放时需要保存的信息太多,如果媒体的流量按照多个维度划成流量单元,那么很可能有千万级别甚至过亿的流量单元,在线投放中需要记住每个广告主在各个流量单元中的投放量,对于广告在线投放系统压力非常大。
  3. 广告主往往有其他一些需求,比如尽可能的在符合要求的流量单元中均匀投放(均匀投放也利于在线投放时ctr优化),这些需求在上述流量分配中没有体现。
  4. 流量不足时,没有考虑优先满足优先级别高广告主

上述问题我会在接下来的文章中给出一些讨论,有些可以很好的解决,有些可能会取一些折衷。

 

接下来我会讨论雅虎的compact allocation plan以及在线分配需要考虑的一些问题

参考文献:

  1. Peiji Chen et. Ad Serving Using a Compct Allocation Plan
  2. http://lemon.cs.elte.hu/trac/lemon
posted @ 2014-02-25 21:25  童明  阅读(2469)  评论(0编辑  收藏  举报