目录
本篇文章将会按照整个CTR预估模型的演进过程进行组织,共分为7个大部分:
- 分布式线性模型
- Logistic Regression
- 自动化特征工程
- GBDT+LR
- FM模型以及变体
- FM(Factorization Machines)
- FFM(Field-aware Factorization Machines)
- AFM(Attentional Factorization Machines)
- Embedding+MLP结构下的浅层改造
- FNN(Factorization Machine supported Neural Network)
- PNN(Product-based Neural Network)
- NFM(Neural Factorization Machines)
- ONN(Operation-aware Neural Networks)
- 双路并行的模型组合
- wide&deep(Wide and Deep)
- deepFM(Deep Factorization Machines)
- 复杂的显式特征交叉网络
- DCN(Deep and Cross Network)
- xDeepFM(Compressed Interaction Network)
- CTR预估模型总结与比较
- CTR预估模型关系图谱
- CTR预估模型特性对比
一. 分布式线性模型
Logistic Regression
Logistic Regression是每一位算法工程师再也熟悉不过的基本算法之一了,毫不夸张地说,LR作为最经典的统计学习算法几乎统治了早期工业机器学习时代。这是因为其具备简单、时间复杂度低、可大规模并行化等优良特性。在早期的CTR预估中,算法工程师们通过手动设计交叉特征以及特征one-hot化等方式,赋予LR这样的线性模型对数据集的非线性学习能力,高维离散特征+手动交叉特征构成了CTR预估的基础特征。LR在工程上易于大规模并行化训练恰恰适应了这个时代的要求。
模型结构:
优势:
- 模型简单,具备一定可解释性
- 计算时间复杂度低
- 工程上可大规模并行化
不足:
- 依赖于人工大量的特征工程,例如需要根据业务知识通过特征工程融入模型
- 特征交叉难以穷尽
- 对于训练集中没有出现的交叉特征无法进行参数学习
二. 自动化特征工程
GBDT + LR(2014)—— 特征自动化时代的初探索
Facebook在2014年提出了GBDT+LR的组合模型来进行CTR预估,其本质上是通过Boosting Tree模型本身的特征组合能力来替代原先算法工程师们手动组合特征的过程。GBDT等这类Boosting Tree模型本身具备了特征筛选能力(每次分裂选取增益最大的分裂特征与分裂点)以及高阶特征组合能力(树模型天然优势),因此通过GBDT来自动生成特征向量就成了一个非常自然的思路。注意这里虽然是两个模型的组合,但实际并非是end-to-end的模型,而是两阶段的、解耦的,即先通过GBDT训练得到特征向量后,再作为下游LR的输入,LR的在训练过程中并不会对GBDT进行更新。
模型结构:
通过GBDT训练模型,得到组合的特征向量。例如训练了两棵树,每棵树有5个叶子结点,对于某个特定样本来说,落在了第一棵树的第3个结点,此时我们可以得到向量 [0,0,1,0,0] ;落在第二棵树的第4个结点,此时的到向量 [0,0,0,1,0] ;那么最终通过concat所有树的向量,得到这个样本的最终向量 [0,0,1,0,0,0,0,0,1,0] 。将这个向量作为下游LR模型的input进行训练。
优势:
- 特征工程自动化,通过Boosting Tree模型的天然优势自动探索特征组合
不足:
- 两阶段的、非end-to-end的模型
- CTR预估场景涉及到大量高维稀疏特征,树模型并不适合处理(因此实际上会将dense特征或者低维的离散特征给GBDT,剩余高维稀疏特征在LR阶段进行训练)
- GBDT模型本身比较复杂,无法做到online learning,模型对数据的感知相对较滞后(必须提高离线模型的更新频率)
三. FM模型以及变体
(1)FM:Factorization Machines, 2010 —— 隐向量学习提升模型表达
https://blog.csdn.net/weixin_413320