Reading《Practical lessons from predicting clicks on Ads at Facebook》(1)

简介: 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_32502811/article/details/80794980 因为在做京东的算法大赛,小白选手,看了一些别人的入门级程序,胡乱改了一通,也没有什么大的进展,而且感觉比赛的问题和点击率预估还是有点像的,所以搜了个论文来读,看看牛人们的思路。
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_32502811/article/details/80794980

因为在做京东的算法大赛,小白选手,看了一些别人的入门级程序,胡乱改了一通,也没有什么大的进展,而且感觉比赛的问题和点击率预估还是有点像的,所以搜了个论文来读,看看牛人们的思路。于是找到了这篇论文。
这篇文章主要是提出了一个GBM+LR这样的结构,并且效果得到了很大的提升。具体结构如下图所示。
From paper
在解决点击率预估问题的时候,最重要的是在特征工程的构建上,也就是特征选择的过程(深以为然),再加上一个正确的模型。利用本文的模型,其他一些参数的调整,对准确率的影响都比较小。

Experimental setup

  1. 首先,就是划分训练集和测试集。(这也是我在做比赛过程中遇到的第一个问题······不知道咋划分·····文章里没有具体说明)
  2. 评价指标的设定。
    在本文中,用的是Normalized Entrophy(NE)和Calibration.
    Normalized entrophy
    表达式为:NE=1Nni=1(1+yi2log(pi)+1yi2log(1pi))(plog(p)+(1p)log(1p))NE=−1N∑i=1n(1+yi2log(pi)+1−yi2log(1−pi))−(plog(p)+(1−p)log(1−p))

分子实际上就是logistic regression的损失函数,分母就是平均的损失,平均的损失实际上就等于整个数据集的entropy,所以叫normalized entropy,这种是消除了不平衡数据集的影响


  • 在分类问题中,cross entrophy损失是常用的。备选的有准确率和MSE。其中,准确率并不能很好的反应模型的好坏,所以最先排除。MSE较之更进一步,能够描述模型之间的差异,但是还是不够好,因为MSE的loss函数是非凸的,所以会存在多个极值点,输出的曲线是波动的。(非凸优化)
    而交叉熵损失,是一个凸函数,利用梯度下降法,具有很好的收敛特性。

  • 分类问题一般都是 one-hot + cross entrophy。
    其中利用one-hot形式计算label的概率时,用的时softmax函数。


Calibration
这个指标很简单,就是预估的点击率除以实际的点击。

对于点击率预测,最关心的是点击率预测的准确性,而不太注重ROC这种rank order指标

Prediction model construction

系统的整体结构如上图所示,是一个决策树+LR的串联结构。其中,树的作用就是一个特征转换结构,将输入的原始的特征,通过树结构进行优化,作为LR的输入。

在树的转换作用中,有几个小小的tricks:
1. 对于值为连续型的特征,可以先bin,然后用bin后的index作为categorical 特征。(我的理解是先进行连续值得离散化,pandas里好像有bin、cut这类函数可以实现,然后得到得Index是不是还要dummy一下,作为one-hot特征)
2. 对于categorcial特征,可以利用笛卡儿积创造新得特征。但是,并不是所有得组合都是有用得。如果是没用的,在剪枝(prune out)的时候会被剪掉。

在这里,用到的提升树是GBM,并且使用了传统的L2TreeBoostL2−TreeBoost算法。
我们可以把利用提升树进行特征转换的过程看成一个有监督的特征编码的过程,也就是说将一个实值的向量转化为一个简洁的二值化向量。而从根节点到叶节点的这样一个路径代表着某个特征的一种规则。

(未完······)

目录
相关文章
|
机器学习/深度学习 数据采集 人工智能
Re10:读论文 Are we really making much progress? Revisiting, benchmarking, and refining heterogeneous gr
Re10:读论文 Are we really making much progress? Revisiting, benchmarking, and refining heterogeneous gr
Re10:读论文 Are we really making much progress? Revisiting, benchmarking, and refining heterogeneous gr
|
SQL 编译器 API
Efficiently Compiling Efficient Query Plans for Modern Hardware 论文解读
这应该是SQL查询编译的一篇经典文章了,作者是著名的Thomas Neumann,主要讲解了TUM的HyPer数据库中对于CodeGen的应用。 在morsel-driven那篇paper 中,介绍了HyPer的整个执行框架,会以task为单位处理一个morsel的数据,而执行的处理逻辑(一个pipeline job)就被编译为一个函数。这篇paper则具体讲如何实现动态编译。
372 0
Efficiently Compiling Efficient Query Plans for Modern Hardware 论文解读
Basic Concepts of Genetic Data Analysis
Basic Concepts of Genetic Data Analysis
879 0
|
Linux Windows
6 Effective Methods to Learn New Technologies Faster
Technology is always evolving, and developers need to learn new products and languages faster to cope with these changes.
6242 0
6 Effective Methods to Learn New Technologies Faster
|
安全 Go
Improving your Organizations Data Governance Scorecard
This whitepaper looks at how businesses can improve their scores on the tests of three fundamental data governance areas.
1319 0
|
人工智能 自然语言处理 搜索推荐
|
数据库
When Tech Meets Love – Smarter Ways to NOT be Single
It’s that time of year again. Single’s Day (a.k.a Double 11) is just around the corner, people buying gifts for loved ones.
1583 0
When Tech Meets Love – Smarter Ways to NOT be Single