[转化率预估-2]逻辑回归技术

“我今年三十七岁。现在,我正坐在波音七四七的机舱里。这架硕大无比的飞机正穿过厚厚的乌云层往下俯冲,准备降落在汉堡机场。十一月冷冽的雨湮得大地一片雾蒙蒙的。”——这是村上春树小说《挪威的森林》的开篇。文艺青年坐飞机,看的想的都很文艺。作为屌丝码农,我有次坐飞机却在想:起飞降落的轨迹可以用什么数学方程来描述? 直观的感觉有点像逻辑回归(Logistic Regression,LR)(图1),Google了张图片(图2),两者还真挺神似的。虽然我知道这不是正解,但我猜正解肯定没有逻辑回归美丽。1                                                                          图1

2图2

据说逻辑回归和主题模型是Google内部用的最多的两个机器学习算法,只是它们都有另外一个鲜为人知的名字:SETI和Rephil。逻辑回归虽然简单但却好用,Google的很多产品中,如广告、反作弊、垃圾邮件识别都有它的影子。也许读者会质疑,逻辑回归只是一个线性分类器,会不会不够用。事实上,在很多场合下,逻辑回归的效果已经足够好了,尤其当在高维空间(Billion级特征)的分类问题中。

不错,我们转化率预估的方法也是逻辑回归。指导我们这样做的直接原因是,逻辑回归可以输出一个[0,1]之间的浮点数——这不正是概率的取值区间吗。而且,逻辑回归的输入自变量取值范围为实数域R——这给我们选择特征提供了很大的空间。还有,逻辑回归是连续可导的——这为最优化问题求解扫清了障碍。到了这个地步,想不用逻辑回归都难。

扫盲逻辑回归的最好办法是看看Andrew NG的机器学习公开课讲义:http://cs229.stanford.edu/notes/cs229-notes1.pdf。进阶的话,推荐Pattern Recognition and Machine Learning,不过它是本书。学术界也有很多的paper可以参考,这里推荐一篇:Scalable Training of L1-Regularized Log-linear Models,作者Galen Andrew和JianFeng Gao——倒不是因为这篇paper有多么的经典,而是因为我们的预估系统中也用到了它。

Paper中的方法简称Orthant-Wise Limited-memory Quasi-Newton(OWL-QN),创新在于用Orthant-Wise的方法解决了逻辑回归损失函数(Loss Function)在L1正则化非连续可导的问题。这个方法有以下优点:

  1. 这是一种Batch Learning的方法,可以收敛到全局最优解;
  2. 最优化方法为L-BFGS,收敛速度快;
  3. 损失函数中使用了L1正则化,避免过拟合的同时输出稀疏模型;

优点3,稀疏模型对于在线预估服务很重要,可以算一笔账:假设逻辑回归模型中有10亿个特征,每个特征的权重用4字节的float存储。L2正则化得到的模型可能会有4GB,而L1正则化得到的模型也许只有1GB,甚至400MB。这会省掉很多的存储开销。为什么L1正则化会得到稀疏模型呢,The Elements of Statistical Learning这本书的3.4.3中有很好的解释,这里我们给出一张示意图:

QQ截图20140820183759                                                                        图3

稀疏模型的另一个好处是特征选择,我们可以认为权重为0的特征是不相关的特征。我们曾经尝试用L1正则化选出的权重非0特征作为Deep Neural Network的输入,使得转化率预估的准确率显著提升,不过这些是后话。

遗憾的是,Scalable Training of L1-Regularized Log-linear Models附带的源码执行效率有些低,主要是计算训练数据的下降梯度时,有心的读者可以自己去看看。

有了模型,接下来需要有评估模型效果的方法——这其实是件很难的事。2012年,我们的团队承办了KDDCUP2012 Track2的题目(https://www.kddcup2012.org/c/kddcup2012-track2),让我们很纠结的一件事是如何评估参赛者递交的结果,最终我们选择了AUC(Area Under roc Curve,可参见paper “ROC graphs: Notes and practical considerations for researchers”)——其中很大程度上也是出于反作弊的考虑。事实上,评估模型效果的方法有很多,如:

1. AUC,从排序的角度评估模型预估效果;

2. MAE(Mean Absolute Error)/MSE(Mean Squared Error),从准确率的角度评估模型预估效果;

3. Loss,从拟合训练数据的角度评估模型预估效果;

在我们的工作中,除了上述的离线模型评估方法外,更看重的还是在线的A/B Test,即随机选取两部分线上同质流量,一部分用基准模型A预估转化率,一部分用实验模型B预估转化率。如果后者对在线业务指标(如转化率、点击率、千次展现收益等)有正向效果,我们就认为是好模型。这正所谓,是骡子是马拉出来溜溜。

使用OWL-QN思路解决计算广告中的转化率预估,这只是我们最初的选择。随着业务的发展,单机版的算法愈发无法满足我们的需求,于是我们开发了并行训练系统,数了数总计有5套,分别从不同的角度让训练的速度更快,让训练的效果更好,这些会在后续的章节中说到。现在我们的系统可以训练不计其数的Feature和不计其数的Instances,实际中前者的规模是亿级,后者的规模是千亿级。

读者也许会关心,说了半天逻辑回归模型,那它对转化率的提升到底有多大? 很抱歉由于涉及商业敏感数据,这里不方便公开,不过你可以加入我们,leostarzhou AT tencent Dot com 🙂

 

 

本文链接:[转化率预估-2]逻辑回归技术
本站文章若无特别说明,皆为原创,转载请注明来源:火光摇曳,谢谢!^^


火光摇曳

[转化率预估-2]逻辑回归技术》有4个想法

  1. 更多的还是在寻找志同道合的伙伴吧,不应该是工作机会把大家聚在一起,而是理想和对个人成功的渴望:)

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*