广告部门点击率预估采用的是LR算法。以前学习算法都局限于理论,这次是实战。回忆总结下 LR,以后备用。
这里结合点击率预估整理下LR算法,为以后实践应用提供参考。
内容包括LR建模,L1&L2范数,LR和NB联系,LR求解以及实践中遇到的一些经典问题。
LR建模
一般线性回归模型是y=<w,x>,然后根据观测样本来估计参数w。参数估计采用极大似然估计,在假设误差变量服从均值为0的正态分布前提下,我们熟知的最小二乘法和极大似然估计等价。具体证明见这里。
LR是一种广义的线性回归模型,主要是利用了连接函数sigmod函数f(t) = 1 / (1+pow(e, -t)),即我们的模型是:
y = f (<w, x>),也即ln(y/[1-y]) = <w, x>(p/[1-p]称作几率),这里将预测值y做了sigmod变换后,值域变为[0, 1]。
y = f (<w, x>),也即ln(y/[1-y]) = <w, x>(p/[1-p]称作几率),这里将预测值y做了sigmod变换后,值域变为[0, 1]。
L1(Lass0) vs L2(Ridge)
常用机器学习算法经常要面临一个过拟合的问题,LR也不例外,这时就会考虑利用范数来限制模型复杂度避免过拟合。 常用的有L1和L2范数,L1范数具有特征选择的功能,使得模型变得稀疏简单。关于L0,L1,L2的扯淡,参见这里,L1的稀疏性证明参见这里。
LR和NB的联系
LR和NB分别作为Discriminative and Generative Algorithm的代表,虽属不同派系,但在一定假设条件下,却有一定内在联系。从这个联系的推倒过程也可以看到LR模型的可解释性,LR模型求出来的权重实际代表这个特征在正负样本中的均值差异大小。
- 符号:和预估值的正负相关性
- 大小:特征的重要程度(均值差异的大小)
- 常数项含义:即含有普通权重的信息,同时也包含正负样本比信息
关于LR系数的含义这里还有点争论的样子,主要在于特征是否独立,具体见这里
LR模型求解
利用最大似然估计来求解LR模型,最终是求解一个无约束最优化问题。常见无约束最优化问题求解算法有
梯度法,牛顿法,BFGS,L-BFGS:
- 梯度法:利用梯度信息寻找最速下降方向。利用平面去逼近原函数,一阶收敛。
- 牛顿法:利用Hessian矩阵寻找下降方向。利用二次曲面去逼近原函数,二阶收敛。
- BFGS:根据迭代的最近k步信息(函数值,梯度信息)来构造Hessian矩阵的逆。
- L-BFGS:BFGS的空间复杂度是o(n^2),此算法将空间复杂度降为o(n*k)
最优化之路 梳理了各种最优化算法。
常见经典问题
- 正负样本悬殊
- covariate shift(训练集和测试集分布不同)