广告系统智能出价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再经过一个响应函数。
响应函数可以是线性响应函数也可以是非线性响应函数,但是设计的时候最好满足以下几个条件。
- 当real_cpa=given_cpa的时候,智能出价系数k=1,即此时平衡,不对价格做调节。当real_cpa<given_cpa时,k>1增大出价,反之减小出价。
- 由广告系统的特性,智能出价系数k的值域下界最好是0,不要出现负数,因为负的智能出价系数在广告系统里没有意义。
- 当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中的赔付机制
……
网友评论