LR:
优点:
- 是一个很好的baseline,效果不错,当然因为效果不错,所以后续的版本想超过它,真的还是很难的。
- 实现简单,有开源的工具可以直接用来训练,在线的代码也写起来也比较容易
缺点: - 因为是线性模型,所以有选择交叉特征的工作,这部分工作消耗大量的精力,但往往没什么效果。一般都是wrapper方法选择,每轮可能都要进行小时级的运算,理论上要进行2^n轮(n是特征数),但因为离线分析的指标和线上效果不一定是强相关的,所以分析起来更痛苦。更令人崩溃的是点击率预估的数据变化是比较大的,离线选出来的特征,参数都不一定适用于未来。
- 因为广告位对点击率有着决定性的影响,所以几乎所有的特征都会交叉广告位,这样广告位间的信息是无法共享的,比如广告A在广告位x上点击率很高,但如果广告A在广告位y上没有曝光过,那对广告位y来讲,广告A是一个全新的广告。
- 实践中交叉特征还会导致模型非常大,我们也使用了FTRL,但实践中它并不能非常有效的产生稀疏模型,如果模型非常大,会导致同步模型变慢,一样会严重影响效果。
- 在线预测时,因为大量的特征都要与广告ID交叉,所以在线拼装特征的成本很高,性能可能也会成为问题。
FM:
优点
- 它可以自动学习两个特征间的关系,可以减少一部分的交叉特征选择工作,而且参数也不算多,调起来不会太痛苦。
- 因为不需要输入那么多的交叉特征,所以产生的模型相对LR的模型会小很多。
- 在线计算时减小了交叉特征的拼装,在线计算