在各种体系设计与问题建模中,线性系统往往能帮助我们做很多简化,使得很多问题的求解上变得更容易,并且有更好的解析解,更优的bound,更好的收敛理论。例如各种规划,控制理论中对线性系统的研究[1]。
类似地,人类能够直观理解以及操作的系统,往往都是线性的系统,如果系统高度地非线性,人类将难以操作。往往只能用计算机进行更复杂的模拟,然后人工最多进行一些“单一的”,“线性的”超参的调整。譬如现代汽车的加速减速,对油门踏板的输入都经过了复杂的计算,来对整个系统进行调整以控制其状态,来模拟达成“线性”的状态。
因此,通常随着系统本身越来越复杂,业界做法都是用计算机模拟其非线性部分,然后抽象出一个“线性”的控制器暴露给用户。这样的设计与发展路径同样存在于现代的广告机制设计与产品的演化当中。
线性出价的便利:
- 线性系统,GSP环境:
由于budget限制下,理论最优出价为:。虽然不是真正意义上的truth-telling(无预算限制的单次密封二价拍卖才是truth-telling),但是其实是个线性系统,所以是否求解变得无关紧要。例如cpc广告中,,因此广告主通过调整出价即达到相同的目的,广告主会主动按照其成本与预算来优化。最终达到的系统稳态与dsp帮助广告主按照其budget来优化求解的收敛位置理论是一致的。如果广告主通过开放式adx接口给进行完整的程序化投放,可以通过离线来求解到,而人工投放只能通过在线调整自己去试,但是两者理论都会收敛到相同的位置,两者本质等价,最优点即在下刚好花完预算。
非线性系统,GFP环境:
由于budget限制下,理论最优出价为非线性,例如在某些BSD[2]假设条件下中建模的最优出价形式为: ,这其中为常数,为可变参数。所以对于广告主来说,如果按照默认的出价,则调整则只能线性地改变每次曝光上的展现出价,无法逼近非线性的,所以是无法达到理论最优的(最优出价中和是非线性关系,而默认出价和是线性关系)。因此,对于ad exchange来说,理论上GFP结算会导致系统的不稳定性,广告主直接在一方dsp调整竞价,无法达到第三方代理并且对方使用BSD进行程序化优化得到的收益。而且这种方式理论上能达到的总收入是低于GSP设定的。总结
GSP机制提供了广告主一个“线性”的系统来调整并达成最优出价,因此大大简化了整个系统,并且也能为平台提供更高的收入。所以广告平台也纷纷从GFP出价转向了GSP系统。BSD衍生1,GFP条件下,设计广告主线性出价系统
如何在GFP条件下为广告主提供线性且能达到optimum的调节器。其实也很简单,我们只需要让系统把非线性部分标准化,让系统模拟其中非线性的部分,只将线性部分暴露给广告主即可。在上述GFP的假设形式下,我们只需要将这部分固定下来,代替作为cpm出价即可。然后类似GSP,这里的和也是线性关系,所以系统将设为常量1即可,广告主通过调整就可达成搜索达成效果最优的状态。BSD衍生2,GFP条件下,上述解的次优性
上述的假设下,我们用成功率来建模这个问题[2],以此做为数学语言模拟竞价这个机制。所以其核心的假设在于“成功率函数”,而为了简化问题与解的形式,我们简化了成功率函数:在求解过程中,我们认为市场价mp是个随机变量,成功率只跟我们的出价bid相关。
但是实际上,这个假设过强了,并不是一个特别好的假设。无偏出价成功率和线上真实成功率是有差异的。说明mp是跟我们特征有相关性的(线上不同特征出价不同),因此我们能用已有特征对mp进行估计,降低成功率的不确定性。
转化非线性带来的衍生方案
由于不同出价点有以下关系:,其中cvr是根据流量而变化的,因此cpc_bid和cpa_bid并不是线性关系。以vec的视角来认知,即他们无法表示为:,为标量。因此,对于广告主来说,当他们调整cpc_bid的时候,其实并没有达成线性地调整潜在的cpa_bid的目的。导致其cpa转化成本的控制是非线性的,需要用别的手段来保证。
定向策略
其实定向策略的本质,就是“分人群”去调整出价,并且假设特定人群的转化率是一个“常量k”,不同人群用不同的bid,由可以得知,想要线性地调整全局的就需要在越高的定向上投等比例更高的,反之亦反,以此来达成“线性”调整的目的,使GSP系统下广告主收益的最优。人群包lookalike
关于人群包的各种策略,归根结底,也是一种定向策略,所以其本质是类似的,对不同转化概率人群的划分以便于潜在线性cpa_bid出价的达成。这类策略做到最后,其实就是每一次流量请求,有不同的转化率,即cvr估计。budget pacing / freq capping策略
这里其实是一个引申。即在充分竞争的理想状态下,budget pacing这样的策略,通过pacing策略来控制了消耗,本质上是让广告主出了更高的价格,拿到了更少了流量,是种次优的策略。理论上对于广告主来说,直接降低bid能达到更优的效果(成本更低)。
当然,现实中,这类策略通常在一个更loose的假设中运行,譬如在cpc_bid的环境下执行,pacing后拿到不同时间段更高价的流量,隐含保证其“转化率”。总结
上述这些方案基本都是dsp方无法准确估计cvr而衍生出的次优方案,并且不断地发展,越来越复杂,导致很多广告产品都难以操作,一般的广告主都无法自己投放,需要各种投放代理来操作。
为了解决这些复杂性带来的系统与产品功能的膨胀,各公司也逐渐发展出基于浅层深层转化cvr模型的产品,包括各种ocpc,ocpm,auto-bidding产品。在这些产品中,上述capping,pacing,定向,人群包等策略被逐渐淡化,以更复杂的cvr模型来替代人工的调整。
因此最终广告主投放只需要进行目标cpa_bid的表达来控制成本即可(这是个简单的线性系统),无需任何其他复杂的策略,整个系统中的非线性部分由cvr模型去优化即可
上述的各种策略,本质的意义都仅仅是对高度非线性CVR的一个粗糙模拟而已[3]
系统参数与误差的线性关系
更进一步,在整个系统中还存在很多变量(自变量,待解因变量)。他们之间是否是线性关系其实也很重要,影响了很多方案的设计。特别是反馈控制与优化求解算法的方案。
逆控制
对于线性系统,由于整个系统是线性的,任何整体线性的变化都可以快速地调整与补偿。譬如高估1.1倍,如果我们最终关注的数值出价与是线性关系,那么通过调整出价除以1.1也能保持系统平衡。
而对于非线性的系统,则无法进行这样快速简单的控制,需要更复杂的动态逆控制法来逼进。系统参数求解
线性关系更方便求解,省去一些校准等数值量纲统一的工作,可以放任系统自变量有一些线性的缩放等。
例如在BSD[2]中最优参数的求解过程中:
当时,待解变量与系统预估变量(例如ctr,ecpm等预估值)是线性关系,所以这些值线性的漂移并不影响最终结果,例如全部高估1.1倍,那么最终求解出来会自然也高估1.1倍,并不影响最终结果值的分布。
而当时,待解变量与系统预估变量是非线性关系,所以整个系统对数值敏感性更高,其预估数值上线性的变化也会导致最终解的不同。误差本身与变量的线性关系
如果误差是线性的,在很多场景中都可以轻易地fix,而非线性的误差,可能就难以处理了。
譬如上述的场景中,如果线性地高估了,,那么其实很好fix,如果系统求解最优,甚至都不需要fix就被求解的过程抵消了。设想一下,数据中所有都乘以了,在相同的budget条件下,最终求得的会变成之前的。
而如果高估低估是非线性的,那么最终不但成本可能会更高,拿到的量可能还会更少。
简单地理解一下这个过程,在准确估计的情况下,之前可以拿到所有成本低于该值的流量,而如果有的高估,有的低估,对于高估的流量,相当于付出了高于的成本,而对于低估的流量,我们以低于的成本参与竞价,拿到的量会比理论最优出价更少。具体拿量的多少取决于高估低估的分布。如果在budget相同的情况下,成本会更高,量会更少。
Refer
[1]Control theory for linear systems.
[2]BSD:
https://www.jianshu.com/p/a3e029ccd7d6
[3]是否要摒弃这些定向策略?
当然,这里也并不是要产品们完全摒弃这些“过时”的技术。任何技术都有其时效性与适用场景。
1、譬如在搜索广告中,流量价值被搜索词细粒度的划分,这种条件下,ocpc的提升也许就并不显著。
2、还有对于技术能力有限,数据能力有限的小流量平台。要为不同行业的广告主都进行精准的cvr估计也是很难的,不如一步步做好精细化的标签帮助广告主做流量划分。