ocpc系列 (一)智能出价PID控制中的偏差与响应函数设计

广告系统智能出价PID控制中的偏差函数主要有差分形式和比率形式,响应函数有线性响应和非线性响应。
根据具体的场景、目标的不同,可以自己对偏差函数和响应函数进行组合。

差分形式的偏差:cpa_delta = given_cpa - real_cpa

比率形式的偏差:cpa_ratio_delta = given_cpa/real_cpa - 1

其中given_cpa是广告主给定成本,real_cpa是竞价真实成本。

我们知道控制出价的公式为

在ocpc出价时,有

其中k为是智能出价系数,直观的,k越大,bid_cpc越大,real_cpa越大;k越小,bid_cpc越小,real_cpa越小。
我们希望当e>0时,k值变大;e<0时,k值变小;e = 0时,k值不变;
显然,k=f(e),即智能出价系数是反馈偏差e的函数。
采用比例积分控制算法可得

最终的智能出价系数k等于k_t再经过一个响应函数。

响应函数可以是线性响应函数也可以是非线性响应函数,但是设计的时候最好满足以下几个条件。

  1. 当real_cpa=given_cpa的时候,智能出价系数k=1,即此时平衡,不对价格做调节。当real_cpa1增大出价,反之减小出价。
  2. 由广告系统的特性,智能出价系数k的值域下界最好是0,不要出现负数,因为负的智能出价系数在广告系统里没有意义。
  3. 当real_cpa与given_cpa接近的时候,即初始平衡态附近,响应函数对k_t的变化不敏感(斜率稳定,不跃阶)。

根据这些条件设计响应函数,当e为比率偏差cpa_ratio_delta且偏差计算只用比例控制时。令real_cpa=given_cpa,则有

要使得此时k=1,可用

即偏差计算只用比例控制搭配响应函数为线性响应时,满足上述3个条件,此时

但是若加上累积误差的积分控制,公式就变成了

那这时候因为有累计误差,可能使得k<0,显然无法满足上述第2个条件,这时候可以设计个分段函数,比如在k值小于0时候截断成0,也可以采用其他的非线性响应,比如深度学习中常用的relu,sigmoid函数都是满足条件的。
若采用指数响应函数,则不论偏差函数如何,都可以满足上述3个条件,即

指数响应函数搭配差分形式的偏差最终智能出价系数为

比率形式和差分形式的偏差优化目标不同,在具体使用的时候效果也会有些区别。比率形式优化的是成本偏差的比率,差分形式优化的是成本偏差的绝对值。具体的效果不同体现在哪,我会在另外一篇文章中详细阐述。

PS:如果对ocpc智能出价PID的基本算法有疑问,建议先阅读《ocpc实践录》

精彩预告:

第一篇:ocpc智能出价PID控制中的偏差与响应函数

第二篇:智能出价PID控制中不同偏差函数特性对比

第三篇:ocpc一阶段机制

第四篇:ocpc行业模型详解

第五篇:延迟模型在ocpc中的应用

第六篇:ctr校准与cvr校准

第七篇:ocpc自动扩量技术

第八篇:如何从0开始建立ocpc业务

第九篇:ocpc中的深度转化模式

第十篇:ocpc智能出价离线仿真模块

第十一篇:评价ocpc效果的指标

第十二篇:ocpc中的赔付机制

……

你可能感兴趣的:(ocpc系列 (一)智能出价PID控制中的偏差与响应函数设计)