深度解析:推荐系统中CTR排序模型全览

推荐系统中CTR排序模型全览:从经典到前沿的演进

引言

在推荐系统领域,CTR(Click-Through Rate,点击率)预估是核心任务之一,直接影响广告收益和用户体验。随着数据规模和特征复杂度的增加,CTR排序模型经历了从线性模型到深度学习模型的演进。本文将系统梳理主流CTR排序模型,包括LR、GBDT、FM、FFM、MLR、Deep & Wide、Deep & Cross、DeepFM、XDeepFM及PN,分析其原理、优缺点及适用场景,为开发者提供参考。

经典模型:LR与GBDT

1. 逻辑回归(LR)

LR是CTR预估的基石,通过线性组合特征和权重,利用sigmoid函数输出点击概率。其优点在于模型简单、训练高效、可解释性强,适合特征稀疏且交互简单的场景。然而,LR无法自动捕捉特征间的非线性交互,需依赖人工特征工程。

代码示例(Python)

  1. from sklearn.linear_model import LogisticRegression
  2. model = LogisticRegression()
  3. model.fit(X_train, y_train)

2. 梯度提升决策树(GBDT)

GBDT通过多棵决策树的加权组合提升模型性能,能自动处理非线性特征和缺失值,适合结构化数据。但GBDT对类别特征处理能力有限,且训练速度较慢,难以直接用于高维稀疏数据。

因子分解机系列:FM与FFM

3. 因子分解机(FM)

FM在LR基础上引入隐向量,通过特征内积捕捉二阶交互,解决了特征稀疏下的参数估计问题。FM模型复杂度低,训练高效,但无法直接建模高阶交互。

公式
y^(x)=w<em>0+</em>i=1nw<em>ixi+</em>i=1nj=i+1nvi,vjxixj \hat{y}(x) = w<em>0 + \sum</em>{i=1}^{n} w<em>i x_i + \sum</em>{i=1}^{n} \sum_{j=i+1}^{n} \langle v_i, v_j \rangle x_i x_j

4. 场感知因子分解机(FFM)

FFM在FM基础上引入“场”概念,为每个特征分配不同场的隐向量,增强了特征交互的表达能力。FFM适用于类别特征丰富的场景,但参数数量大幅增加,训练成本较高。

混合模型:MLR与Deep & Wide

5. 混合逻辑回归(MLR)

MLR通过分片线性回归提升模型非线性能力,将特征空间划分为多个区域,每个区域独立训练LR模型。MLR适合特征分布复杂的场景,但需预先指定分片数量,调参难度较大。

6. Deep & Wide

Deep & Wide结合了Wide部分的记忆能力(LR)和Deep部分的泛化能力(DNN),通过联合训练优化CTR预估。Wide部分处理低阶特征交互,Deep部分处理高阶特征交互,适用于特征丰富的场景。

结构图

  1. Wide部分(LR —— 联合层 —— Deep部分(DNN —— 输出

深度学习模型:Deep & Cross、DeepFM与XDeepFM

7. Deep & Cross

Deep & Cross通过Cross Network显式建模高阶特征交互,每层交叉操作生成新的特征组合,避免了DNN的隐式交互。Cross Network参数高效,但交互阶数受限于网络深度。

8. DeepFM

DeepFM结合了FM和DNN的优势,FM部分处理低阶特征交互,DNN部分处理高阶特征交互,通过共享输入层降低模型复杂度。DeepFM无需人工特征工程,适用于特征稀疏且交互复杂的场景。

代码示例(TensorFlow)

  1. import tensorflow as tf
  2. from deepctr.models import DeepFM
  3. model = DeepFM(linear_feature_columns, dnn_feature_columns, task='binary')
  4. model.compile("adam", "binary_crossentropy", metrics=['binary_crossentropy'])
  5. model.fit(X_train, y_train, batch_size=256, epochs=10)

9. XDeepFM

XDeepFM通过CIN(Compressed Interaction Network)显式建模高阶特征交互,每层交互生成新的特征矩阵,保留了交互的阶数信息。CIN结合了向量级和比特级的交互,表达能力更强,但计算复杂度较高。

前沿模型:PN

10. 路径网络(PN)

PN通过动态路径选择机制自适应调整特征交互方式,每层根据输入特征选择不同的交互路径,增强了模型的灵活性和表达能力。PN适用于特征分布动态变化的场景,但训练和推理成本较高。

模型选择建议

  1. 数据规模:小规模数据优先选择LR、FM或FFM;大规模数据可选择Deep & Wide、DeepFM或XDeepFM。
  2. 特征复杂度:低阶交互为主选择FM或Deep & Wide;高阶交互为主选择DeepFM或XDeepFM。
  3. 计算资源:资源有限选择LR或FM;资源充足选择深度学习模型。
  4. 业务需求:实时性要求高选择LR或FM;精准度要求高选择深度学习模型。

结论

CTR排序模型经历了从线性模型到深度学习模型的演进,各模型在特征交互、计算复杂度和适用场景上各有优劣。开发者应根据业务需求、数据规模和计算资源选择合适的模型,或结合多种模型构建混合系统,以提升CTR预估的准确性和鲁棒性。未来,随着自动化机器学习(AutoML)和图神经网络(GNN)的发展,CTR排序模型将更加智能化和高效化。