CTR预估模型可以广泛应用于个性化推荐、信息检索、在线广告等领域,用来学习和预测用户的反馈,
用户的反馈主要有点击、收藏、购买等。
点击率预估,本质上是二分类,早期最简单也是用的最广泛的就是LR模型,
但是由于LR结构过于简单,加上它对于特征之间的独立性假设,在实际的推荐场景中不适用(实际推荐场景中特征和特征之间具有相关性),
所以在LR基础上扩展了FM模型,增加了特征之间相关性的计算,但是缺陷是FM模型只关注两两特征之间的相关性,
因此DeepFM的出现基本上实现了特征之间低维度(FM)和高维度(Deep)之间特征交叉计算,
这样模型计算过程以及得出的结果更符合实际的推荐场景(实际场景中特征是有很多的,并且特征和特征之间可能存在两个和多个之间的相关性,deepfm只是尽量去模拟实际场景中的特征关系,其实就是特征工程这一块,只不过因为这个模型的出现,使得前期的特征工程大大简化)。
数据:
CTR预估模型的特征数据往往包含多个特征,这些特征会根据其自身特点被编译成one-hot编码,然后将多个特征对应的编码向量链接在一起构成特征向量。
高维、稀疏、以及多类别是输入给CTR预估模型的特征数据的典型特点。
Logistic Regression(LR):
LR一直是CTR预估的benchmark模型,具有简单、易于并行化实现、可解释性强等优点,但是LR模型中的特征是默认相互独立的,遇到具有交叉可能性的特征需进行大量的人工特征工程进行交叉(连续特征的离散化、特征交叉),不能处理目标和特征之间的非线性关系。
连续特征的离散化就是把原始的连续值划分多个区间,如等频划分或等间距划分,甚至训练一个但特征的决策树模型进行划分(信息增益)。
特征离散化相当于把线性函数变成了分段线性函数,引入了非线性结构。
离散化还可以使得数据中的噪音有更好的鲁棒性(异常值落在同一区间);还可以使得模型更加稳定,特征值的微小变化(在同一个区间)不会引起模型预测值变化。
GBDT+LR
GBDT(Gradient Boost Decision Tree)是用来解决LR模型的特征组合问题。
GBDT可以用来学习高阶非线性特征组合。对应树的一条路径。
通常将一些连续值特征、值空间不大的categorical特征都丢给GBDT模型;空间很大的ID特征留在LR模型中训练,既能做高阶特征组合又可以利用线性模型易于处理大规模稀疏数据的优势。
GBDT优势在于处理连续值特征,如用户历史点击率、用户历史浏览次数等连续值。
由于树的分裂算法,具有一定组合特征的能力。
GBDT根据最优的分裂特征和该特征的最优分裂点,根据特征的分裂次数得到一个特征的重要性排序,GBDT减少了人工特征工程的工作量。
但是大多数推荐系统中出现的是大规模的离散化特征,使用GBDT需要首先统计成连续值特征(embedding),需要耗费时间,GBDT具有记忆性强的特点,不利于挖掘长尾特征。
而且GBDT虽然具有一定组合特征能力,但是组合的能力十分有限,远不能与DNN相比。