3. 具体的 -- 架构之预估与机制
3.1 模型预估
- ① 在模型预估发展历史上两者算法的演变轨迹几乎一致:#card
-
A. 随着业界技术的发展,从线性模型到深度模型,模型泛化能力和特征学习能力逐步加强特征由低阶到高阶,特征表达能力越来越强
-
B. Embeddings/Attention/Transformer/BERT等各种用户行为序列建模(可参考: 九河之间:2022年CIKM用户序列预估梳理)
-
② 两者的技术路线、模型架构极为相似;不同是——优化目标或预估目标不尽相同#card
-
A. 推荐:CTR/时长等用户体验目标为主(电商 CTR/复购/GMV等);视频类更多倾向于预测观看时长,新闻类预测CTR,电商类预估客单价等等。
-
B. 广告:CTR/CVR/GMV/ROI 等用户体验、商家转化、平台收益的平衡。由于后续需要结合计算精确的出价,因此要求CTR/CVR足够精准(催生了校准算法),而不仅仅是相对的序。而推荐算法更多照顾一个列表整体上,甚至为了增加用户的长期参与度,还对推荐内容的多样性,新鲜度有更高的要求,这就让探索与利用,强化学习等一些列方法在推荐场景下更受重视
③ 优化目标或预估目标不尽相同,举例说明#card
-
A. MMoE + ESMM + Bias-Net 的架构,在广告中 有三个预估目标 – Pctr点击、Pctcvr 转化、GMV收益
-
B. 同样的结构,在推荐场景可能有的目标:Pctr点击(感性认知)、Preadtime阅读时长(理性认知)
3.2 机制策略
-
① RankScore 设计
-
A. 广告(点击付费类):rankscore = k1 * CPC(平台利益) + k2 * GMV(商家利益) + k3 * UEQ(用户利益) 。 #card
-
对于广告算法来说,由于要协调广告主、用户和广告平台之间的利益,就会产生很多博弈。
-
广告系统是根据 广告出价 X 点击率排序,涉及计费 (CPC计费)
-
-
B. 推荐:rankscore = k1 * CTR + k2 * ReadTime + k3 (新闻资讯); 推荐:rankscore = k1 * CTR + k2 * RPM + k3 (电商)。 #card
-
推荐系统没有出价,点击率(感性喜好程度)权重较大,同时,兼顾阅读时长(理性喜好程度);
-
尽量去用各种机器学习筛选出与用户特征值匹配度更高的内容。
-
-
C. 自然可以直接预估gmv,广告需要平衡gmv、cpm和用户体验。 #card
- 预估指标为ctr、cvr、price、用户体验分sum(poi_ord_total_amt) / count(distinct expose_uv) * 1000 as rpm 千次用户成单金额;没有抽佣的哦!
-
-
② 广告的 机制 更加复杂,GSP 二阶计价、MinBid、MinCPM 等时间关系不罗列了。
-
③ 广告系统中,CTR等算法只是其中关键的一步,估的准CTR只是一个前提,#card
-
如何让广告系统盈利,产生更多收入,还需要pacing,bidding,budget control,ads allocation等多个同样重要的模块协同作用,才能让平台利益最大化,这显然是比推荐系统复杂的。
-
而推荐系统中,由于需要更多照顾用户的长期兴趣,需要一些补充策略做出一些看似“非最优”的选择,比如探索性的尝试一些长尾内容,在生成整个推荐列表时要加入多样性的约束,等等。这一点上,广告系统也需要,但远没有推荐系统的重视程度高。
-
3.3 广告机制特色
-
广告一些术语:
-
① 每个广告 (Ad) 有一个出价 (Bid) , 并有其在某情形下实际的点击率 (Click-Through-Rate, CTR)。
-
② 广告按点击收费 (Charge per Click, CPC), 策略有 #card
-
一价计费 (First-Price, FP, 即广告出价多少则一次点击计费多少)
-
二价计费 (Second-Price, SP, 即广告按下一位出价来支付点击价格, 更普遍的是 GSP,Google,Yahoo, LinkedIn都是用这一种)
-
-
**千次展现收费 (Cost Per Mille, CPM, 或 RPM, R for Revenue), ** 即对点击付费广告其展示一千次情况下的收入 (一价计费下等价于 1000CTRBid), 或是展示广告的千次展现固定价格。
-
④ 预估点击率 (predict CTR, pCTR) 是指对某个广告将要在某个情形下展现前, 系统预估其可能的点击概率。
3.3.1 Facebook广告系统背后的Pacing算法
- Pacing是Facebook广告系统中调节 花费预算节奏 的一个算法,一个类比就是竞跑的运动员:过早冲刺意味着在终点前就没劲了,但过晚冲刺也许你就没完成这次比赛。
- Pacing保证对所有的广告主在竞争前提下自动分配不同的广告预算(有点像时间切片预算)。Pacing就是优化核心组件让广告主获得 :-> 最大的投资回报率(ROI)。
- Pacing会结合当前广告的 预算及出价 ,为广告找到最佳的预算使用速率同时兼顾广告目标的完成。(点击、转化、应用安装等)
- 简单的公式
最终竞价 (每次展示) = 优化竞价 (每次展示)* CTR where 优化竞价 <= max_bid
- 从上面例子中,当我们在整段时间内使用稳定的出价(Pacing),广告主的价值相比没有Pacing或者出价过高过低,得到了 最大化 。
- 为了实现目标,Pacing期望通过 学习其他的有同样目标用户的竞争广告 ,提出一个优化的竞价。
- 决定优化竞价 的是Pacing算法的核心,包括反馈系统让Pacing记录下来。CTR是点击率。我们使用相同理念来看 查看率(VTR)和转化率(CVR)。这些值的精确性会稳步提高,也受各种因素影响,比如广告类型,受众,时间点,广告上下文等。
- 从上面例子中,当我们在整段时间内使用稳定的出价(Pacing),广告主的价值相比没有Pacing或者出价过高过低,得到了 最大化 。
- Pacing的重要性 #card
-
Pacing在给定预算下最大化广告主的利润。
-
它让广告主更加真实,和Vickrey–Clarke–Groves (VCG通过计算一个广告主参加拍卖给别的广告者带来的损失之和来定价的) 拍卖,这里面欺骗价值没有任何好处,也没有必要去想最大竞价应该设多少。
-
如此可以避免拍卖系统中的特殊机会。
-
3.3.2 预算控制(Budget Pacing)
- 媒体流量比较大,广告主预算消耗过快,有些中小广告主甚至在开始投放的几分钟内就把预算消耗完。这会导致广告主早早退出后续流量的竞争,不仅会影响广告主体验(无法触达到更多的优质用户),也导致整个广告不平稳(竞争都集中在早期,而后期又竞争不足);预算控制(Budget Pacing)的作用就是平稳花掉广告主的预算,并帮助广告主优化转化效果。所以我们预算控制要完成如下目标:#card
-
① 广告匀速播放:通过广告日预算、当前消耗以及日曝光曲线来控制广告投放速度
-
② 提升广告主ROI:帮助广告主以更低的价钱拿到更多优质曝光量。
-
预算控制的做法目前可分为两大类:#card
-
Probabilistic throttling 通过一个概率值来决定是否参竞来控制预算花费速率
-
Bid modification 则通过直接改价的方式来控制花费速率。
对比 Probabilistic throttling 和 Bid modification 两个方案的差异点: #card
-
① Probabilistic throttling 是通过调整参竞概率调整预算消耗速度,而 Bid modification 则是通过改变bid,控制竞价胜率来达到影响预算消耗速度,这种方式有可能导致预算消耗波动较大;
-
② bid landscape(竞价环境) 一般会随着时间变化而变化;另外对于那些快耗尽预算的广告,bid 可修改的幅度很小,且bid一般存在着保留价,可调整的幅度很小,而且往往bid的变化与实际曝光量不成正比;
-
以上两点使得通过 bid modification 来达到预算匀速消耗比较困难
预算控制Budget Pacing
-
Step1: 实现广告预算能够均匀的消耗 :#card
-
首先根据历史数据,预测出当天大盘总曝光数。
-
然后基于其曝光情况,在当前时间片,假如已消耗 / 当天预的比例大于大盘已曝光 / 大盘总曝光的比例,
-
则说明预算已经消耗过快,需要减小消耗的速度,
-
反之则要加快消耗的速度。
-
-
-
Step2:实现预算均匀消耗后,尝试优化成本#card
-
前文介绍的预算均匀消耗实现方案本质上是随机丢弃,
-
优化主要思路是:我们在放弃请求的时候可以选择性放弃一些低质量(点击率较低)的请求,而对应高质量的请求我们提高参与竞价的概率,从而提升转化率。
-
3. 具体的 -- 架构之预估与机制
https://blog.xiang578.com/post/logseq/3. 具体的 -- 架构之预估与机制.html