文章链接: https://quinonero.net/Publications/predicting-clicks-facebook.pdf

  • abstract

  Facebook日活跃度7.5亿,活跃广告主1百万

  特征工程最重要:user和ad的历史信息胜过其他特征

  轻微提升模型效果:数据新鲜度、学习率、数据采样

  增加一个重要特征和选择正确的模型更关键

  • introduction

  按点击收费广告效果依赖于点击率预估。相比于搜索广告使用搜索query,Facebook更依赖人口和兴趣特征。

  本文发现决策树和逻辑回归的混合模型比其他方法好3%。

  线性分类两个要素:特征变换、数据新鲜度

  在线学习

  延时、可扩展性

  

  • experimental setup

  划分训练数据和测试数据模拟在线数据流。

  评估指标使用预测精度:归一化熵(Normalized Entropy,NE)和校正度(calibration)

  NE = 预测log loss/平均历史ctr;越低效果越好。使用背景ctr(即平均历史ctr)是为了评估相对历史ctr更不敏感。

  

  calibration = 平均估计ctr/历史ctr = 期望点击数/实际点击数。

  不用AUC是因为它度量排序效果且没有校正度概念。NE反映了预测精度且隐藏反映校正度。

  • prediction model structure

  使用决策树做特征变换

  更新的数据得到更好效果

  SGD:

  

  Bayesian online learning scheme for probit regression (BOPR)的似然和先验:

  

  更新算法:

  

  

  —— decision tree feature transforms

  连续特征:离散化分桶

  类别特征:笛卡尔积

  每个GBDT输出作为编码某种规则的特征,再用线性分类器:

  

  有GBDT特征变换相对于没有,NE下降3.4%。一般的特征工程只能下降千分之二左右。

  

  使用GBDT特征变换先出减少特征数,代价仅仅减少很少的效果。

  —— data freshness

  周级别更新改为天级别更新,NE下降1%。因此需要天级别更新。

  

  线性分类器部分可以实时更新

  —— online linear classifer

  

  #1,#2,#3 每个特征有独立的学习率

  #4,#5 所有特征共享一个学习率

  效果排名:#1,#2=#5,#4,#3。

  #1是LR,独立学习率。

  

  #5全局统一学习率的问题主要因为不同特征有取值的样本的个数差距大。样本少的特征权重衰减过快。

  #3虽然缓解此问题但是仍然差,因为学习率衰减太快导致过早结束训练。

  

  LR和BOPR效果接近,但是LR模型比BOPR小一半。不过BOPR有Bayes形式,更适合explore/exploit方法。

  

  —— online data joiner

  

  结合requestID拼接点击和展示,HashQueue存impression,HashMap存click。展示需要等待点击事件,等待时间窗需要仔细调,过小点击拼接不上、过大需要更多存储且时效性差。

  有点击无法拼接意味着历史ctr低于真实值,因此需要校正。

  需要做保护机制,比如click数据流卡住,trainer需要断开与joiner的连接。

  • containing memory and latency

  —— number of boosting trees

  #leaves per tree <= 12

  500 trees取得大部分提升

  而且为了计算和存储效率,数的棵数不要太多。

  

  —— boosting feature importance

  一般少量特征贡献大部分提升。top10特征贡献一半特征重要度,last300贡献<1%重要度。

  几个特征举例

  contextual: local time of day, day of week, device, current page

  historical: cumulative number of clicks on an ad, avg ctr of the ad in last week, avg ctr of the user

  —— historical features

  historical比contextual更有用:top10重要度都是historical特征。

  contextual特征更适合处理冷启动问题。  

  contextual特征更依赖数据新鲜度,当然部分因为historical特征已经包含长期累积的用户行为

  

  

  

  • coping with massive training data

  亿级别以上样本量

  —— uniform subsampling

  更多数据效果更好。不过10%数据只有1%效果损失。

  —— negative down sampling

  类别不均衡需要负例下采样,目前最佳采样率是0.025

  

  

  —— model re-calibration

  因为负采样所以需要ctr校正。

  

  

Practical Lessons from Predicting Clicks on Ads at Facebook (2014)论文阅读的更多相关文章

  1. [笔记]Practical Lessons from Predicting Clicks on Ads at Facebook

    ABSTRACT 这篇paper中作者结合GBDT和LR,取得了很好的效果,比单个模型的效果高出3%.随后作者研究了对整体预测系统产生影响的几个因素,发现Feature+Model的贡献程度最大,而其 ...

  2. Practical Lessons from Predicting Clicks on Ads at Facebook

    ABSTRACT 这篇paper中作者结合GBDT和LR,取得了很好的效果,比单个模型的效果高出3%.随后作者研究了对整体预测系统产生影响的几个因素,发现Feature(能挖掘出用户和广告的历史信息) ...

  3. 【论文阅读】ICLR 2022: Scene Transformer: A unified architecture for predicting future trajectories of multiple agents

    ICLR 2022: Scene Transformer: A unified architecture for predicting future trajectories of multiple ...

  4. 论文阅读 Predicting Dynamic Embedding Trajectory in Temporal Interaction Networks

    6 Predicting Dynamic Embedding Trajectory in Temporal Interaction Networks link:https://arxiv.org/ab ...

  5. 【论文阅读】A practical algorithm for distributed clustering and outlier detection

    文章提出了一种分布式聚类的算法,这是第一个有理论保障的考虑离群点的分布式聚类算法(文章里自己说的).与之前的算法对比有以下四个优点: 1.耗时短O(max{k,logn}*n), 2.传递信息规模小: ...

  6. 利用GBDT模型构造新特征具体方法

    利用GBDT模型构造新特征具体方法 数据挖掘入门与实战  公众号: datadw   实际问题中,可直接用于机器学**模型的特征往往并不多.能否从"混乱"的原始log中挖掘到有用的 ...

  7. GBDT原理及利用GBDT构造新的特征-Python实现

    1. 背景 1.1 Gradient Boosting Gradient Boosting是一种Boosting的方法,它主要的思想是,每一次建立模型是在之前建立模型损失函数的梯度下降方向.损失函数是 ...

  8. 广告点击率 CTR预估中GBDT与LR融合方案

    http://www.cbdio.com/BigData/2015-08/27/content_3750170.htm 1.背景 CTR预估,广告点击率(Click-Through Rate Pred ...

  9. ML学习分享系列(2)_计算广告小窥[中]

    原作:面包包包包包包 改动:寒小阳 && 龙心尘 时间:2016年2月 出处:http://blog.csdn.net/Breada/article/details/50697030 ...

随机推荐

  1. 利用Bag中的getCount()方法统计list集合中重复元素

    实际应用场景:从Excel导入数据时,存在某个标识符相同的多条数据,需要进行合并,因此需要统计重复元素,可以利用Bag包下的getCount()进行统计,代码如下: package test.com. ...

  2. etcd三节点安全集群搭建-pki安全认证

    etcd安全集群搭建就是 pki安装认证 1.环境: 三台centos7. 主机 192.168.0.91 192.168.0.92 192.168.0.93 都关闭防火墙 都关闭selinux 配置 ...

  3. 06 vue router(一)

    一.vue route是什么? Vue Router是vue.js官方的路由管理器.主要有以下几种功能 1.路由和视图表的配置.(已明白) 2.模块化和基于组件的路由配置.(已明白) 3.路由参数.查 ...

  4. office web apps安装部署,配置https,负载均衡(六)配置负载均衡

    owa可以采用任何的负载均衡方案,我们这里采用阿里云提供的负载均衡解决方案 前提条件,你已经配置了一台域控制器,两台域服务器[即安装了owa相关软件,并将计算机隶属于域]: 如果您不清楚怎么做,那么请 ...

  5. 【MM系列】SAP ABAP 编辑字段出现:对象编辑中的错误

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP 编辑字段出现: ...

  6. 从STL文件到网格拓扑

    原文链接 STL文件是什么 STL文件是网格文件的一种格式,分为二进制和文本两种类型.具体来讲,它定义了一群三角面片,比如下面是一个文本的STL示例: solid geometryplusplus f ...

  7. 【神经网络与深度学习】卷积神经网络(CNN)

    [神经网络与深度学习]卷积神经网络(CNN) 标签:[神经网络与深度学习] 实际上前面已经发布过一次,但是这次重新复习了一下,决定再发博一次. 说明:以后的总结,还应该以我的认识进行总结,这样比较符合 ...

  8. [转帖]linux下使用 du查看某个文件或目录占用磁盘空间的大小

    linux下使用 du查看某个文件或目录占用磁盘空间的大小 du -ah --max-depth= 去年用过一次 后来忘记了.. 命令这个东西 熟能生巧.. https://www.cnblogs.c ...

  9. sts使用mybatis插件直接生成数据库表的mapper类及配置文件

    首先点击help------>Eclipse Marketplace----->在find中搜索mybatis下面图片的第一个 点击installed 还需要一个配置文件generator ...

  10. 14款CSS3图片层叠切换动画

    在线演示 本地下载