毕业于清华大学计算机系的王喆学长梳理从传统机器学习时代到深度学习时代所有经典CTR(click through rate)模型的演化关系和模型特点。内容来源:https://zhuanlan.zhihu.com/p/61154299。
在互联网永不停歇的增长需求的驱动下,CTR预估模型(以下简称CTR模型)的发展也可谓一日千里,从2010年之前千篇一律的逻辑回归(Logistic Regression,LR),进化到因子分解机(Factorization Machine,FM)、梯度提升树(Gradient Boosting Decision Tree,GBDT),再到2015年之后深度学习的百花齐放,各种模型架构层出不穷。我想所有从业者谈起深度学习CTR预估模型都有一种莫名的兴奋,但在这之前,认真的回顾前深度学习时代的CTR模型仍是非常必要的。原因有两点:
- 即使是深度学习空前流行的今天,LR、FM等传统CTR模型仍然凭借其可解释性强、轻量级的训练部署要求、便于在线学习等不可替代的优势,拥有大量适用的应用场景。模型的应用不分新旧贵贱,熟悉每种模型的优缺点,能够灵活运用和改进不同的算法模型是算法工程师的基本要求。
- 传统CTR模型是深度学习CTR模型的基础。深度神经网络(Deep Nerual Network,DNN)从一个神经元生发而来,而LR正是单一神经元的经典结构;此外,影响力很大的FNN,DeepFM,NFM等深度学习模型更是与传统的FM模型有着千丝万缕的联系;更不要说各种梯度下降方法的一脉相承。所以说传统CTR模型是深度学习模型的地基和入口。
看到上面的关系图,有经验的同学可能已经对各模型的细节和特点如数家珍了。中间位置的LR模型向四个方向的延伸分别代表了传统CTR模型演化的四个方向:
- 向下为了解决特征交叉的问题,演化出PLOY2,FM,FFM等模型;
- 向右为了使用自动化的手段解决特征工程的难题,Facebook将LR与GBDT进行结合,提出了GBDT+LR组合模型;
- 向左Google从online learning的角度解决模型时效性的问题,提出了FTRL;
- 向上阿里基于样本分组的思路增加模型的非线性,提出了LS-PLM(MLR)模型;
1. LR:CTR模型的核心和基础
位于正中央的是当之无愧的Logistic Regression。仍记得2012年我刚进入计算广告这个行业的时候,各大中小公司的主流CTR模型无一例外全都是LR模型。LR模型的流行是有三方面原因的,一是数学形式和含义上的支撑;二是人类的直觉和可解释性的原因;三是工程化的需要。
- 逻辑回归的数学基础
逻辑回归作为广义线性模型的一种,它的假设是因变量y服从伯努利分布。那么在点击率预估这个问题上,“点击”这个事件是否发生就是模型的因变量y。而用户是否点击广告这个问题是一个经典的掷偏心硬币问题,因此CTR模型的因变量显然应该服从伯努利分布。所以采用LR作为CTR 模型是符合“点击”这一事件的物理意义的。
与之相比较,线性回归(Linear Regression)作为广义线性模型的另一个特例,其假设是因变量y服从高斯分布,这明显不是点击这类二分类问题的数学假设。
在了解LR的数学理论基础后,其数学形式就不再是空中楼阁了,具体的形式如下:
其中x是输入向量,θ 是我们要学习的参数向量。结合CTR模型的问题来说,x就是输入的特征向量,h(x)就是我们最终希望得到的点击率。
- 人类的直觉和可解释性
直观来讲,LR模型目标函数的形式就是各特征的加权和,再施以sigmoid函数。忽略其数学基础(虽然这是其模型成立的本质支撑),仅靠人类的直觉认知也可以一定程度上得出使用LR作为CTR模型的合理性。
使用各特征的加权和是为了综合不同特征对CTR的影响,而由于不同特征的重要程度不一样,所以为不同特征指定不同的权重来代表不同特征的重要程度。最后要套上sigmoid函数,正是希望其值能够映射到0-1之间,使其符合CTR的物理意义。
LR如此符合人类的直觉认知显然有其他的好处,就是模型具有极强的可解释性,算法工程师们可以轻易的解释哪些特征比较重要,在CTR模型的预测有偏差的时候,也可以轻易找到哪些因素影响了最后的结果,如果有跟运营、产品一起工作的经验的话,更会知道可解释性强是一个模型多么优秀的“品质”。
- 工程化的需要
在互联网公司每天动辄TB级别的数据面前,模型的训练开销就异常重要了。在GPU尚未流行开来的2012年之前,LR模型也凭借其易于并行化、模型简单