论文Modeling Delayed Feedback in Display Advertising阅读笔记

Abstract

  1. 评估广告投放效果的重要指标:转化率(conversion rate) —– 在广告网站上采取行动的人占总浏览人数的比例。使用机器学习预估 conversion rate,从而预估收益。
  2. 然而conversion很可能延时发生,比如看过一个商品广告,当时有些心动但并没有马上去买,过了几天按捺不住又去购买(Delayed Feedback),给建模带来困难。
  3. 这篇文章提出概率模型,对未采取行动的客户进行判别:可能会买or不可能会买

Introduction

广告计费模式:参考学习: 网络广告中,CPC、CPA、CPM 的定义各是怎样的?

这篇文章集中在CPA(cost per action)模式,更确切的说,是post-click conversion(点击后转化,转化被归因到之前的点击)。只有产生了预先商定的行动才付费。支持CPA模式的平台,就需要将广告标价,转化为eCPM(期望CPM),取决于conversion rate。

转化的延迟反馈特性导致构件训练集,设置匹配窗口长度的困难:过短则漏掉部分conversion;过长则导致模型停滞。

本文生成训练集时,将样本标记为positive和unlabeled,需要从正例和未标记数据中进行学习,但都假定标记正例从正类中随机选择,标签缺失的概率恒定。但与本文所讨论的情形不同:点击刚发生时,标签最易缺失。

本文引入模型II捕捉点击和转化之间的期望延迟,这有点类似于survival time analysis(生存时间分析,指治疗开始和患者死亡之间的时间)。有一些时间是截断(conversion一直没有发生)的, 这表明延迟(或者生存)时间至少是那个截断时间。

然而病人终有一死,而客户却未必转化。这就需要两个模型:一个预测是否转化;另一个预测相应的延迟时间。这两个模型共同训练,共同分配结果。

数据来源:Criteo流量日志;营利模式:收益(CPC/CPA,广告商)- 成本(CPM,出版商)

Conversions

Post-Click Attribution

post-view attribution: 将转化归因于之前的一次或几次浏览
post-click attribution: 将转化归因于被点击的广告
本文转化时间窗口长度固定为:30天

匹配除了时间窗要求,还要有相同的用户id和广告商。在多次点击导致一次转化时,按照行业标准归因于最后一次点击。若有多次转化匹配一次点击,则只保留第一个。也就是说,本文不考虑,单次点击导致多次转化的情形。

Conversion Rate Prediction

eCPM=CPA×Pr(conversion,click) e C P M = C P A × P r ( c o n v e r s i o n , c l i c k ) eCPM=CPA\times Pr(conversion, click)
          =CPA×Pr(click)×Pr(conversion|click) = C P A × P r ( c l i c k ) × P r ( c o n v e r s i o n | c l i c k ) ~~~~~~~~~~=CPA\times Pr(click)\times Pr(conversion | click)
条件概率分解能降低数据负载,并且在没有conversion时仍能提供一定的click信息。建模Pr(click)需要可扩展的模型:单一平台每日广告投放量可达数十亿,而点击反馈是即时的;建模Pr(conversion | click)规模较小,但有反馈延迟。

Analysis of the Conversion Delay

New Campaigns

广告展示的各个因素都在持续变化,当新的活动被加入系统时,原来训练好的模型效能将会降低:Keep the model fresh!
在图2中,新活动的比例持续增长,这预示着30天的长时间窗模型将受到影响。

Model

  • X X X:特征集
  • Y∈{0,1}" role="presentation" style="position: relative;">Y∈{0,1}Y∈{0,1}Y\in \{0,1\}:转化是否已经发生
  • C∈{0,1} C ∈ { 0 , 1 } C\in\{0,1\}:用户是否终会转化
  • D D D:点击和转化之间的延迟
  • E" role="presentation" style="position: relative;">EEE:点击后已经流逝的时间

Y=0⟺C=0 or E<D Y = 0 ⟺ C = 0 o r E < D Y=0 \Longleftrightarrow C=0~or~E
Y=1⟹C=1 Y = 1 ⟹ C = 1 Y=1 \Longrightarrow C=1
独立性假设: Pr(C,D|X,E)=Pr(C,D|X) P r ( C , D | X , E ) = P r ( C , D | X ) Pr(C, D | X, E) = Pr (C, D | X)
也就是说,在这个模型中,不根据已经过了多久来判断转化最终是否发生和最终延迟时间。

给定数据集: (xi,yi,ei) ( x i , y i , e i ) (x_i, y_i, e_i),如果 yi=1 y i = 1 y_i=1,还有相应的 di d i d_i值。
用两个参数模型拟合数据: Pr(C|X),Pr(D|X,C=1) P r ( C | X ) , P r ( D | X , C = 1 ) Pr(C|X), Pr(D|X,C=1)
训练好以后,前者被用来预测转换概率,后者被抛弃
这两个模型都是广义线性模型:前者是标准的逻辑回归:
Pr(C=1|X=x)=p(x),p(x)=11+exp(−wc⋅x) P r ( C = 1 | X = x ) = p ( x ) , p ( x ) = 1 1 + exp ⁡ ( − w c ⋅ x ) Pr(C=1|X=x)=p(x), p(x)=\frac{1}{1+\exp(-w_c\cdot x)}
后者是延迟的指数分布:
Pr(D=d|X=x,C=1)=λ(x)exp(−λ(x)d) P r ( D = d | X = x , C = 1 ) = λ ( x ) exp ⁡ ( − λ ( x ) d ) Pr(D=d|X=x,C=1)=\lambda(x)\exp(-\lambda(x)d)
其中,为了保证 λ(x)>0 λ ( x ) > 0 \lambda(x)>0,令 λ(x)=exp(wd⋅x) λ ( x ) = exp ⁡ ( w d ⋅ x ) \lambda(x)=\exp(w_d\cdot x)
则该模型的参数就是 wc,wd w c , w d w_c,w_d

Pr(Y=1,D=di|X=xi,E=ei) P r ( Y = 1 , D = d i | X = x i , E = e i ) Pr(Y=1, D=d_i | X=x_i, E=e_i)
=Pr(C=1,D=di|X=xi,E=ei) = P r ( C = 1 , D = d i | X = x i , E = e i ) = Pr(C=1, D=d_i | X=x_i, E=e_i)
=Pr(C=1,D=di|X=xi) = P r ( C = 1 , D = d i | X = x i ) = Pr(C=1, D=d_i | X=x_i)
=Pr(D=di|X=xi,C=1)Pr(C=1|X=xi) = P r ( D = d i | X = x i , C = 1 ) P r ( C = 1 | X = x i ) = Pr(D=d_i | X=x_i, C=1)Pr(C=1 | X=x_i)
=λ(xi)exp(−λ(xi)di)p(xi) = λ ( x i ) exp ⁡ ( − λ ( x i ) d i ) p ( x i ) = \lambda(x_i)\exp(-\lambda(x_i)d_i)p(x_i)

Pr(Y=0|X=xi,E=ei) P r ( Y = 0 | X = x i , E = e i ) Pr(Y=0 | X=x_i, E=e_i)
=Pr(Y=0|C=0,X=xi,E=ei)Pr(C=0|X=xi) = P r ( Y = 0 | C = 0 , X = x i , E = e i ) P r ( C = 0 | X = x i ) = Pr(Y=0 | C=0, X=x_i, E=e_i)Pr(C=0 | X=x_i)
+Pr(Y=0|C=1,X=xi,E=ei)Pr(C=1|X=xi) + P r ( Y = 0 | C = 1 , X = x i , E = e i ) P r ( C = 1 | X = x i ) + Pr(Y=0 | C=1, X=x_i, E=e_i)Pr(C=1 | X=x_i)
=1−p(xi)+p(xi)exp(−λ(xi)ei) = 1 − p ( x i ) + p ( x i ) exp ⁡ ( − λ ( x i ) e i ) = 1-p(x_i) + p(x_i)\exp(-\lambda(x_i)e_i)
⇑ ⇑ \Uparrow
Pr(Y=0|C=1,X=xi,E=ei)=Pr(D>E|C=1,X=xi,E=ei) P r ( Y = 0 | C = 1 , X = x i , E = e i ) = P r ( D > E | C = 1 , X = x i , E = e i ) Pr(Y=0 | C=1, X=x_i, E=e_i) = Pr(D>E | C=1, X=x_i, E=e_i)
=∫∞eiλ(x)exp(−λ(x)t)dt=exp(−λ(x)ei) = ∫ e i ∞ λ ( x ) exp ⁡ ( − λ ( x ) t ) d t = exp ⁡ ( − λ ( x ) e i ) = \int_{e_i}^\infty \lambda(x)\exp(-\lambda(x)t)dt =\exp(-\lambda(x)e_i)

Optimization

Expectation-Maximization

EM算法学习参考:简单易学的机器学习算法——EM算法
把 C C C看作隐藏变量

Joint Optimization

Loss Function:
arg⁡minwc,wdL(wc,wd)+μ2(||wc||22+||wd||22)" role="presentation" style="position: relative;">argminwc,wdL(wc,wd)+μ2(||wc||22+||wd||22)arg⁡minwc,wdL(wc,wd)+μ2(||wc||22+||wd||22)\arg \min\limits_{w_c, w_d} L(w_c, w_d) + \frac{\mu}{2}(||w_c||^2_2+||w_d||^2_2)
其中, μ μ \mu是正则化参数, L L L是负对数似然:
L(wc,wd)=−∑i,yi=1log⁡p(xi)+log⁡λ(xi)−λ(xi)di" role="presentation" style="position: relative;">L(wc,wd)=−∑i,yi=1logp(xi)+logλ(xi)−λ(xi)diL(wc,wd)=−∑i,yi=1log⁡p(xi)+log⁡λ(xi)−λ(xi)diL(w_c, w_d) = -\sum\limits_{i,y_i=1} \log p(x_i) + \log \lambda(x_i) - \lambda(x_i)d_i
                    −∑i,yi=0log[1−p(xi)+p(xi)exp(−λ(xi)ei)] − ∑ i , y i = 0 log ⁡ [ 1 − p ( x i ) + p ( x i ) exp ⁡ ( − λ ( x i ) e i ) ] ~~~~~~~~~~~~~~~~~~~~ -\sum\limits_{i,y_i=0}\log [1-p(x_i)+p(x_i) \exp (-\lambda(x_i)e_i)]
该优化问题是无约束且二次可微的,本文使用L-BFGS进行优化,可参考:优化算法——拟牛顿法之L-BFGS算法

Tips

这篇文章的主要贡献:首次对延时反馈进行建模!
数据集:http://labs.criteo.com/tag/dataset
评价指标:平均负对数似然NLL
参数设置: μ:=1n||xi||22 μ := 1 n | | x i | | 2 2 \mu:=\frac{1}{n}||x_i||^2_2

广告点击延时反馈建模相关推荐

  1. 大数据建模之广告点击率预估

    一.数据和样本 广告点击率(click through rate,CTR)预估的问题通常被转化为一个分类问题:在给定网民 u(user).广告 i(item).环境 e (environment) 的 ...

  2. KDD 2021 | 一种使用真负样本的在线延迟反馈建模

    ▐  摘要 电商场景的多目标模型预估,包括加购率,转化率,进店,时长等等.在展示广告领域,多目标体现了广告主对自己真实诉求的表达,因此,多目标模型既是技术项目,也有强烈的业务属性.广告排序系统,从上到 ...

  3. python广告点击率预测_推荐系统中的点击率预估 – Advertising Recommendation

    推荐系统的框架模式大致是:多种召回策略(触发层),一种融合排序策略(排序层),也可认为两阶段排序模型[33]: 召回策略方法繁多(例如常见的协同过滤中的item-based,user-based,以及 ...

  4. 业余草推荐阿里妈妈自研广告点击率预估核心算法MLR

    业余草推荐阿里妈妈自研广告点击率预估核心算法MLR. 小编觉得CTR(广告点击率)预估的能力对于广告系统的意义和重要性,类似于在证券市场上预测股价的能力,优秀的CTR预测,通向美好和财富...(以下转 ...

  5. 广告点击率预估中的特征选择

    一.互联网广告特征project 博文<互联网广告综述之点击率系统>论述了互联网广告的点击率系统,能够看到,当中的logistic regression模型是比較简单并且有用的,其训练方法 ...

  6. 对“科大讯飞2021丨广告点击率预估挑战赛 Top1方案(附完整代码)_Jack_Yang的博客-CSDN博客”的补充。

    这篇文章的初衷是针对科大讯飞2021丨广告点击率预估挑战赛 Top1方案(附完整代码)_Jack_Yang的博客-CSDN博客进行补充. 博客的信息量很少,对任务背景的介绍也不太对,说实话令人费解.我 ...

  7. 广告点击率预测问题初探

    广告点击率预测问题初探 国庆7天参加了一个广告点击率预测的小竞赛,作为只看过机器学习实战的小白,纯粹抱着学习的心态去开眼,果然被大神按在地上虐呢,不过也学到了很多知识.感谢很多大佬都开源并分享了他们的 ...

  8. 项目:广告点击预测率评估

    背景:一方面有流量的企业希望最大化广告收益:另一方面需要流量的个体希望最小化广告投放成本但同时最大化效果,这就是一个博弈的过程. 目前市面上流行的百度信息流.微信朋友圈投广都是基于这类的博弈过程.你可 ...

  9. 【总结】广告点击率预估中的特征选择

    互联网广告综述之点击率特征工程 一.互联网广告特征工程 博文<互联网广告综述之点击率系统>论述了互联网广告的点击率系统,可以看到,其中的logistic regression模型是比较简单 ...

最新文章

  1. Rackspace进中国,坚决“不掉价”
  2. 校招萌新在阿里妈妈是如何成长的
  3. entity framework5 sqlserver2005 事务(TransactionScope)报未启用MSDTC错误解决办法
  4. mysql 配置多个数据库连接_总结MySQL修改最大连接数的两个方式
  5. 【转】盖茨给职场新人的10句话
  6. 如何在win7上添加自动启动项
  7. ubuntu程序安装方法
  8. 图像检索:图像相似性度量
  9. 列举5种IE haslayout的属性及其值?
  10. jquery 插件解决IE6 PNG不透明
  11. idea安装svn插件
  12. 四方聚合支付系统+新增USDT提现+全新UI+安全升级修复XSS漏洞补单漏洞 附安装教程
  13. ZKTeco/熵基科技F18指纹门禁考勤一体机 破解管理员
  14. Win10应用商店被卸载的恢复方法
  15. VS2010中使用AnkhSvn
  16. STM32基于HAL工程读取DHT11/DHT22/AM2302/AM2301
  17. Qt模仿安卓手机中app图标移动
  18. python 源代码 macd双底 高 低_macd双底选股公式
  19. javaScript:打印等腰三角形
  20. 网络编程基础 - m

热门文章

  1. 【数据结构】-关于带头双向循环链表的增删查改
  2. 数据挖掘_基于balance-scale数据集的简单分类任务验证性实验
  3. AP Ezreal-不屈的呐喊-Candy攻略
  4. 一级造价工程师(安装)- 计量笔记 - 第五章第一节给排水、采暖、燃气工程
  5. 喜欢、爱(不太同意)
  6. 2020年12月3日之后CentOS6设置国内yum源方法
  7. 软件工程还是网络安全专业好
  8. 电脑鼠标右键失效linux,快速解决电脑无法正常使用鼠标右键的方法
  9. 电力监控系统在变电站供配电的监测与管理的应用于功能
  10. 已读不回,是2022年招聘软件上看到的最多的状态了