竞价形势(Bid Landscape)预估总结
市场竞价预估
市场竞价预估的目标是预测每一次请求的市场价格,通常ADX和DSP都使用二价计费,因此市场价格也就是二价(计费价)。
准确地预测市场价格是一个重要的任务。对于ADX来说,每一次广告的请求的计费价都是可知的,因为可以轻易地用回归的方法拟合出。ADX可以用来预估每个DSP的竞价,从而选择要发送的DSP组合(比每次全部请求节约成本),还可以作为低价。但是对于DSP而言,只能获取到竞胜请求的计费价,对于竞价失败的请求,只能知道计费价比自己的竞价要高,这部分数据学术上称为删失数据,所以准确预测是十分困难的。
接下来总结关于模型的四个方法:
1. 只假设对数正态分布(2011 KDD)
参考文献:Bid landscape forecasting in online ad exchange marketplace
本文方法先用Fast-Correlation Based Filtering方法挑选出重要特征,然后提出了星树(star tree)结构存储每条样本的特征和竞价信息。除最后一层叶节点外,每一层表示一个特征,每个节点存储出现次数大于一定阈值的特征值,其余未出现的或次数较少的用星号(star)节点代替。最后一层的叶节点存储本条特征链路上的竞价数据的均值和方差。
上述特征树创建好之后,就相当于生成了一份新的数据集,然后用GBDT方拟合历史竞价,学习每条路径的特征和竞价信息的关系。
在线推理时,根据请求特征从树中寻找到最匹配的叶节点,取出期均值和方差。然后假设竞价服从对数正态分布,代入取到的均值和方差就可以计算出竞价预估值。对于广告活动粒度的预估,论文假设其为每个广告任务的混合分布(FMM),也就是将广告活动包含的样本预估结果进行聚合即可。
2. 假设正态分布+机器学习(2015 KDD)
参考文献:Predicting Winning Price in Real Time Bidding with Censored Data
总体思路:线性回归模型拟合竞胜数据,删失回归模型拟合竞输数据,实时竞价时使用两者混合后的模型。
2.1 线性回归模型拟合竞胜数据
表达式:
其中,下标
2.2 删失回归模型拟合竞输数据
用上述公式拟合出竞胜均价之后,再用下述公式表示单次竞胜的概率:
其中
2.3 损失函数
在竞胜数据上,损失函数目标是逼近市场价,最小化残差
在竞输数据上,公式表示竞胜概率,取负对数作为损失函数,也是最小此公式
2.4 在线预测
预测时,使用混合模型,竞胜率 * 竞胜均价 + 竞输率 * 竞输均价
3. 假设多个分布+深度学习(2018 KDD)
参考文献:[Deep Censored Learning of the Winning Price in the Real Time Bidding](https://github.com/notlate-cn/tech-blogs/blob/main/papers/Bidding Landscape/2018-Deep Censored Learning of the Winning Price in the Real Time Bidding.pdf)
与第2条是同一个作者,本文主要变动点:把原来的线性回归替换成通用函数
假设的分布用
4. 不假设任何分布,直接预估分布(2019 KDD)
参考文献:Deep Landscape Forecasting for Real-time Bidding Advertising
大致梳理一下论文思路,因为原论文中应该是有几处公式错误,可以参考文章《论文复现Deep Landscape Forecasting for Real-time Bidding Advertising》,本文推导的公式与论文和CSDN文章均略有差异。
4.1 生存分析法
本文基于生存分析法(KM)进行问题分析,可阅读文章进一步了解《KM生存曲线的原理及画法》。下面简述一下:
KM法是这样估计生存曲线:首先计算出活过一定时期的病人再活过下一时期的概率(即生存概率),然后将逐个生存概率相乘,即为相应时段的生存率。需要对观察对象一直持续保持关注,但是很难做到终生关注,中间可能会丢失。当观察到结束事件时(比如死亡)就停止记录,其中生存率常用
则对应到市场竞价预估中,结束事件(比如死亡)用竞胜表示。因为竞胜后,就不需要继续分析后续出价范围了。同样的,生存事件则用竞输表示。所以生存率
4.2 在连续空间上表示竞胜率和竞输率
假设市场价(计费二价)
-
竞胜率表示为:
,含义是:当DSP的出价大于市场价时才能竞胜。 -
竞输率表示为:
上述表示好理解,但是没法计算,接下来就把市场价离散化,重新表示。
4.3 在离散空间上表示竞胜率和竞输率
把出价离散化,可以用计费的最小单位(分)表示,例如:
-
新增定义 市场价
恰好落到价格区间 的概率为: -
竞胜率重新表示为:
-
竞输率重新表示为:
综上可得:
4.4 引入RNN
此时就可以把离线的竞胜率和竞输率转换成模型,然后使用三元组
但是目前
定义:在已知出价为
其中
由新的辅助变量可得:计算
公式
基于公式
上式
再由公式
4.5 损失函数
本文定义的损失函数形式类似于第3篇文章,采用了两种损失函数加权和的方式。
第一种方式是用市场价概率分布函数拟合竞胜数据。当已知给定的样本都是竞胜时,则优化目标可定义为最大化市场价
第二种方式是用市场价累积概率分布函数同时拟合竞胜和竞输数据。对于竞胜数据,我们希望
因为这两个损失函数是通过竞胜还是竞输区分的,所以作者设计了一个指示函数:
就可以把
最终的损失函数为:
公式实在太多了,可累坏了。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· 【.NET】调用本地 Deepseek 模型
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· DeepSeek “源神”启动!「GitHub 热点速览」
· 上周热点回顾(2.17-2.23)