经过前面的候选文章召回和特征工程,将文章和用户点击日志信息处理成监督学习数据集,接下来就使用排序模型或二分类模型搭建模型进行学习,对测试集进行预测,得到测试集中的每个候选集用户点击文章的概率,返回点击概率最大的topk篇文章,作为最终输出结果。
排序模型选择三个比较有代表型的模型:
- LGB的排序模型
- LGB的分类模型
- 深度学习的分类模型DIN
集成学习方法(其实LightGBM也是集成学习模型的一种,这里是从单模型结果与多个模型的区分):
三个模型输出结果的加权融合
加权融合:根据模型训练效果给模型不同的权重,然后求和得到最终文章点击的概率-
Stacking(使用5折交叉验证将模型输出结果作为特征,再使用简单模型logistic模型进行训练)
stacking方法,实施过程可以看下图:
(图片转自这里)
stacking是一种分层模型框架,对于两层stacking,第一层由多个基学习器组成,输入为原始训练集,第二层是将第一层基学习器的输出作为特征加入训练集进行训练,从而得到整个stacking模型。上图划分步骤:
- 通过k-flod的方式将training data划分成5份,基学习器训练五轮后分别得到每轮training data划分的一份验证集预测结果,将五份验证集的预测结果堆叠起来得到全部训练集的新特征,若有多个基学习器则生成多个新特征;
- 基学习器得到的新特征加入训练集中,使用二分类模型进行训练;
- 针对test data的预测,使用每个基学习器训练得到的5个模型分别预测,将预测结果求平均获得对应基学习器的预测特征,将预测结果带入data中使用第二层模型预测得到最终预测结果。