背景
计算广告是门综合的学科,其中CTR预估是技术人员最关注的核心技术。CTR不仅用在点击率预估,现在在推荐系统的rank等场景中也有广泛的应用。本文整理了学习CTR相关资源,希望从这些资源中认识在做CTR、rank的核心问题。
由于每一部分在网上都有比较完整的介绍资源,所以本文并不具体展开介绍,但会给出对应部分的原始论文或优秀资料。
1. 基础
1.1 凸函数
1.2 最优化理论
1.2.1 无约束优化问题
通过对目标函数求导,并令其等于0,进行求解
例子:最小二乘法的求解
1.2.2 有等式约束优化问题
通过朗格朗日乘数法,把等式约束转为无约束优化问题
1.2.3 带不等式约束优化问题
使用KKT条件,将等式约束、不等式约束与目标函数合并为新的函数。KKT条件是求解最优值的必要条件,要成为充要条件是目标函数为凸函数。
KKT条件的推导需要用到原问题的对偶问题。
1.3 次梯度
函数并非光滑或处处可微时,则可以求次梯度。
1.3.1 次梯度与次微分
凸函数的次梯度一定存在。若函数
f
在点
例子:
f(x)=|x|
在
x=0
处的次微分
1.4 梯度下降
有一篇文章总结得非常好:
An overview of gradient descent optimization algorithms
1.4.1 传统梯度下降
- Batch Gradient Descent 批量梯度下降
- Stochastic Gradient Descent 随机梯度下降
- Min-batch Gradient Descent 小批量梯度下降
1.4.2 改进的梯度下降
- Adagrad
- Adadelta
- Adam
1.5 正则化
加了正则项的目标函数一般为以下的形式:
第一项经验风险,也就是对原问题的拟合,第二项是正则化项。
上式也可以改写为:
1.5.1 L1
L1正则项相对L2能产生更加稀疏的解,所以在特征数量较多时最常使用L1正则项。但在在线学习的问题中,参数根据每次来的样本产生的梯度进行更新,并非全局的梯度,所以即使采用L1正则项,也很难产生稀疏解。
2. 在线学习(Online Learning)
说到在线学习,国内的冯扬写过一篇非常好的文章,从模型的稀疏性为主线,介绍不同时期在线学习算法的演进。
在线最优化求解(Online Optimization)
在线最优化求解
- 简单截断法
- Truncated Gradient 截断梯度法
- FOBOS
- RDA
- FTRL——重点关注算法:在稀疏性与高精度之间的权衡
FTRL本质上是FTL(Follow The Leader)算法,只是在FTL上加了正则项。
3. 特征交叉
在做特征工程的过程中,特征与特征的关系往往不是孤立的,这个时候就需要考虑特征之间的交叉关系。
3.1 Factorization Machines(FM)
从式子中可以看出: wi,j=<vi,vj> 用来表达特征 i 和特征
3.2 Field-aware Factorization Machines(FFM)
论文:Field-aware Factorization Machines for CTR Prediction
FFM在FM的基础上,每维特征
xi
再加上其他特征属于哪种field,
fj
,所以表达式为:
3.2 GBDT
论文:Greedy Function Approximation: A Gradient Boosting Machine
个人觉得另一个名称MART(Multiple Additive Regression Tree)也挺贴切,因为GBDT是用回归树在拟合,这两个名称从两个不同的角度在描述这个模型。
Facebook在2014年的论文中,将训练完GBDT的叶子节点对应为LR的每一维特征,由于GBDT从根节点到叶子节点的路径,每个分割节点都是选择使得平方损失误差达到最小的节点和分割点,所以该条路径上特征的组合具有一定的区分性。GBDT的叶子节点可以作为LR或者FM的输入。
论文:Practical Lessons from Predicting Clicks on Ads at Facebook
4. Categorical特征
在做特征预处理时候,针对categorical类型特征,最常用的做法是转为One-hot encoding的形式,这种做法最为简单,但会使得训练时特征维度非常大。这跟NLP中的词的向量化表示一样,有维度太高的问题。而现在NLP最常用的做法是为每个词训练词向量(Embedding),训练完成后在使用时,再从表里面找到词对应的词向量。
所以在对categorical特征做处理时一种解决的思路是,训练低维稠密的向量。
Google在Wide & Deep Learning for Recommender Systems文章中,将模型分为Wide和Deep部分,Wide部分是线性模型,特征包括原始的非categorical特征和经过组合的特征,Deep部分使用DNN模型训练categorical特征向量,最后将Wide和Deep部分联合起来一起训练。
论文:Wide & Deep Learning for Recommender Systems
同时,Google的另一篇文章Deep Neural Networks for YouTube Recommendations,介绍了CTR或推荐系统中经典的两层结构:候选集产生和排序。在候选集产生阶段,使用DNN为每个用户和视频训练向量,在排序阶段,同样也是将视频ID映射为一个低维稠密向量,再结合其他特征进行训练。
论文:Deep Neural Networks for YouTube Recommendations
Reference
- 李航 《统计学习方法》
- An overview of gradient descent optimization algorithms
- 在线最优化求解(Online Optimization)
- Factorization Machines
- Field-aware Factorization Machines for CTR Prediction
- Greedy Function Approximation: A Gradient Boosting Machine
- Practical Lessons from Predicting Clicks on Ads at Facebook
- Wide & Deep Learning for Recommender Systems
- Deep Neural Networks for YouTube Recommendations
博客原文地址:http://blog.csdn.net/behamcheung/article/details/75008955