Practical Lessons from Predicting Clicks on Ads at Facebook

这篇论文发表在ADKDD上,论文的背景是广告的点击率预测问题。文章中有用的想法如下。

一、提出基于提升树的特征转换方法。

方法的示例如下图所示。先使用GBDT在训练集上训练模型,得到了2棵决策树,这2棵树一共有5个叶子节点。构建5维向量[0,0,0,0,0,0],前三位对应第一棵树,后两位对应第二棵树。针对一个样本x,如果它在第一棵树上最终落到第二个叶子节点,则把向量中前三位里第2位设为1。如果它在第二棵树上最终落到第一棵子树,则把向量中后两位中第1位设为1。最终向量为[0,1,0,1,0,0]。然后将这些特征和原本的特征一起使用logistic regression进行学习。

Practical Lessons from Predicting Clicks on Ads at Facebook_第1张图片

如果不加上这些转换后的特征,直接使用LR和提升树进行学习,则两者效果差不多(LR稍微好一点)。但如果LR添加了转换后的特征,效果较之前两者有明显提升。

注:1.一般将连续特征离散化转换成一系列0和1特征。这样做方便处理,对异常数据不太敏感,相当于进行了非线性的转换。2.对特征根据不同取值进行取笛卡尔积。

二、文章里面提到了基于SGD的在线学习中学习率的设定问题。

前三种方法是对于不同维度分别设定学习率。第四种SGD介绍中比较常见,随不断迭代学习率减小,对不同特征维度都是一样的。第五种方法设定学习率为定值。

一般不同样本中包含的特征不同,不同维度对应的样本数也不同,这就涉及不同维度是否能充分学习的问题。一般采用不同维度分别设定学习率的方法。

Practical Lessons from Predicting Clicks on Ads at Facebook_第2张图片


附大家可能感兴趣而且个人觉得不错的资料:

1.关于提升树的资料,推荐陈天奇的分享。

2.关于在线学习的资料,推荐《在线最优化求解》。里面介绍了产生稀疏解的几种方法,包括截断梯度法、FOBOS和FTRL等方法。


你可能感兴趣的:(论文干货)