计算广告(4): 竞价广告系统

2,504 阅读16分钟

本文为课程笔记,课程地址:计算广告学

参考资料:《计算广告 互联网商业变现的市场与技术》

竞价广告系统

竞价系统理论

位置拍卖(position auctions)

在某次广告请求中,有一组广告 a=1,2,···,A 出价参与拍卖,每个广告的出价记为 ba,系统将前 S 个高出价的广告依次放到前面排序好的 S 个广告位上,这样的问题称为位置拍卖(position auctions)。

对象a的出价(bid)为bab_a,而其对位置s的 期望收益即eCPM为uas=vaxs(x1>x2>..>xS)u_{as} = v_ax_s(x_1>x_2>..>x_S),其中vav_a为点击价值,xsx_s为点击率(假设了点击率x仅与位置s有关,而点击价值u仅与广告a有关),对于显示广告,S=1。

对称纳什均衡(symmetric Nash equilibrium)

在定价问题上,我们在微观上的直觉未必可以推广到宏观市场。从整个市场的角度来看,我们重点需要研究的是市场处于稳定状态下的收益和其他特性。而所谓稳定,指的是整个竞价系统处于纳什均衡(Nash equilibrium)状态,也即每个广告主都通过出价得到了最符合自己利益的位置。对某一次位置竞价来说,其对称纳什均衡(symmetric Nash equilibrium)状态可以表示为下式:

(vsps)xs(vspt)xtt>s(v_s - p_s) x_s \geq (v_s - p_t) x_t \quad \forall t > s (vsps)xs(vspt1)xtt>s(v_s - p_s) x_s \geq (v_s - p_{t-1}) x_t \quad \forall t > s

这里的vsv_s指的是排在s位置上的广告的点击价值,并非s位置带来的点击价值,而psp_s指的是市场向排在s位置上的广告收取的费用,即定价,也就是广告主的单次投入。均衡状态的意义:对于最终位置排名竞价结果中的每一条广告,其收益都比排在其他位置上要高。显然,在这样的状态下,每个广告主都达到了自己最优的状态,整个系统也就随之稳定下来。

定价机制

市场方能够调整的策略只有psp_s的确定方式,也就是定价策略。随着定价策略的不同,市场达到稳定状态时的宏观收益情况和稳定的程度都有所不同。

VCG(Vickrey-Clarke-Groves)机制

对于赢得了某个位置的广告主,其所付出的成本应该等于他占据这个位置给其他市场参与者带来的价值损害,表示为:

ps=t>svt(xt1xt)p_{s}=\sum_{t>s} v_{t}\left(x_{t-1}-x_{t}\right)

这种定价策略直觉上的合理性很容易理解。理论分析表明,VCG 定价策略的优越性体现在如下几个方面:首先,在这种定价策略的稳定状态下,整个市场是truth-telling 的。所谓 truth-telling,可以理解为每个广告主都找到了自己的最优状态。其次,相对于其他的定价策略,这种定价向广告主收取的费用是最少的。在单广告位拍卖的情形下,VCG 定价策略就退化为第二高价策略。

广义第二高价(generalized second pricing)

第二高价:指的是在只有一个位置的拍卖中,向赢得该位置的广告主收取其下一位广告主的出价,这样的拍卖也叫作Vickrey拍卖。在搜索广告这种有多个位置的拍卖过程中,很容易直觉地将第二高价策略推广成下面的策略:对赢得每一个位置的广告主,都按照他下一位的广告位置出价来收取费用,这就是广义第二高价

第二高价和广义第二高价的直觉合理性在上面已经有所解释。但是实际上,第二高价是单位置拍卖时的最优定价策略,然而广义第二高价却不是多位置拍卖时的最优定价策略(最优策略是VCG定价)。虽然并非理论上最优,广义第二高价却有着实现简单、容易向广告主解释等诸多操作中的优点,因此在实际的竞价广告系统中是最主流的定价策略。

广告网络概念

对展示广告而言,合约式的售卖方式必然无法消耗所有的库存,实际销售中为了控制售卖比例以获得更高的品牌溢价空间,未通过合约售卖的广告流量很多。这部分流量我们称为剩余流量(remnant inventory)。竞价交易模式的产生为这部分流量提供了变现的机会,催生了广告网络这一产品。广告网络的产品功能是批量聚合各媒体的剩余流量,按照人群或上下文标签的流量切割方式售卖给广告主。

竞价广告网络有下面几个关键的产品特点。

  1. 竞价方式不向广告主做量的约定,而是根据变现能力,即 eCPM,来决定每次展示分配给哪个广告主。因此,与合约式的广告系统不同,广告网络大大降低了为保证合约而设计复杂的在线分配算法的必要性,使得其中的计算技术可以把精力集中在对eCPM的估计上。
  2. 按人群售卖,广告网络会极力淡化媒体和广告位的概念。由于淡化了媒体的概念,广告网络中很难拿到品牌溢价高的广告位,一般来说也不适合广告主的品牌类需求。
  3. 从商业角度来看,广告网络的销售模式与合约的方式相比也有两点优势:首先是无需再满足广告主品牌独占的要求,这使得让国美和苏宁同时参与同一个人群的竞价、提高市场流动性成为可能,而在合约广告中,这一点是很难做到的;其次,由于广告网络根据实际消耗来结算,一般来说财务上采用广告主先充值的方式,这区别于合约广告投放结束后计算的方式,结果使得广告网络运营方的现金流状况大为改善。

广告网络存在CPM、CPC和CPS等不同的结算方式,不过最主流的方式是CPC。CPC 结算的合理性:首先,从需求方来看,既然是各种媒体的不同广告位聚合在一起售卖,广告主无法知道每个媒体上广告的具体位置。而位置对于广告的曝光效果影响巨大,因此实际上广告主根本无法评估每次展示的出价,而在点击上出价,这个问题就没那么严重了。另外从供给方来看,由于淡化了广告位的概念,并且聚合了多个媒体的流量,广告网络可以接触到同一个用户比较丰富的网络行为,并且知道每次展示所在的媒体与广告位位置,所以比广告主更容易估计点击率。由广告网络负责估计点击率,需求方根据对点击价值的估计来出价,是最合理的市场分工。

但是,对于一些有特殊业务需求或者特殊数据来源的媒体或媒体组合来说,有时候希望能够直接从广告网络的广告库中挑选广告,并能够创造比广告网络自动挑选更多的价值。因此,某些广告网络也会对一部分合作供给方开放广告库供其自行挑选,广告网络的这种运营模式可以称为联盟(affiliate)模式。

工作流程如下

  1. 用户浏览页面时,Ad retrieval根据用户熟悉和页面属性,从Ad Index中找到相关广告,有新广告加入时,通过real-time index将广告加入Ad Index
  2. 对相关广告进行eCPM排序,针对对点击出价,即估计CTR
  3. 将用户行为落日志,用于改进后序点击率模型预估,同时通过流计算平台进行反作弊监控以及收费

广告检索

大量中小广告主参与的竞价广告市场中,复杂的定向条件对检索技术提出了新的要求。倒排索引是搜索引擎的关键技术,而广告的检索上也采用这样的框架。但是广告的检索问题也有一些自身的特点和需求,基本的倒排索引技术在广告检索中遇到了两个新问题。

  1. 定制化搜索:广告的定向条件组合可以看成是一个由与或关系连接的布尔表达式,这样的文档显然与搜索引擎面对的BoW文档不太一样,这里存在着有针对性的检索性能优化空间。
  2. 长query:在上下文关键词或和用户标签比较丰富时,广告检索中的查询可能相当长,甚至会由上百个关键词组成,这种情况下的检索也与搜索引擎中主要由 1~ 4 个关键词组成的查询有很大区别。

广告检索与普通搜索引擎检索的第一个不同是布尔表达式的检索问题。在受众定向的售卖方式下,一条广告文档不能再被看成是BoW而是应该被看成一些定向条件组合成的布尔表达式,如下面的几个例子。

这些例子用布尔表达式表示广告的定向人群,并且写成析取范式(Disjunctive Normal Form,DNF) 的形式。在这样的表达形式中,先要解释以下两个概念。

  1. 每个 DNF 都可以分解成一个或多个交集(conjunction)的并,如a1a_1可以分解成j1=(age{3}geo{北京})j_1=(age\in \{3\} \cap geo \in \{北京\})k2=(geo{广东}gender{})k_2 = (geo \in \{广东\} \cap gender \in \{男\})这两个交集。
  2. 每个交集又可以进一步分解为一个或多个赋值集(assignment)的交,以 j1为例,可以分解为 age{3}age\in\{3\}geo{北京}geo\in\{北京\}这样两个赋值集。

布尔表达式检索的问题有两个特点,这两个特点是设计算法的重要依据。首先,当某次广告请求的定向标签满足某个 Conjunction 时,一定满足包含该 Conjunction 的所有广告,这说明只要对 Conjunction 建立倒排索引,并加上一层 Conjunction→AD 的辅助索引即可。其次,在 Conjunction 的倒排索引中,有一项直觉可以帮助我们减少计算:令sizeof(query)表示广告请求中的定向标签个数,而sizeof(Conjunction)表示某Conjunction中的含有“∈”的 Assignment 数目,当 sizeof (query)<sizeof (Conjunction)时,该 Conjunction一定不满足该次请求。

算法维护一个两层的倒排索引,即上面所说的Conjunction 和 AD 两层索引,后一个索引按照“或”的关系进行检索。具体方法略(看书上13.4.1)。

相关性搜索

竞价广告与搜索的检索问题还有一点不同,有时,竞价广告系统需要处理很多个标签组成的查询。让我们考虑上下文定向的情形:当通过网页内容的关键词来匹配广告候选时,往往需要用十多个甚至几十个关键词去查询广告,再进行eCPM排序。在这一情形下,如果仍然采用一般搜索引擎对查询的处理办法,则会陷入两难的境地。如果假设各个关键词之间是“与”的关系,基本上不可能得到任何匹配的结果;如果假设各个关键词之间是“或”的关系,那么在检索阶段就会返回大量相关性很差的候选,给后续排序的效率带来很大的挑战。

同样地,当用户的兴趣标签较丰富时,也存在类似的挑战。简单地比较一下搜索与搜索重定向广告就可以理解为什么展示广告的查询信号会丰富很多:在搜索中,仅仅需要根据用户当前输入的关键词进行检索;而在搜索重定向广告中,虽然用的也是搜索信号,但是需要将用户一段时间内的搜索关键词全部考虑,显然这样的查询要长了很多。在此也可以看出,搜索广告完全可以采用一般的检索技术,但是展示广告需要有新的方案。

考察上面问题产生的原因会发现,在长查询的检索情形下,我们实际上希望的是查询与广告候选间的相似程度尽可能高,但任何一个关键词是否出现在文档中其实都不关键。这样以查询和文档间的相似程度为目标的检索问题称为相关性检索

解决相关性检索的基本思路是在检索阶段就引入某种评价函数,并以此函数的评价结果决定返回哪些候选。评价函数的设计有两个要求:一是合理性,即与最终排序时使用的评价函数近似;二是高效性,即需要在检索阶段实现快速评价算法,否则就与在排序阶段对每个候选分别计算没有差别了。研究表明,当选用线性评价函数(变量为各标签或关键词)且各权重为正时,是可以构造出这样的快速检索算法的。假设线性评价函数的形式如下式所示:

score(a,c)=tF(a)F(c)αtvt(a)\operatorname{score}(a, c)=\sum_{t \in \boldsymbol{F}(a) \cap \boldsymbol{F}(c)} \alpha_{t} v_{t}(a)

其中F(a)F(a)f(C)f(C)分别表示广告文档a和上下文特征c上不为零的特征集合,比如查询中的关键词,而 vt(a)v_t(a)表示 t 这一特征在a广告上的贡献值。常用的VSM模型不符合这一要求,但是如果不考虑余弦距离中的归一化分母,可以用这一线性函数在检索阶段做近似的预评估。这种情况下,αt\alpha_t即为关键词t 在上下文中的TF-IDF,而vt(a)v_t(a)即为 t在某广告a中的 TF-IDF。虽然αt\alpha_t在不同的查询中取值不同,但在同一次查询中是一组常数。

将线性函数评价过程加速的关键在于使用两个上界:一是某个关键词t在所有文档上贡献值的上界,记为 utu_t;二是某个文档中所有关键词的上界的和,这实际上是该文档对当前查询评价函数的上界,记为 UaU_a。巧妙地利用这两个上界可以在检索过程中排除掉大量不可能胜出的候选,从而达到快速评价的目的。这一方法即为Andrei Broder等人提出的WAND(Weak AND)算法,也是上下文定向广告和内容推荐产品中非常实用的快速检索算法(对长尾分布查询加速明显)。

WAND 的检索过程如图所示,图中每个关键词(Term)带有一条倒排链,链表中的每一项是包含此关键词的文档 ID,用阴影表示。WAND 算法用到一个小顶的排序堆结构:该堆维护着到目前为止的 top-K 结果,当新的候选产生时,如果堆尚未装满或相关度大于堆顶文档的相关度,则采用堆排序的方法将其插入堆,否则就可以直接抛弃此候选。检索过程迭代地执行下面两个步骤。

  1. 将各关键词对应的倒排链按照其最小的文档 ID 升序排列。

  2. 按前面的升序依次访问各关键词 t,并累加其对应的utu_t至 U ,直至 U 大于堆顶。

设此时到达第 n−1 个关键词(图中 n=3),如果此时第 0 个关键词倒排链和第 n−1个关键词倒排链的最小文档 ID 一致,则计算该文档准确的相关性,如果仍然大于堆顶,则该文档推入堆;如果最小文档 ID 不一致,说明该候选无胜出的可能,于是在前n个关键词倒排链中挑选一个,将链表头跳到第n−1个关键词倒排链的最小文档 ID,然后流程跳转至第 1 步(书上有代码,可以帮助理解,我理解是复杂度一致,可以减少t查询次数?)。

流量预测

在展示量合约广告中,流量预测是一项支持技术,它对于在线分配的效果至关重要。除此以外,在广告网络中,一般来说也需要根据定向条件和出价估计广告展示量,以辅助广告主进行决策。

流量预测的问题可以描述为:给定一组受众标签组合以及一个eCPM的阈值,估算在将来某个时间段内符合这些受众标签组合的条件、并且市场价在该 eCPM 阈值以下的广告展示量。这里的 eCPM 阈值主要是用于竞价广告系统中,目的是了解在某出价水平下的流量情形。

可以视为query为ata_t(u,c)(u,c)进行检索的反向retrieval问题。由于(u,c)(u, c)联合空间规模过大,需要对u和c分别处理。

上下文页面c索引,分解为:

  • c 上下文页面
  • impressioncimpression_c:页面的流量
  • pc(eCPM)p_c(eCPM):页面的eCPM分布

预测过程如下:

  1. 给定a,首先通过c的索引查出所有符合条件c的集合
  2. 对每个c估计e(a, c),并根据pc(eCPM)p_c(eCPM)得到a在c上胜出的百分比p(a, c),并将a的流量累加:p(a,c)×impressioncp(a, c) \times impression_c

ZooKeeper介绍

Zookeeper 是在基于消息传递通信模型的分布式环境下解决一致性问题的基础服务,它的基础原理是 Paxos 算法,而这一算法最早的工业界应用是Google 开发的 Chubby。

课程推荐了解Paxos算法,课程讲的太模糊,这边不做记录。

点击率预测和逻辑回归

点击率预测概率模型

u(a,u,c)=p(clicka,u,c)u(a, u, c) = p(click| a, u, c),即在知道广告(a)、用户(u),上下文(c)的情况下预测点击率。

广告根据eCPM进行排序,因此需要准确估计CTR,不仅仅是候选的CTR排序正确,点击率需要乘以点击单价才得到最后的排序。

关键问题

新广告的cold-start

解决方法有:利用广告层级结构(creative, solution, campaign, advertiser),以及广告标签对新广告点击率做估计。

捕获点击率的动态特性

  • 动态特征:快速调整特征
  • 在线学习:快速调整模型

使用逻辑回归进行点击率预估

Logistic Regression模型

p( click a,u,c)=σ(wTx)p(\text { click } \mid a, u, c)=\sigma\left(w^{T} x\right)

逻辑回归优化方法介绍

BFGS(Broyden, Fletcher,Goldfard,and Shanno)

Quasi-Newton方法的一种,思路为用函数值和特征的变化量来近似Hession矩阵,以保证正定性,并减少计算量。BFGS计算公式如下,空间复杂度为O(n2)O(n^2)

Hk+1=HkHkykykTHkykTHkkk+kskTykTsk,yk=k+1k,sk=xk+1xkH_{k+1}=H_{k}-\frac{H_{k} y_{k} y_{k}^{\mathrm{T}} H_{k}}{y_{k}^{\mathrm{T}} H_{k}{ }_{k}{ }_{k}}+\frac{{ }_{k} s_{k}^{\mathrm{T}}}{y_{k}^{\mathrm{T}} s_{k}}, y_{k}=\nabla_{k+1}-\nabla_{k}, s_{k}=x_{k+1}-x_{k}

L(limited memory)-BFGS

n×nn\times n的Hessian阵进行分解近似,空间复杂度降为O(n×k)O(n\times k)

可以容易地用map/reduce实现分布式求解,mapper求解部分数据上的梯度,reducer求和并更新梯度。

ADMM(Alternating Direction Method of Multipliers)

增加每轮迭代复杂度,从而减少迭代次数。

Alternating Direction Method of Multipliers形式

minf(x)+g(z)\min f(x)+g(z) s.t. Ax+Bz=cA x+B z=c

Augmented Lagrangian及迭代解法

Lρ(x,z,y)=f(x)+g(z)+yT(Ax+Bzc)+ρ2Ax+Bzc22L_{\rho}(x, z, y)=f(x)+g(z)+y^{\mathrm{T}}(A x+B z-c)+\frac{\rho}{2}\|A x+B z-c\|_{2}^{2}

xk+1argminxLρ(x,zk,yk),zk+1argminzLρ(xk+1,z,yk)x^{k+1} \leftarrow \arg \min _{x} L_{\rho}\left(x, z^{k}, y^{k}\right), z^{k+1} \leftarrow \arg \min _{z} L_{\rho}\left(x^{k+1}, z, y^{k}\right)

yk+1yk+ρ(Axk+1+Bzk+1c)y^{k+1} \leftarrow y^{k}+\rho\left(A x^{k+1}+B z^{k+1}-c\right)

表示为更简洁的形式,实际应用中使用

xk+1argminx(f(x)+(ρ/2)Ax+Bzkc+uk22)x^{k+1} \leftarrow \arg \min _{x}\left(f(x)+(\rho / 2)\left\|A x+B z^{k}-c+u^{k}\right\|_{2}^{2}\right)

zk+1argminz(g(z)+(ρ/2)Axk+1+Bzc+uk22)z^{k+1} \leftarrow \arg \min _{z}\left(g(z)+(\rho / 2)\left\|A x^{k+1}+B z-c+u^{k}\right\|_{2}^{2}\right)

uk+1uk+Axk+1+Bzk+1cu^{k+1} \leftarrow u^{k}+A x^{k+1}+B z^{k+1}-c

ADMM可以简洁地通过MapReduce 模式迭代进行求解。 表示为样本划分的逻辑回归的ADMM分布式解法,将样本划分为N份,其中每个mapper复杂一份,优化问题如下

mini=1Nσ(wixi)+r(z)\min \sum_{i=1}^{N} \sigma\left(w_{i} x_{i}\right)+r(z) s.t. wz=0w-z=0

分布式的迭代解法如下

wik+1argminwi(σ(wixi)+ρ2wizk+μik22)w_{i}^{k+1} \leftarrow \arg \min _{w_{i}}\left(\sigma\left(w_{i} x_{i}\right)+\frac{\rho}{2}\left\|w_{i}-z^{k}+\mu_{i}^{k}\right\|_{2}^{2}\right)

zk+1argminz(r(z)+Nρ2zkwˉk+1+μˉk22)z^{k+1} \leftarrow \arg \min _{z}\left(r(z)+\frac{N \rho}{2}\left\|z^{k}-\bar{w}^{k+1}+\bar{\mu}_{k}\right\|_{2}^{2}\right)

μik+1μik+wik+1zk+1\mu_{i}^{k+1} \leftarrow \mu_{i}^{k}+w_{i}^{k+1}-z^{k+1}

课件讲的比较简单,具体需要进一步查阅资料

点击率模型的特征

感觉书上讲的逻辑比较完善,课件只讲了动态特征,这边介绍静态特征。

受众定向得到的所有 t(a,u,c)以及这些特征的运算,可以组合出大量的特征供模型选择,这是大多数机器学习问题共同的方法。这样的特征生成方法是点击率特征的基础方法,不过在广告这样的问题中也遇到一些挑战:一是组合特征数量可能巨大,使得模型的参数数目也非常大多,工程上参数更新和在线计算都需要比较高效的设计;二是模型动态性的本质要求参数快速更新,而在多台广告投放机之间协同进行在线学习并非易事。

点击率预测问题的主要挑战在于如何使模型能捕捉高度动态的市场信号,以达到更准确预测的目的。这一挑战可以用在线的模型学习算法,或者用快速更新的动态特征来解决,从方法论上说,这两种思路是对偶的,但我们将重点放在第二种思路,因为其工程扩展上更方便一些。

静态特征

为什么广告展示的决策可以提取出大量的特征呢?这是因为(a,u,c)三个维度上,都存在着人为指定或机器生成的多种标签,这些标签有的相互独立,也有的存在一定的层级关系。比如以 a 上的标签为例,我们介绍过,在广告运营当中,广告会被组织成广告主、广告计划、广告组、广告创意这几个层次。在预测的过程中,这样的层级结构对于更稳健地估计某个广告,特别是新广告的点击率有非常大的帮助。

有的特征总量等于这两侧标签的取值可能性总量的乘积,可选的特征总量巨大,对应的模型维度也非常高。直接生成所有可能的单维度特征和组合特征,选取出现频次在一定阈值以上的,将其作为 LR 模型的特征集合。这样的特征,我们称为静态特征,这是广告点击率模型特征生成的基本方法。显然,静态特征都是取值为0或1的特征。

动态特征

在机器学习问题中,有一项很重要的方法论,即某项模型侧的技术,一般都可以找到特征侧的对偶方案。那么如何设计特征方案达到与模型快速演进类似的效果呢?当然就是让特征变成快速演进的。如何才能让特征“动”起来呢?办法也很简单:当某个组合特征被触发时,我们不再用 1,而是采用这个组合历史上一段时期的点击率作为其特征取值。这样一来,即使是同一个 t(a,u,c),在不同的时间点,其所对应的特征取值也是不同的,这样的特征就是动态特征。

可以这样理解采用历史点击率作为动态特征:我们最终预测的是某个特定(a,u,c)上的点击率,而某个组合特征 t(a,u,c)上的点击率可以认为是关于最终目标的一个弱决策器。通过对这些对应特征组合的弱决策器的融合,可以更容易地预测该(a,u,c)上的点击率。这样的方案有个最大的好处,那就是这些弱决策本身只需要简单的数据统计就可以得到,而不需要复杂的训练过程。因此,通过这些简单的弱决策器来捕捉模型的动态部分,整体的融合模型就可以不必那么快速地更新了

优势

  • 工程架构扩展性强(与在线学习相比,变feature相对容易)
  • 对新(a, u, c)组合有较强的back-off能力
  • 使用动态特征的另一个好处是可以大大减少模型的参数数目, 整体模型的参数个数就由各种维度组合总的实例数目降到了维度组合的种类数目,其离线估计和在线计算都会大为简化。

缺点

  • 在线特征的存储量大,更新要求高

探索与利用

在点击率预测中,我们需要采取或是模型、或是特征上的手段来捕获动态信息。这也就意味着,对某种类型的(a,u,c)组合,如果没有相关历史数据的支持,很难对其合理地估计点击率。由于线上我们总是使用统计上最优的策略来投放广告,那些非最优的组合出现机会很少,因而对这部分的估计也就不准确。实际上,无法对特征空间均匀采样构造训练集,是互联网问题区别于其他机器学习问题的重要特点。

此问题属于强化学习的范畴。直觉的想法是牺牲一部分流量上 eCPM 最优的策略,采用相对随机的策略采样那些效果未知的特征空间,这称为探索(exploration)过程;再根据探索和正常决策的总体流量更有效地预测点击率,这称为利用(exploitation)过程。这样的整体策略称为探索与利用,即 E&E。E&E 可以形象地类比成玩老虎机时的决策问题:玩家面对老虎机上 A 个有不同期望收益的手柄,需要用尽可能少的筹码探索出收益最高的那个手柄,然后利用这个结果去获取回报。这种简单的 A 中选 1 的研究问题也称为多臂老虎机(Multi-Arm Bandit,MAB)问题。

问题

  • 为长尾的(a, u, c)组合创造合适的展示机会以积累统计量,从而更加准确的预估其CTR
  • 提升整体的广告收入,即需要严格控制探索的量和有效性

MAB问题

  • 有限个arms(或称收益提供者)a,每个有确定有限的期望收益E(rta)E(r_{ta})
  • 在每个时刻t,从arm中选择一个,最终优化整体收益

基本方法为ϵ\epsilon比例的流量用于随机探索,引出调整的问题有

  • 海量的组合空间需要被探索
  • 各个arm的期望收益是动态变化的

UCB(Upper Confidence Bound)

此方法在每次投放时不是简单地选择经验上最优的广告,而且考虑到经验估计的不确定性,进而选择估计值有可能达到的上界最大的那个广告。

  • 在时间t,通过以往观测值以及某种概率模型,计算每个arm的期望收益的UCB,并选择UCB最大的arm
  • 不可能一直选择非最优的arm,随着选择此arm的次数越多,其UCB就越接近其期望收益

具体UCB策略

  • βUCB\beta-UCB策略:依一个很大的概率,我们选择非最优arms的次数存在着一个上界,该上界与总的选择次数无关
  • UCB-tuned策略:我们选择的次数越多,就越可以自信地抛弃不太有前途(但仍可能最优)的arm

LinUCB

对每次展示,每个arm(广告)a有一个对应的特征矢量x(u,a)x(u, a),用此特征矢量代替arm本事进行Bandit决策。

Disjoint linear model

E(rtaxt,a)=xt,aTθa\mathrm{E}\left(r_{t a} \mid \boldsymbol{x}_{t, a}\right)=\boldsymbol{x}_{t, a}^{\mathrm{T}} \boldsymbol{\theta}_{a}

参数θ\theta的岭回归解

θ^a=(DaTDa+Id)1DaTca\hat{\boldsymbol{\theta}}_{a}=\left(D_{a}^{\mathrm{T}} D_{a}+I_{d}\right)^{-1} D_{a}^{\mathrm{T}} c_{a} 其中DaD_a(特征维度×样本数\times 样本数)为观测样本,cac_a为回报(广告中为点击)矢量

特征空间内的UCB策略

at=argmaxa(xt,aTθ^a+αxt,aT(DaTDa+Id)1xt,aT)a_{t}=\arg \max _{a}\left(\boldsymbol{x}_{t, a}^{\mathrm{T}} \hat{\boldsymbol{\theta}}_{a}+\alpha \sqrt{\boldsymbol{x}_{t, a}^{\mathrm{T}}\left(D_{a}^{\mathrm{T}} D_{a}+I_{d}\right)^{-1} \boldsymbol{x}_{t, a}^{\mathrm{T}}}\right)

这样的表达达到了两个目的:首先,将(a,u,c)的组合空间,而不仅仅是a都纳入了探索的范围以内;其次,用线性组合的连续输出代替了离散的ID值,使得E&E 过程可以在如此巨大的空间上实施。但是对于每一个广告a适用独立的线性变换参数θa\theta_a, 在a数量巨大时也会成为障碍。