1.来源
本质上 GBDT+LR 是一种具有 stacking 思想的二分类器模型,所以可以用来解决二分类问题。这个方法出自于 Facebook 2014 年的论文 Practical Lessons from Predicting Clicks on Ads at Facebook 。
2.使用场景
GBDT+LR 使用最广泛的场景是 CTR 点击率预估,即预测当给用户推送的广告会不会被用户点击。点击率预估模型涉及的训练样本一般是上亿级别,样本量大,模型常采用速度较快的 LR。但 LR 是线性模型,学习能力有限,此时特征工程尤其重要。现有的特征工程实验,主要集中在寻找到有区分度的特征、特征组合,折腾一圈未必会带来效果提升。GBDT 算法的特点正好可以用来发掘有区分度的特征、特征组合,减少特征工程中人力成本。
3.CTR的流程
主要包括两大部分:离线部分、在线部分,其中离线部分目标主要是训练出可用模型,而在线部分则考虑模型上线后,性能可能随时间而出现下降,若出现这种情况,可选择使用 Online-Learning 来在线更新模型:
3.1离线部分
- 数据收集:主要收集和业务相关的数据,通常会有专门的同事在 app 位置进行埋点,拿到业务数据
- 预处理:对埋点拿到的业务数据进行去脏去重;
- 构造数据集:经过预处理的业务数据,构造数据集,在切分训练、测试、验证集时应该合理根据业务逻辑来进行切分;
- 特征工程:对原始数据进行基本的特征处理,包括去除相关性大的特征,离散变量 one-hot,连续特征离散化等等;
- 模型选择:选择合理的机器学习模型来完成相应工作,原则是先从简入深,先找到 baseline,然后逐步优化;
- 超参选择:利用 gridsearch、randomsearch 或者 hyperopt 来进行超参选择,选择在离线数据集中性能最好的超参组合;
- 在线 A/B Test:选择优化过后的模型和原先模型(如 baseline)进行 A/B Test,若性能有提升则替换原先模型;
3.2 在线部分
- Cache & Logic:设定简单过滤规则,过滤异常数据;
- 模型更新:当 Cache & Logic 收集到合适大小数据时,对模型进行- pretrain+finetuning,若在测试集上比原始模型性能高,则更新 model server 的模型参数;
- Model Server:接受数据请求,返回预测结果;
原文地址:https://www.cnblogs.com/tianqizhi/p/12012677.html
时间: 2024-11-13 09:37:31